微机原理习题与实验-F

3. 逻辑地址如何转换成物理地址?已知逻辑地址为2D1EH:35B8H,对应的物理地址是什么? 解:逻辑地址是段基址和段内偏移地址形式的地址。 物理地址=段基址×16+段内偏移

已知逻辑地址为2D1EH:35B8H,则对应的物理地址?2D1EH?16?35B8H?30798H 4. 8088和8086的指令预取队列的长度分别是多少?

解:8088的指令预取队列的长度为4字节;8086的指令预取队列的长度为6字节。

5. 简述8086/8088CPU内部的各寄存器的作用。

解:AX、BX、CX和DX通用寄存器一般用于存放参与运算的数据或运算的结果。 SP:用于存放堆栈栈顶的段内偏移量。 BP:用于存放访问内存时的偏移地址。 SP和BP也可以用来存放数据,它们的默认段寄存器都是SS。

SI和DI通常在间接寻址方式中存放操作数的偏移地址。在串操作指令中,DI的默认段寄存器是ES。SI和DI也可以用来存放数据。

CS:代码段寄存器,用于存放代码段的段基址。 DS:数据段寄存器,用于存放数据段的段基址。 SS:堆栈段寄存器,用于存放堆栈段的段基址。 ES:附加段寄存器,用于存放附加段的段基址。

IP:指令指针寄存器,用于存放CPU即将执行的下一条指令在代码段中的段内偏移地址。 FLAGS:标志寄存器,用于存放指令执行结果的特征。

6. 8086/8088CPU内部的状态标志寄存器共有几位标志位?各位的含义是什么?

解:状态标志寄存器共有9位标志位,其中包含6个状态标志位和3个控制标志位。

状态标志位: CF(Carry Flag):进位标志。当算术运算结果使最高位产生进位或借位时,则CF=1;否则CF=0。

PF(Parity Flag):奇偶标志。若运算结果中的低8位含有偶数个1,则PF=1;否则PF=0。 AF(Auxiliary carry Flag):辅助进位标志。运算过程中若D3位向D4有进位或借位时,AF=1;否则AF=0。 ZF(Zero Flag):零标志。若运算结果为0,则ZF=1;否则ZF=0。 SF(Sign Flag):符号标志。若运算结果为负,则SF=1;否则SF=0。 OF(Overflow Flag):溢出标志。当带符号数的补码运算结果超出机器所能表达的范围时,就会产生溢出,这时OF=1;否则OF=0。 控制标志位:

DF(Direction Flag):方向标志。控制串操作指令的地址变化的方向。当DF=0时,串操作指令的地址指针按增量变化;当DF=1时,串操作指令的地址指针按减量变化。 IF(Interrupt Flag):中断允许标志。控制微处理器是否允许响应可屏蔽中断请求。若IF=1,则允许响应;否则禁止响应。 TF(Trap Flag):单步标志。TF=1时,CPU工作在单步方式。

7. 8086/8088系统中存储器的分段原则是什么?

解:分段原则是要求段的起始单元的物理地址是16的整数倍,每段的物理长度为64KB。

8. 当ALE有效时,8088的地址/数据总线上将出现什么信息?

解:当ALE有效时,8088的地址/数据总线上将出现地址信息。

9. READY管脚的作用是什么?

解:READY用于微处理器时序中插入等待状态。若该引脚被置为低电平,则微处理器进入等待状态并保持空闲;若该引脚被置为高电平,则它对微处理器的操作不产生影响。 CPU在读、写操作时序中的T3时钟周期开始处,通过检测READY管脚的状态来决定是否插入TW等待时钟周期,以解决CPU与存储器或I/O接口之间速度不匹配的矛盾。

10. 为什么在基于8086/8088的系统中经常需要使用缓冲器?

解:由于基于8086/8088的系统驱动能力的不足,需要使用缓冲器。

11. 8088工作在最小模式下包含哪些控制信号?

解:最小模式下包含的控制信号有: RD、WR、IO/M、ALE、DT/R、DEN和INTA等信号。

12. 若CS=4000H,则当前代码段可寻址的存储空间范围是多少?

解:CS=4000H时,当前代码段可寻址的存储空间范围为40000H~4FFFFH。

第3章 8088/8086指令系统

3.1 知识要点

