41564736.doc集 - 3 - 编者:喻其山
TF(Trap Flag)陷阱标志( 又叫跟踪标志):每执行一条指令就引起一个内部中断。用于单步方式操作,TF为1,指令执行完后产生陷阱,由系统控制计算机;TF为0,CPU不产生陷阱,正常工作。
2.4 2.5
简述最小模式和最大模式的含义及其区别。 8086CPU的地址线有多少位?其寻址范围是多少? 答:(1)、8086CPU的地址线有20位;
(2)、其寻址范围是1MB。 8086CPU工作在最小模式时,
(1) 当CPU访问存储器时,要利用哪些信号? (2) 当CPU访问外部设备时,要利用哪些信号?
(3) 当HOLD有效并得到响应时,CPU的哪些信号是高阻?
8086CPU工作在最大模式时,S2、S1、S0在CPU访问存储器与CPU访问外部设备时,分别是什么状态?
在8086最大模式系统中,8288总线控制器的作用是什么?它产生哪些控制信号? FFFFF FFFFE 8086采用什么方式管理内存?1MB的内存 空间分为哪两个存储体?它们如何与地址总 5 4 线、数据总线相连?
3 2 答:(1)、8086采用分段方式管理内存; 1 0 (2)、1MB的内存空间分为偶地址和奇地
址两个存储体;
A19~A1 D15~D8BHE D7~D0 A0 (3)、如右图所示:
高(奇)位和低(偶)位存储器条
FFFFD FFFFC 2.6
2.7 2.8 2.9
2.10 什么是段基址、偏移地址和物理地址?它们之间有什么关系?
答:(1)、段基址:存储器分段时,每个段的起始地址的低4位为0,高16
位为段基址,放入段寄存器中;
偏移地址:段内某内存单元的物理地址相对于段起始地址的偏移量称
为段内偏移地址,也叫有效地址;
物理地址:8086/8088有20条地址线,最大内存容量为1MB(220),
其中任何一个内存单元都有一个唯一的20位的地址,称为内存单元的物理地址。
(2)、物理地址(PA)=段基址×10H+偏移地址(EA) 2.11 对于8086,已知(DS)=1050H,(CS)=2080H,(SS)=0400H,(SP)=2000H,问:
(1) 在数据段中可存放的数据最多为多少字节?首地址和末地址各为多少?
(2) 堆栈段中可存放多少个16位的字?首地址和末地址各为多少?
41564736.doc集 - 4 - 编者:喻其山
(3) 代码段最大的程序可存放多少字节?首地址和末地址各为多少?
(4) 如果先后将FLAGS、AX、BX、CX、SI和DI压入堆栈,则(SP)=?如果此时(SP)=2300H,则原来的(SP)=?
答:(1)、64KB;首地址为1050:0000H,末地址为1050:FFFFH。
(2)、1000H 个16位的字;首地址为0400:0000H,末地址为0400:1FFEH。 (3)、64KB;首地址为2080:0000H,末地址为2080:FFFFH。 (4)、(SP)=1FF4H;原来的(SP)=230CH 2.12 (3)、如右图所示:对于8086,当(CS)=2020H时,物理地址为24200H,则
当(CS)=6520H时,物理地址应转移到什么地方? 2.13 什么是总线周期?什么是时钟周期?一个典型的总线周期最小包括几个时
钟周期?什么情况下需要插入等待周期TW?
答:(1)、总线周期:总线接口部件完成一个取指令或传送数据的完整操作
所需的最少时钟周期数。
(2)、时钟周期:CPU输入的CLK时钟信号。 (3)、4。
(4)、当被写入数据或者被读取数据的外设或存储器不能及时地配合
CPU传送数据。这时,外设或存储器会通过“READY”信号线在T3状态启动之前向CPU发一个“数据未准备好的信号”,于是CPU会在T3之后插入一个或多个附加的时钟周期TW。 2.14 总线周期中每个T状态的具体任务是什么?
2.15 试画出8086最小模式下将内存单元50326H的内容55H读入AL的时序图。 2.16 80386CPU的主要特点是什么?
2.17 80386CPU包含哪些寄存器?各有什么主要用途?
2.18 什么是实地址方式?什么是保护虚拟地址方式?什么是虚拟8086方式?它
们各有什么特点? 2.19 80386CPU中,选择符中3个字段的名字分别叫什么?大小各是多少?各有
什么作用? 2.20 一个段描述符中有几个字节?试说明其中每个字段的含义与作用? 2.21 80386的地址空间可映射到多少页?页有多大? 2.22 页转换产生的线性地址的3部分各是什么? 2.23 简述Pentium的主要结构特点。
2.24 Pentium内部结构的主要特点有哪些?什么是超标量结构?什么是超级流
41564736.doc集 - 5 - 编者:喻其山
水线?
2.25 简述Pentium处理器中U和V两个指令流水线的特点及作用。 2.26 Pentium 4处理器有哪些高级特性?
第 3 章 寻址方式和指令系统
3.1 3.2
什么叫寻址方式?8086CPU有哪几种寻址方式?
指出下列指令中源操作数和目的操作数的寻址方式: (1)MOV AX, 0AH (2)ADD [BX], DX (3)PUSH CS (4)POP DS (5)MUL BL (6)MOV DX,[1200H] (7)MOVSB (8)SUB AX,5[BP+DI] 答:(1)、DEST为寄存器寻址,SRC为立即数寻址。
(2)、DEST为寄存器间接寻址,SRC为寄存器寻址。
(3)、DEST为隐含堆栈指针寄存器间接寻址,SRC为寄存器寻址。 (4)、DEST为寄存器寻址,SRC为隐含堆栈指针寄存器间接寻址。 (5)、DEST为隐含寻址,SRC为寄存器寻址。
(6)、DEST为寄存器寻址,SRC为存储器直接寻址。
(7)、DEST为附加段存储器DI隐含寻址,SRC为数据段存储器SI隐
含寻址。(串传送)
(8)、DEST为寄存器寻址,SRC为基址变址相对寻址。 在直接寻址方式中,一般只指出操作数的偏移地址。试问:段地址如何确定?如果要用某个段寄存器指出段地址,指令应如何表示? 答:(1)、段地址默认为是DS的内容。
(2)、用短跨越前缀指出段地址。指令中用“段寄存器:”表示。 当用寄存器间接寻址方式时,试问:BX、BP、SI、DI分别在什么情况下使用?它们的物理地址如何计算?
分别指出下列指令中源操作数和目的操作数的寻址方式。若是存储器寻址,试写出其有效地址和物理地址。设(DS)=6000H,(ES)=2000H,(SS)=1500H,(SI)=00A0H,(DI)=6010H,(BX)=0800H,(BP)=1200H,数据变量VAR为0050H。
(1) MOV AX, 3050H (2) MOV DL, 80H (3) MOV AX, VAR (4) MOV AX, VAR[BX][SI] (5) MOV AX, [BX+25H] (6) MOV DI, ES:[BX] (7) MOV DX, [BP] (8) MOV BX, 20H[BX] (9) AND AX, BX (10) MOV BX, ES:[SI]
3.3
3.4 3.5
41564736.doc集 - 6 - 编者:喻其山
(11) ADC AX, [BX+DI] (12) PUSH DS 答:(1)、DEST为寄存器寻址,SRC为立即数寻址。
(2)、DEST为寄存器寻址,SRC为立即数寻址。 (3)、DEST为寄存器寻址,SRC为直接寻址。
EA=0050H,PA=(DS)×10H+EA=60050H
(4)、DEST为寄存器寻址,SRC为基址变址相对寻址。
EA=0050H+0800H+00A0H=08F0H,PA=(DS)×10H+EA =608F0H (5)、DEST为寄存器寻址,SRC为寄存器相对寻址。
EA=0800H+25H=0825H,PA=(DS)×10H+EA =60825H (6)、DEST为寄存器寻址,SRC为寄存器间接寻址。
EA=0800H,PA=(ES)×10H+EA =20800H
(7)、DEST为寄存器寻址,SRC为寄存器间接寻址。
EA=1200H,PA=(SS)×10H+EA =16200H
(8)、DEST为寄存器寻址,SRC为寄存器相对寻址。
EA=20H+0800H=0820H,PA=(DS)×10H+EA =60820H (9)、DEST为寄存器寻址,SRC为寄存器寻址。
(10)、DEST为寄存器寻址,SRC为寄存器间接寻址。
EA=00A0H,PA=(ES)×10H+EA =200A0H
(11)、DEST为寄存器寻址,SRC为基址变址寻址。
EA=0800H+6010H=6810H,PA=(DS)×10H+EA =66810H
(12)、DEST为隐含堆栈指针寄存器间接寻址,SRC为寄存器寻址。
EA=(SP)-2,PA=(SS)×10H+EA 3.6
设堆栈指针SP的初值为2300H,(AX)=5000H,(BX)=4200H。执行指令
PUSH AX后,(SP)=?,再执行指令PUSH BX及POP AX之后,(SP)=? (AX)=? (BX)=?
答:(1)、(SP)=22FEH。
(2)、(SP)=22FEH,(AX)=4200H,(BX)=4200H。 试说明指令MOV BX,15[BX]与指令LEA BX,15[BX]的区别。
答:指令MOV BX,15[BX]是读取数据段偏移地址为((BX)+0FH)的内容
送到BX中。指令LEA BX,15[BX]是取该偏移地址值(BX)+0FH送到BX中。 已知(DS)=2000H,有关的内存单元值为(21000H)=00H,(21001H)=12H,(21200H)=00H,(21201H)=10H,(23200H)=20H,(23201H)=30H,(23400H)=40H,(23401H)=30H,(23600H)=60H,(23601H)=30H,位移量COUNT=1200H。执行下列指令后,寄存器AX、BX、SI的值分别是多少? MOV BX,OFFSET COUNT MOV SI,[BX]
MOV AX,COUNT[SI][BX]
答:(AX)= 3040H,(BX)= 1200H,(SI)= 1000H。
3.7
3.8