习题1(教材P56)
1.8086/8088微处理器地址总线有多少位?寻址范围是多少?
答:20位 A0-A19。寻址范围00000H-FFFFFH
2.8086/8088微处理器分哪两部分?各部分主要由什么组成?
答:执行单元EU和总线接口单元BIU。
EU包括:ALU、寄存器组、暂存器、标志寄存器、EU控制单元。
BIU包括:指令队列缓冲器、段寄存器及指令指针、总线地址加法器、总线控制逻辑。
4.8086/8088微处理器中有几个通用寄存器?几个变址寄存器?有几个指针寄存器?几个段寄存器?
答:8个通用寄存器AX、BX、CX、DX、SP、BP、SI、DI。2个变址寄存器SI、DI。2个指针寄存器SP、BP。DS、ES、SS、CS段地址寄存器。
5.8086/8088微处理器中有哪些标志位?它们的含义和作用如何?
答:零标志位ZF、进位标志CF、溢出标志位OF、辅助进位标志位AF、奇偶标志位PF、符号标志位SF、方向标志位DF、中断允许标志位IF、跟踪标志TF。
6.试求出下列运算后的各个状态标志,说明进位标志和溢出标志的区别?
1278H+3469H
答:0001 0010 0111 1000
+0011 0100 0110 1001
0100 0110 1110 0001
ZF=0;SF=0;CF=0;OF=0;AF=1;PF=1。
54E3H-27A0H
答:0101 0100 1110 0011
+1101 1000 0110 0000(-27A0的补码)
10010 1101 0100 0011
ZF=0;SF=0;CF=1;OF=0;AF=0;PF=0。
3881H+3597H
答:0011 1000 1000 0001
+0011 0101 1001 0111
0110 1110 0001 1000
ZF=0;SF=0;CF=0;OF=0;AF=0;PF=1。
汇编table指令什么意思01E3H-01E3H
答:0000 0001 1110 0011
+1111 1110 0001 1101(-01E3H的补码)
10000 0000 0000 0000
ZF=1;SF=0;CF=1;OF=0;AF=1;PF=1。
进位表示最高位产生进位。
溢出表示超出数的表示范围。OF=CnCn-1
8.什么是逻辑地址?什么是物理地址?它们之间有什么联系?各用在何处?
答:逻辑地址:产生实际地址的两个地址分量:首地址和偏移地址。物理地址:内存单元地址。用户在编写程序时只使用逻辑地址。程序装到内存中使用物理地址。物理地址可以通过逻辑地址求得。
9.设现行数据段位于存储器的B0000H到BFFFFH存储单元,DS段寄存器内容为多少?
答:DS=B000H
11.8086/8088微处理器工作在最小模式和最大模式时的主要特点是什么?有何区别?
答:最小模式只有一个CPU不需要总线控制器。最大模式有多个微处理器,必须要总线控制器来对总线控制权进行分配。引脚MN/MX=1工作在最小模式。MN/MX=0工作在最大模式。
13.80486地址总线宽度为多少?数据总线宽度为多少?
答:80486地址总线宽度为32位(分成4个块,每个块为8位字长,块有A1,A0选择)有数据总线宽度为32位。
14.现有6个字节的数据分别为11H,22H,33H,44H,55H,66H,已知它们在存储器中的物理地址为400A5H~400AAH,若当前的(DS)=4002H,请说明它们的偏移地址值。如果从存储器中读出这些数据,至少需要访问几次存储器,各读出哪些数据?
解:∵物理地址=(DS)×16+偏移地址,
∴偏移地址=物理地址-(DS)×16=400A5H~400AAH-40020H=85H~8AH
至少需要访问三次存储器,每次读出一个字,即2211H,4433H,6655H。
这六个数在存储器中的存放位置如图所示。
习题2(教材P105)
1.已知DS=2000H,BX=0100H,SI=0002H,存储单元[20100H]~[20103H]依次存放12 24 56 78H,[21200H]~[21203H]依次存放2A 4C B7 65H,说明下列每条指令执行后AX寄存器的内容。
(1) MOV AX, 1200H
解:AX=1200H
(3) MOV AX, [1200H]
解:物理地址=DS×16+1200H=20000H+1200H=21200H,所以AX=4C2AH
(5) MOV AX, [BX+1100H]
解:物理地址=DS×16+BX+1100H=20000H+0100H+1100H=21200H ,所以AX=4C2AH
(7) MOV AX, [BX][SI+1100H]
解:物理地址=DS×16+BX+SI+1100H=20000H+0100H+0002H+1100H=21202H ,所以AX=65B7H
(2) MOV AX, BX
解:AX=0100H
(4) MOV AX, [BX]
解:物理地址=DS×16+BX=20000H+0100H=20100H,所以AX=2412H
(6) MOV AX,[BX][SI]
解:物理地址=DS×16+BX+SI=20000H+0100H+0002H=20102H,所以AX=7856H
2.指出下列指令错误
(1) MOV CX, DL
答:数据类型不匹配,CX是16位,DL是8位。
(2) MOV IP, AX
答:指令指针不能直接修改。
(3) MOV ES, 1234H
答:段地址寄存器不能直接置数。
(4) MOV ES, DS
答:段地址DS不能做源操作数。
(5) MOV AL, 300
答:300大于255,AL是8位的,最多只能存255
(6) MOV [SP], AX
答:SP不能做间接寻址寄存器。
(7) MOV AX , BX+DI
答:基址变址寻址必须打[]。
(8) MOV 20H, AH
答:立即数不能做目的地址单元。
3.已知数字0~9对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存放在于以TABEL为首地址(设为200H)的连续区域中。对如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。
LEA BX,TABLE ;取表的首地址送BX,执行后(BX)=200H
MOV AL,8 ;立即数8送AL,执行后,(AL)=8
XLAT ;查表,将表首地址+8((BX)+(AL))所对应单元内容送AL,
;执行后,(AL)=12H(8所对应的格雷码)
4.什么是堆栈,它的工作原则是什么,它的基本操作有哪两个,对应哪两种指令?
答:堆栈是在内存中开的一个特殊的数据区,堆顶有堆栈指针SP与SS共同决定。
原则是:先进后出,
两个操作:入栈、出栈,对应指令:PUSH(入栈)、POP(出栈)。
5.已知SS=FFA0H,SP=00B0H,画图说明执行下列指令序列时,堆栈区和SP的内容如何变化?
MOV AX , 8075H
PUSH AX
MOV AX , 0F79H
PUSH AX
POP BX
POP [BX]
解:
8.请分别用一条汇编语言指令完成如下功能:
(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。
解:ADD DX, BX
(2)用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送AL中。
解:ADD AL, [BX+SI] 或ADD AL, [BX][SI]
(3)用寄存器BX和02BH的寄存器相对寻址方式,把存储器的一个字和CX寄存器的内容相加,并把结果送回存储器中。
解:ADD [BX+02BH] ,CX 或ADD 02BH [BX] ,CX
(4)把数0A0H与AL寄存器内容相加,并把结果送AL中。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论