汇编语言是一种符号语言。用汇编语言编制的程序称为汇编语言源程序,计算机不能直接识别执行,必须翻译成机器语言程序。

一条指令一般由操作码和操作数两部分组成。操作码详细地说明指令要执行的操作,操作数是指令执行时需要的数据。8086CPU指令的操作数有三种类型:立即数、寄存器操作数和存储器操作数

1. 8086CPU寻址方式

寻址方式,即获得地址的方法,主要指获得指令中操作数地址的方法,即段内偏移地址的方法。

1) 2) 3) 4) 5)

立即寻址:操作数是立即数

直接寻址:操作数在内存中,指令中直接给出操作数所在的内存单元的偏移地址。 寄存器寻址:操作数在CPU内部的寄存器中。

寄存器间接寻址:操作数在内存中,内存单元的偏移地址存放在寄存器中。

寄存器相对寻址:操作数在内存中,内存单元的偏移地址一部分由间接寻址寄存器提供,一部分是指令给定的8位或16位地址位移量,二者相加形成操作数的有效地址。

6) 基址变址寻址:操作数在内存中,基址寄存器和变址寄存器相加作为操作数的偏移地址。 7) 基址变址相对寻址:操作数在内存中,操作数的地址由基址寄存器加上变址寄存器再加上

地址位移量构成。

8) 隐含寻址:操作码隐含地指明操作数的地址 2. 8086指令系统 指令类型 一般数据传送 数 输入输出指令 据 传 地址传送指令 送 标志传送指令 加法指令 算 减法指令 术 乘法指令 运 除法指令 算 十进制调整指令 逻辑运算和移位指令 串操作 控制转移指令 处理器控制指令

助记符 MOV, PUSH, XCHG, XLAT, CBW, CWD IN, OUT LEA, LDS, LES LAHF, SAHF, PUSHF, POPF ADD, ADC, INC SUB, SBB, DEC, NEG, CMP MUL, IMUL DIV, IDIV DAA, AAA, DAS, AAS, AAM, AAD AND, OR, NOT, XOR, TEST, SHL, SAL, SHR, SAR, ROL, ROR, RCL, MOVS, CMPS, SCAS, LODS, STOS JMP, CALL, RET, LOOPE, INT, INTO, IRET 各类条件转移指令 CLC STC CMC CLD STD CLI STI HLT WAIT ESC LOOK NOP 3.2 习题解答

1.

什么叫寻址方式?8086指令系统中有哪几种寻址方式?

解:寻址方式,即获得地址的方法,主要指获得段内偏移地址的方法。寻址方式共有8种:立即寻址、直接寻址、 寄存器寻址、 寄存器间接寻址、 寄存器相对寻址、 基址变址寻址、 基址变址相对寻址、 隐含寻址。

2. 下列指令中BUFF为字节类型变量,DATA为常量,指出下列指令中源操作数的寻址方式:

(1)MOV AX, 1200 (6)MOV BL, [SI][BX] (2)MOV AL, BUFF (7)MOV [DI], AX (3)SUB BX, [2000H] (8)ADD AX, DATA[DI+BP] (4)MOV CX, [SI] (9)PUSHF (5)MOV DX, DATA[SI] (10)MOV BX, ES:[SI]

解:(1)MOV AX, 1200 ;立即寻址 (2)MOV AL, BUFF ;直接寻址 (3)SUB BX, [2000H] ;直接寻址 (4)MOV CX, [SI] ;寄存器间接寻址 (5)MOV DX, DATA[SI] ;寄存器相对寻址 (6)MOV BL, [SI][BX] ;基址变址寻址 (7)MOV [DI], AX ;寄存器寻址 (8)ADD AX, DATA[DI+BP] ;基址变址相对寻址 (9)PUSHF ;隐含寻址 (10)MOV BX, ES:[SI] ;寄存器间接寻址

3. 指出下列指令的错误并改正。

(1)MOV DS, 1200 (2)MOV AL, BX (3)SUB 33H, AL (4)PUSH AL (5)MUL 45H

(6)MOV [BX], [SI]

(7)MOVS BYTE PTRDS:[DI], BYTE PTR DS:[SI] (8)ADD DATA[DI+BP], ES:[CX] (9)JMP BYTE PTR[SI] (10)OUT 3F8H, AL

联系客服:779662525#qq.com(#替换为@)