地址线,有16MB寻址能力,它能将每个任务的230字节(1GB)的虚地址映射到224字节的物理地址中去。
80286的内部由地址部件AU、指令部件IU、执行部件EU和总线部件BIU四大部分组成,和8086的EU与BIU组成相比,四个部件的并行操作,进一步提高了吞吐率、加快了处理速度。
2-13 扼要说明80486同80386的主要区别。
【解答】80486是继80386之后新的32位微处理器,同80386相比,在相同的工作频率下,其处理速度提高了2~4倍。80486采用了RISC(精简指令系统计算机)技术,降低了执行每条指令所需要的时钟数;80486采用了与80386不同的突发式总线技术,有效地解决了微处理器同内存之间的数据交换问题;80486内部集成了FPU(浮点部件)和Cache(超高速缓冲存储器),CPU和FPU、CPU和Cache之间都采用高速总线进行数据传送,使其处理速度得到极大的提高。
80486的在体系结构上除沿用80386的总线接口部件BIU、指令预取部件IPU、指令译码部件IDU、执行部件EU、存储器管理部件SU和PU、控制部件外,为提高性能又增加了高速缓存部件Cache、高性能浮点处理部件FPU。
2-14扼要说明Pentium同Pentium Pro的主要区别。(略) 2-15扼要说明Pentium MMX的特点。(略)
2-16扼要说明Pentium Ⅱ同 Pentium Ⅲ的特点 。 (略)
第三章 8086微处理器的指令系统
3-1 指出下列各指令中源操作数和目的操作数的寻址方式,并说明操作数的类型(注:字节数据或字数据)
(1)MOV SI,1000H (2)MOV BL,[1000H]
(3)MOV [BX+0100H],CX
(4)MOV BYTE PTR [BP] [SI],100 (5)MOV AX,[BX+DI+0004H]
【解答】 源操作数 目的操作数
(1) 立即寻址
(2) 直接寻址 (3) 寄存器寻址 (4) 立即寻址 (5) 基址加变址寻址
3-2 指出下列各非法指令的错误原因
寄存器寻址 寄存器寻址 基址寻址 基址加变址寻址 寄存器寻址 操作数类型 字类型 字节类型 字类型 字节类型
字类型
(1) MOV AL,BX
【解答】源与目的操作数类型不一致。 (2) MOV CL,200H
【解答】源操作数太大了,CL是8位寄存器,能存储的最大数只能到FFH。 (3) MOV CS,AX
【解答】不允许用传送指令给CS赋值。 (4) MOV DS,3000H
【解答】8086没有给段寄存器直接置值的指令,应该通过寄存器辗转设置。 (5) MOV [DI],[SI]
【解答】存储器单元之间不可直接传送,即两个操作数不能同为内存操作数。
6
(6) MOV AL,[CX]
【解答】CX不可以作为间址寄存器,只能用BX、BP、SI、DI。 (7) MOV AL,[SI] [DI]
【解答】 基址加变址寻址时 ,基址寄存器只能用BX或BP,变址寄存器只能用SI或DI,这里源操作数寻址用[SI+DI]是错误的。 (8) ADD BX,DS
【解答】DS段寄存器不能当通用寄存器用,故不可以出现在ADD指令中。 (9) INC [BX]
【解答】 [BX]寻址数据类型不明确,应加类型说明 BYTE PTR [BX] 或 WORD PTR [BX]。 (10) SHL AX
【解答】缺少一个操作数。正确格式应为SHL AX, 1或SHL AX, CL(1或CL为移位次数)。
3-3 设DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H,
SP=1352H,SI=1354H,(11350H)=0A5H,(11351H)=3CH,(11352H)=0FFH,(11353H)=26H,(11354H)=52H,(11355H)=0E7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H,(21351H)=51H
下列各指令都在此环境下执行,在各小题的空格中填入相应各指令的执行结果。
(1) MOV AX,1352H 【解答】AX=1352H (2) MOV AX,[1352H] 【解答】AX=26FFH
(3) MOV 0150H [BX],CH
【解答】(11350H)=33H, (11351H)=3CH (4) MOV AX,0150H [BP] 【解答】AX=5188H (5) POP AX
【解答】AX=(21352H), SP=1354H (6) ADD [SI],CX
【解答】(11354H)=0ECH, (11355H)=1AH, SF=0, ZF=0, PF=1, CF=1, OF=0 (7) SUB BH,0150H [BX] [SI]
【解答】BH=75H, SF= 0, ZF=0, PF=0, CF=1, OF=0 (8) INC BYTE PTR 0152H [BX]
【解答】(11352H)=00H, (11353H)=26H, CF=0 (9) INC WORD PTR 0152H [BX]
【解答】(11352H)=00H, (11353H)=27H, CF=0 (10) SAR BYTE PTR 0150H [BX],1 【解答】(11350H)=0D2H, CF=1, OF=0 (11)SAL BYTE PTR 0150H [BX],1
【解答】(11350H)=4AH, CF=1, OF=1
3-4 写出下列无条件转移指令执行后的CS和IP值。
【解答】 CS的值 (1) 2000H (2) 2000H (3) 2000H (4) 3000H (5) 2000H (6) 3000H
IP的值 016EH+2+0FFE7H=0157H 016EH+2+0016H=0186H 16C0H 0146H 1770H 0146H
7
3-5 阅读下列各小题的指令序列,在后面空格中填入该指令的执行结果。
【解答】
(1) AL=02H, BL=85H, CF=1 (2) AX=0000H, CF=0 (3) AX=0000H, CF=0 (4) BX=0FFFFH, CF=1
3-6 写出每条指令执行后各寄存器内容的变化情况,并画出堆栈的存储情况。
【解答】
程序 AX BX CX DX PUSH AX 7CA6H 1358H 000AH 5766H PUSH DX 7CA6H 1358H 000AH 5766H POP BX 7CA6H 5766H 000AH 5766H POP CX 7CA6H 5766H 7CA6H 5766H
堆栈的变化情况图:
CX BX
SS:SP指针 DXL DXL 6000:0FFCH DXH DXH A6000:0FFEH XL AXL AX6000:0FFEH L AXL 6000:0FFEH AXH AXH AXH AXH 6000:1000H 6000:1000H 6000:1000H 6000:1000H
执行第一条指令后 执行第二条指令 后 执行第三条指令后 执行第四条指令后
3-7 阅读分析下列指令序列
【解答】 (1) 转向L1
(2) 转向 L1
(3) 转向L2
(4) 转向 L5
(5) 转向 L5
3-8 8种cc条件转移指令中有哪几条可以满足条件转移到NEXT去。 【解答】 (1) NB, BE, NL, LE
(2) NB, NBE, L , LE (3) NB, NBE, NL, NLE (4) NB, NBE, NL, NLE (5) B, BE, NL, NLE (6) B, BE, L, LE (7) B, BE, L, LE (8) NB, BE, NL, LE
8
3-9 用移位和循环指令编写一段指令序列,实现将在DX:AX中的32位二进制数乘2及
除2的功能。
【解答】
(1) 乘2功能 SHL AX,1 RCL DX,1
(2) 乘2功能 SAL AX,1 RCL DX,1
除2功能 SHR DX,1 RCR AX,1 除2功能 SAR DX,1 RCR AX,1
3-10 数0~15的平方值存放在数据段起始地址为1000H的内存连续单元中,用XLAT指令编写一段指令序列,实现用查表法求得数N(0~15)得平方值。
【解答】MOV BX,1000H
MOV AL,N ;N为0~15之间任意一个数 XLAT ;N的平方值在AL中
3-11 编写一段指令序列,测试AL的内容,若低4位全为0,就转移去由标号NEXT表示的目标地址执行程序,否则就继续顺序执行下去。
【解答】TEST AL,0FH
JZ NEXT
3-12 寄存器AX和BX各有两位非压缩BCD数,编写一段指令序列,将这两个两位非压缩BCD数的和存入AX。
【解答】 ADD AL,BL ;个位加
AAA ;个位非压缩BCD加法调整 MOV CL,AL ;个位BCD和暂保存在CL MOV AL,AH
ADD AL,BH ;十位加
AAA ;十位非压缩BCD加法调整 MOV AH,AL
MOV AL,CL ;两位非压缩BCD和存入AX
3-13 用串操作指令编写一段指令序列。 【解答】 (1)MOV SI,0200H
MOV DI,1400H STD
MOV CX,100 REP MOVSB
(2)MOV DI,0100H
MOV CX,100 CLD
MOV AX,2A84H REPNZ SCASW JZ FOUND
……
3-14 DX:AX和CX:BX中各有两个32位有符号数,编写一段指令序列,对这两个数求和,结果放在DX:AX中。
设DX:AX=78A3057FH(正数) CX:BX=C880AABBH(负数)
9
【解答】ADD AX,BX
ADC DX,CX ;结果32位和存放在DX:AX中
3-15 DX:AX中有一个32位有符号数,编写一段指令序列,求得该数的相反数(注:即符号相反的数),仍放在DX:AX中。 【解答】NOT AX
INC AX NOT DX
10