第二章 8086 体系结构与 80x86CPU
1. 8086CPU由哪两部分构成?它们的主要功能是什么?
答:8086CPU由两部分组成:指令执行部件(EU, Execution Un it) 和总线接口部件 (BIU,Bus In terface Un it)
。指令执行部件(El)主要由算术逻辑运算单元(ALU)、标
志寄存器FR通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。总 线接口部件 (BIU) 主要由地址加法器、 专用寄存器组、 指令队列和总线控制电路等 4 个部 件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队 列中等待执行,访问存储器或I /0端口读取操作数参加EU运算或存放运算结果等。
2. 8086CPU预取指令队列有什么好处? 8086CPU内部的并行操作体现在哪里?答: 8086CPU的预取指令队列由6个字节组成,按照8086CPU的设计要求,指令执行部件(EU) 在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并 分析执行它。从速度上看,该指令队列是在 CPU内部,EU从指令队列中获得指令的速度 会远远超过直接从内存中读取指令。8086CPU内部的并行操作体现在指令执行的同时, 待执行的指令也同时从内存中读取,并送到指令队列。
5. 简述 8086系统中物理地址的形成过程。 8086系统中的物理地址最多有多少个? 逻辑地址呢?答: 8086系统中的物理地址是由 20 根地址总线形成的。 8086系统采用分 段并附以地址偏移量办法形成 20位的物理地址。 采用分段结构的存储器中, 任何一个逻 辑地址都由段基址和偏移地址两部分构成,都是 16 位二进制数。通过一个 20 位的地址 加法器将这两个地址相加形成物理地址。具体做法是 1 6位的段基址左移 4 位(相当于在 段基址最低位后添4个“ 0”),然后与偏移地址相加获得物理地址。由于
8086CPU的地
址线是20根,所以可寻址的存储空间为 1M字节,即8086系统的物理地址空间是1MB 逻辑地址由段基址和偏移地址两部分构成, 都是无符号的 16 位二进制数, 程序设计时采 用逻辑地址,也是 1MB。
6. 8086 系统中的存储器为什么要采用分段结构?有什么好处?
答:8086CPU中的寄存器都是16位的,16位的地址只能访问64KB的内存。086系 统中的物理地址是由 20 根地址总线形成的,要做到对 20位地址空间进行访问,就需要 两部分地址
采用段基址和偏移地址方式组成物理地址的优点是: 满足对8086系统的1MB存储空 间的访问,同时在大部分指令中只要提供 16 位的偏移地址即可
9 ?在某系统中,已知当前(SS)= 2360H ( SP = 0800H那么该堆栈段在存储器 中的物理地址范围是什么?若往堆栈中存入 20个字节数据,那么SP的内容为什么值? 答:(SS)X 10卅(SP = 23600H+ 0800H= 23E00H 堆栈段在存储器中的物理地址范 围是23600HH23E00H若往堆栈中存入20个字节数据,那么 SP的内容为0800H- 14H =07ECH ( 20的十六进制为14H)。
10.已知当前数据段位于存储器的 B4000H到 C3FFFH范围内,则段寄存器DS的内容 为多少?答:段寄存器 DS的内容为B4000H
11 . 8086 系统中为什么一定要有地址锁存器?需要锁存哪些信息?
答:由于8086CPU受芯片封装的限制,只有40个管脚,所以地址线和数据线只能采 用复用的方式共同使用某些管脚。对存储器进行访问时,在读取数据或写入数据时,存 储器芯片要求在这个过程中地址信息必须稳定提供给存储器,而由于
8086CPU地址线和
CPUS
数据线是复用的,就不可能在同一时刻具有地址和数据的两种功能。这就需要在
供地址信息时,将地址锁存起来,以保证下一个时刻当这些复用的管脚起着数据线的功 能时,存储器有正确的地址信息。要锁存的信息包括这些复用管脚的地址和 号。
12. 8086读/ 写总线周期各包括最少几个时钟周期?什么情况下需要插入等待周期 TW?插入多少个TW取决于什么因素?答:8086读/写总线周期各包括最少四个时钟周期。 在系统中增加等待周期TW的一般情况是:当CPU提供了地址后,由于外设或存储器的读 出或写入时间较慢,不能与 CPU勺速度匹配,就需要插入等待周期 TW,等待CPU能从外 设或存储器将数据正确地读出或写入为止。显然,插入的等待周期 或存储器的取出或写入时间。
13?若已知当前(DS =7F06H在偏移地址为0075H开始的存储器中连续存放6个 字节的数据,分别为11H, 22H, 33H, 44H, 55H和66H,请指出这些数据在存储器中的 物理地址,如果要从存储器中读出这些数据, 需要设备部几次存储器?各读出哪些数据? 答:物理地址:7 F06 HX10 H+ 0 0 7 5 H=7 FO DSH故从7F0DSH起6个地址数据 在存储器中的地址。最少要访问四次:第一次:11。第二次:3 3,2 2。第三次: 5 5,4 4。第四次:66。 14:某程序在当前数据段中存有两个数据字0 ABCDI和1234H它们对应的物理地址分 别为3FF85H和40AFEH若已知当前(DS =3FB0H请说明这两个数据的偏移地址,并 用图说明它们在存储器中的存放格式。
答:偏移地址为:0485H和0FFEH
第三章 8086的指令系统
1: MOV AX,[SI] 寄存器寻址 寄存器间接寻址 2: MOV DI,100寄存器寻址 立即寻址
TW的个数取决于外设
BHE等信
3:MOV [BX],AL 寄存器间接 寄存器 4:MOV [BX][SI],CX 基址 +变址 寄存器 5:ADD DX,106H[SI] 变址 寄存器
6: PUSH AX寄存器 7 : ADD DS:[BP],AX 8:0R AX,DX 寄存器
2:设寄存器 DS=2000H SS=1500H ES=3200H SI =0 AO H, BX=10 0 H, BP^l
0 H,数据段中变量VAL的偏移地址为50H,试指出下列各条指令中源操作数的寻址方式
是什么?对于存储器操作数 其物理地址是多少?
1) MOV AX,[100H]直 接寻址:20100H 2) M0V CX,ES:[BX] 寄存器寻址
3) MOV DX,[BX][SI] 基址+变址: 200F0h 4) MOV AX,VAL[SI ]变址寻址:200F0h 5) MOV BX,1234[BX基址寻址:205D2H
3.答案
(3)OUT 3EBH,AX 改 MOV DX,3EBH OUT DX,AX (5)MUL AX,25 改 MOV BX,25 (6)
(4) MUL AL,CL 6)ROL DX,5 ROL DX,CL (8) POP FR (9) MOV 234H,BX
(10) INC [SI]
改 MUL CL 改 MOV CL,5
改 POPF
改 MOV BX,234H
改 INC BYTE PTR [SI]
MOV AX,[BP]寄 存器寻址:15010H
(13)DIV AX ,BX
改 DIV BX
(11) ADD [BX],456H 改 ADD WORD PTR [BX],456H (12)INT O 错
(14)DEC [BP]改 DEC WORD PTR [BP] (15)XLAT BX 错 (16)ADD CX+1 改 ADD CX,1 或 INC CX (17)DAA AX 改 DAA 执行 MOV DL,2AH和 SHR DL,1 两条指令后:DL=00010101 CF=0
可将AX寄存器中D0,D5,D8和D11位求反,其余位不变的指令: XOR AX,0921H 某存储单元物理地址为3B4FH其段地址和偏移地址可选:3B40H和00FEH “异或”操作后,寄存器FR的下面3个状态标志分别是:PF=0 SF=1 ZF=0 寄存器写指令时,女口 MOV [SI],AX,则CPU的外部管脚状态: WR=0 RD=1 M\\IO=1