微机原理补考知识点总结 - 图文

更新时间:2023-09-11 08:01:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章 概 述

一、计算机中的数制

在计算机内部,一切信息的存取、处理和传送都是以二进制编码形式进行的

微机组成原理 8086微处理器

1、8086 CPU使用 16 根地址线访问I/O端口,最多可访问216=64K个字节端口,使用 20 根地址线访问存储单元,最多可访问220=1M个字节单元。类似这种类型的反过来的题目也应该会做:已知可寻址的内存空间最大为16MB, CPU的地址总线至少应有24条 2、8086 CPU 由哪几个部分组成?各个部分完成的什么工作?如何协调工作? 3. 8086和8088的主要区别是什么?

4、寄存器结构

8086微处理器包含有14个16位的寄存器和8个8位寄存器。 4个通用寄存器(AX,BX,CX,DX) 4个段寄存器(CS,DS,SS,ES)

4个指针和变址寄存器(SP,BP,SI,DI) 4)、指令指针(IP)

16位指令指针寄存器,其内容为下一条要执行的指令的偏移地址。 5)、8086的标志寄存器FLAG按其作用可分为哪两大类。 (1)状态标志位 (2)控制标志位

在8086的16位标志寄存器中,并不是每一位都有一定的含义,只有9位有含义,其余7位未用。

标志寄存器中的中断标志位IF是控制可屏蔽中断的标志。 IF=1时,CPU响应中断请求;

IF=0时,CPU屏蔽中断请求,不予响应

1 / 12

1、8086有14个16位寄存器和8个8位寄存器,其中哪两个寄存器保存了下一条要执行的指令所在单元的物理地址。CS,IP

物理地址PA(Physical Address)。8086的存储空间物理地址范围是00000H~FFFFFH

其计算方法是:将CPU中的16位段寄存器内容左移4位(×16)与16位的逻辑地址(又称偏移地址)在地址加法器内相加,得到所寻址单元的20位物理地址。 假设(CS)=0FE00H,(IP)=0400H,那么下一条要取出的指令所在内存单元的20位物理地址PA=0FE00H×10H+0400H=0FE400H。

逻辑地址1F80:2000对应的物理地址是21800H。 5、8086的引脚及其功能

若8086 CPU引脚状态是M/IO#=0,RD#=1,WR#=0,则此时执行的操作是写I/O

6、CPU执行指令时涉及三种周期: 时钟周期、总线周期、指令周期

三者关系:一个基本的总线周期至少由4个时钟周期组成(T1、T2、T3、T4)。指令周期是由1个或多个总线周期组合而成。

8086CPU在读/写总线周期的T3状态结束对READY线采样,如果READY为低电平,则在T3与T4状态之间插入等待状态TW。

第三章 8086指令系统 第一节 8086寻址方式

一、 数据寻址方式

指令的格式:操作码 目的操作数,源操作数 例: MOV AL ,19H

其中AL为目的操作数,19H为源操作数 1、立即寻址

操作数(为一常数)直接由指令给出 (此操作数称为立即数) 立即寻址只能用于源操作数 例:

2 / 12

MOV AX, 1800H 立即寻址指令执行速度最快 2、寄存器寻址

(1)操作数放在某个寄存器中

(2)源操作数与目的操作数字长要相同 例: MOV AX, BX 3、直接寻址

(1)指令中直接给出操作数的16位偏移地址 偏移地址也称为有效地址(EA, Effective Address)

(2)默认的段寄存器为DS,但也可以显式地指定其他段寄存器——称为段超越 例:

MOV AX ,[2A00H] 4、间接寻址

? 操作数的偏移地址(有效地址EA)放在寄存器中

? 只有SI、DI、BX和BP可作间址寄存器,可以提供偏移地址EA

? 例: MOV AX,[BP] 源操作数物理地址为16×(SS)+(BP)。 MOV CL,CS:[DI]

错误例 :× MOV AX, [DX] ; 只有SI、DI、BX和BP可作间址寄存器 × MOV CL, [AX] ;只有SI、DI、BX和BP可作间址寄存器 5、寄存器相对寻址

?EA=间址寄存器的内容加上一个8/16位的位移量 ? 例: MOV AX, [BX+8]

MOV AX, 8[BP]; 默认段寄存器为SS 6、基址变址寻址

? 若操作数的偏移地址:

由基址寄存器(BX或BP)给出 —— 基址寻址方式 由变址寄存器(SI或DI)给出 —— 变址寻址方式

由一个基址寄存器的内容和一个变址寄存器的内容相加而形成操作数的偏移地址,称为基址-变址寻址。

EA=(BX)+(SI)或(DI); EA=(BP)+(SI)或(DI)

同一组内的寄存器不能同时出现。

注意:除了有段跨越前缀的情况外,当基址寄存器为BX时,操作数应该存放在数据段DS中,当基址寄存器为BP时,操作数应放在堆栈段SS中。例:

7、相对基址变址寻址

? 在基址-变址寻址的基础上再加上一个相对位移量

EA=(BX)+(SI)或(DI)+8位或16位位移量; EA=(BP)+(SI)或(DI)+8位或16位位移量

指令操作例:MOV 1283H [BX] [SI],AX

寄存器间接、寄存器相对、基址变址、相对基址变址四种寻址方式的比较: 寻址方式 指令操作数形式

? 寄存器间接 只有一个寄存器(BX/BP/SI/DI之一) ? 寄存器相对 一个寄存器加上位移量

3 / 12

? 基址—变址 两个不同类别的寄存器

? 相对基址-变址 两个不同类别的寄存器加上位移量

例:1、以下指令中,没有错误的是( )。 A) MOV BYTE[BX],1000 C) POP CS

B)PUSH CS D) MOV AX,[SI][DI]

2、以下几种不同数据寻址方式的指令中,( )的指令执行速度最快。 A) MOV [2000],1800H C) Mov ax,1800H

B) Mov [SI],1800H D) MOV DS,1800H

第二节 8086指令系统

一、数据传送指令 1、通用传送指令

(1) MOV dest,src; dest←src (2)、堆栈指令

按“后进先出”方式工作的存储区域。 ① 压栈指令PUSH ② 弹出指令POP

例:假设(SS)=2000H,(SP)=0012H,(AX)=1234H,执行PUSH AX后,(SP)=0010H 2、输入输出指令 (1) 输入指令IN (2) 输出指令OUT 二、算术运算指令 1、 加法指令

(1) 不带进位的加法指令ADD 实例:

ADD AL,30H

?ADD指令对6个状态标志均产生影响。 (1) 带进位的加法ADC

ADC指令在形式上和功能上与ADD类似,只是相加时还要包括进位标志CF的内容,例如: ADC AL,68H ; AL←(AL)+68H+(CF) ADC AX,CX ;AX←(AX)+(CX)+(CF) (3)加1指令INC

功能:类似于C语言中的++操作:对指定的操作数加1 例: INC AL

例:执行如下程序: MOV AX,0 MOV BX,1 MOV CX,100 A:ADD AX,BX

4 / 12

INC BX LOOP A HLT

执行后(BX)=101

2、减法指令

(1)不考虑借位的减法指令SUB 格式: SUB dest, src 操作: dest←(dest)-(src)

指令例子: SUB AL,60H

(2)考虑借位的减法指令SBB

SBB指令主要用于多字节的减法。 格式: SBB dest, src

操作: dest←(dest)-(src)-(CF) 指令例子:

SBB AX,CX (3)减1指令DEC

作用类似于C语言中的”--”操作符。 (5)比较指令CMP

格式: CMP dest, src 操作: (dest)-(src)

CMP也是执行两个操作数相减,但结果不送目标操作数,其结果只反映在标志位上。 指令例子:

CMP AL,0AH 2、 乘法指令

进行乘法时:8位*8位→16位乘积

16位*16位→32位乘积

(1) 无符号数的乘法指令MUL(MEM/REG) 格式: MUL src

操作:字节操作数 (AX)←(AL) × (src)

字操作数 (DX, AX)←(AX) × (src) 指令例子:

MUL BL ;(AL)×(BL),乘积在AX中 MUL CX ;(AX)×(CX),乘积在DX,AX中 (2)有符号数乘法指令IMUL

格式与MUL指令类似,只是要求两操作数均为有符号数。 指令例子:

IMUL BL ;(AX)←(AL)×(BL) IMUL WORD PTR[SI]; (DX,AX)←(AX)×([SI+1][SI]) 注意:MUL/IMUL指令中

● AL(AX)为隐含的乘数寄存器; ● AX(DX,AX)为隐含的乘积寄存器;

5 / 12

本文来源:https://www.bwwdw.com/article/xj4h.html

Top