77范文网 - 专业文章范例文档资料分享平台

第二章微处理器和指令系统习题选解 - 图文

来源:网络收集 时间:2020-04-13 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

2.9如果GDT寄存器值为0013000000FFH,装人LDTR的选择符为0040H,试问装人描述符高速缓存的LDT描述符的起始地址是多少?

解:GDT寄存器的高32位和低16位分别为GDT的基址和段限,所以:GDT的基址=00130000H

LDTR选择符的高13位D15~D3=000000001000B是该LDT描述符在GDT中的序号,所以:

LDT描述符的起始地址= GDT的基址 十LDT描述符相对于GDT基址的偏移值 =00130000H+8×8=00130040H 2.10假定80486工作在实模式下,(DS)=1000H, (SS)=2000H, ( SI ) = El07FH, ( BX )=0040H, (BP) = 0016H,变量TABLE的偏移地址为0100H。请间下列指令的源操作数字段是什么寻址方式?它的有效地址(EA)和物理地址(PA)分别是多少?

(1)MOV AX,[1234H ] (2) MOV AX, TABLE

(3) MOV AX,[BX+100H] (4) MOV AX,TABLE[BPI[SI] 解:(1)直接寻址,EA=1234H , PA =(DS)×16+EA=11234H。 (2)直接寻址,EA= O100H,PA= (DS)×16+EA=10100H。

(3)基址寻址,EA=( EBX)+100H =0140H,PA= (DS) × 16+EA=10140H。 (4)带位移的荃址加变址寻址。(EA)= (BP)+[SI]十TABLE的偏移地址=0195H

PA=(SS)×16+EA=20195H}

2.11下列指令的源操作数字段是什么寻址方式?

(1)MOV EAX , EBX (2)MOV EAX,[ ECX] [EBX ] (3) MOV EAX,[ESI][EDX * 2] (4)MOV EAx,[ ESI*8] 解:(1)寄存器寻址。 (2)基址加变址寻址。 (3)基址加比例变址寻址。 (4)比例变址寻址。

2.12分别指出下列指令中源操作和目的操作数的寻址方式。

式表示出EA和PA。 (1)MOV SI,2100H (2)MOV CX, DISP[BX] (3) MOV [SI] ,AX (4)ADC AX,[BX][SI] (5)AND AX,DX (6) MOV AX,[BX+10H]

(7) MOV AX,ES:[BX] (8) MOV Ax, [BX+SI+20H] (9) MOV [BP ].CX (10) PUSH DS 解:(1) 源操作数是立即数寻址;目的操作数是寄存器寻址。

(2)源操作数是基址寻址,EA=(BX)+DISP,PA=(DS)×16+(BX)+DISP

目的操作数是寄存器寻址。 (3)源操作数是寄存器寻址;

目的操作数是寄存器间接寻址,EA=(SI).PA=(DS) × 16十(SI)。

(4)操作数是基址加变址寻址,EA= (BX)+(SI).PA= (DS) × 16十(BX)+(SI) 目的操作数是寄存器寻址。

(5)源操作数和目的操作数均为寄存器寻址。

(6)源操作数是基址寻址,EA=(BX)+10H.PA= (DS) × 16十(BX)+10H 目的操作数是寄存器寻址。

(7)源操作数是寄存器间接寻.EA= (Bx).PA= (ES) × 16+(BX)

目的操作数是寄存器寻址。

(8)源操作数是带位移的基址加变址寻址:

EA=(BX)+(SI)+20H.PA= (DS) × 16+(BX)+(SI)+20H ; 目的操作数是寄存器寻址。 (9)源操作数是寄存器寻址;

目的操作数是寄存器间接寻址,EA=(BP).PA= (SS) × 16十(BP)。 (10)源操作数是寄存器寻址;

目的操作数是堆栈寻址,EA=(SP)-2.PA=(SS) × 16十(SP)-2。

2.13已知80486工作在实地址方式下。其中一些寄存器的内容和一些存储单元的内容如图2.1所示,试指出下列各条指令执行后。AX中的内容。

(1) MOV AX , 2010H (2) MOV AX, BX

(3) MOV AX ,[1200H] (4) MOV AX , [BX ] (5) MOV AX, 1100H[BX] (6) MOV AX,[BX][SI] (7) MOV AX, 1100H[Bx+SI] ( 8) LEA AX,[SI] 解:(1) (AX) =2010H;

(2) (AX)=(BX)=0100H; (3) (AX)= [32100H]=4C2AH: (4)(AX)= [ 30100H]=3412H; (5)(AX)= [31202H]=4C2AH; (6)(AX)= [30102H]=7856H; (7) (AX)= [31202H]=65B7H; (8)(AX)=(SI)=0002H

2.15已知数据如图2.2所示,数据是低位在前,按下列要求编写程序段:

(1)完成NUM1和NUM2的两个字数据相加,和存放在NUM1中。 (2)完成NUM 1单元开始的连续4个字节数据相加,和不超过一 字节,放在RES单元。

(3)完成NUM1单元开始的连续8个字节数据相加,和为Ifi位, 放在RES和RES十1两个单元中。

(4)完成NUMI和NUM2的双倍精度字数据相加。和存放在NUM2开始的双字单元中。 解:(1) MOV AX,WORD PTR NUM2 ADD WORD PTR NUMI,AX (2) LEA SI,NUM1 MOV AL, 0 MOV CX,4 AGAIN : ADD AL, [S1] INC SI LOOP AGAIN MOV RES, AL (3) LEA SI,NUM1 MOV AX, 0 MOV CX, 8 AGA I N:ADD AL, [SI] ADC AH, 0 INC SI LOOP AGAI N MOV WORD PTR RES, AX MOV AX, WORD PTR NUM 1 ADD WORD PTR NUM2, AX MOV AX, WORD PTR NUM 1 [ 2 ] ADC WORD PTR NUM2 [ 2 ] , AX

2.16 已知的BCD数如图2,2所示,低位在前,按下列要求编写计算BCD数据(为组合BCD数)的程序段:

(l)完成NUM I单元开始的连续8个组合型.SCD数相加,和(超过一字节)放在RES和 RES + 1两个单元中。

(2)完成NUMI单元和NUM2单元的两个BCD数相减,其差存人RES单元,差=?, CF=?。

解:(1)LEA SI, NUM 1

MOV WORD PTR RES,0 ;和清0

MOV CX,8 ;置循环次数 AGAIN ; MOV AL, RES ;取和低字节

ADD AL,[SI] ;与当前BCD数相加

DDA ;BCD调整

MOV RES, AL ;保存和低字节

JNC NEXT ;无进位不处理和高字节 MOV AL,RES + 1 ;有进位,和高字节加1 ADD AL , 1 DAA

MOV RES+ 1 , AL ;保存和高字节 NEXT: INC SI LOOP AGAIN (2) MOV AL, NUM1 SUB AL,NUM2 DAS

MOV RES, AL 差=(RES)=90H,CF=1

2.17已知数据如图}.z所示,低位在前,按下列要求编写程序段:

(1) RIUM1和NUM2两个数据相乘(均为无符号数),乘积放在RES开始的单元。 (2)NUM1和NUM2两个字数据相乘《均为带符号数),乘积放在RES开始的单元。

(3)NUM1单元的字节数据除以46(均为无符号数),商和余数依次放人RES开始的两个字节单元。

(4)NUM1字单元的字数据除以字单元的宇,商和余数依次放人RES开始的两个字单元。 解(1)MOV , AL,BYTE PTR NUM1 MUL BYTE,PTR, NUM2 MOV WORD PTR RES, AX (2)MOV AX,WORD PTR NUM1 IMUL WORD PTR, NUM2 MOV: WORD PTR RES,AX

MOV WORD PTR RES十2,DX (3)MOV AX,46 DIV BYTE PTR NUMI MOV WORD PTR RES, AX MOV AX,NUM2 (4)CWD/MOV DX, 0 IDIV/DIVWORD PTRNUM1 MOV WORD PTR RES,AX MOV WORD PTR RES +2 , DX

2.18 已知:(SS)=0A8E0H,(SP)=06C0H,(AX)二8881 H, (CX)=0E245H.试画出

下列指令执行到位置1和位置2时堆栈区和SF指针内容的变化示意图。图中应标出存储单元的实际地址PA。 PUSH AX PUSH CX POPF

执行到位置1和位置2时堆栈区和SF指针内容分别如图2.3(a)和2.3(b)所示。

2.19识别下列指令的正确性,对错误的指令、说明错误的原因。 (1)MOV DS,100 (2)MOV [1000H] ,23H (3)MOV [l 000H],[2000H] (4) MOV DATA,1133H

(5)MOV 1020H,DX (6) MOV AX,[0100H+BX+BI] (7) MOV CS,AX (8) PUSH AL

(9) PUSH WORD PTR[SI] (l0) IN Al,[80H] (11)OUT CX , AL (12) IN AX, 380H

(13) MOV CL, 3300H (14) MOV Ax, 2100H[BP] (15) MOV DS,ES (16) MOV IP, 2000H (17) PUSH CS (18)POP CS (19) LDS CS, [ BX ] (20) MOV GAMMA , CS (21)XCHG AH,AL (22) XCHG 200,AL (23) JMP BX (24)SHR Dx,2 解:(1)错误。立即数不能直接斌给段寄存器。 (2)错误。目的操作数长度不确定。 (3)错误。源、目的操作数不能同为存储器寻址。

(4)依赖于DATA的定义。若DATA定义为字或双字变童,则正确:若DATA定义为字节变量.则源操作数超出目的操作数的数据范围.则错误;若DATA定义为常t,则目的操作数为立即数。则错误。

(5)错误。立即数不能直接赋给段寄存器。

(6)错误。16位(带位移)基址加变址寻址方式中的地址寄存器不能同为基址寄存器。 (7)错误。不能用传送指令改变代码段寄存器。 (8)错误。堆栈指令的操作数不能为字节操作数。 (9)正确。

(10) I/O端A只能用立即数或DX间接寻址。 (11)错误。CX不能用于寻址I/O端口。

(12)错误。采用立即数寻址I/O端口时,端口号不能大于255。 (13)错误。源操作数超出目的掸作数的数据范围。 (14)正确。

(15)错误。源、目的操作数不能同为段寄存器。 (16)错误。不能用传送指令改变IP寄存器。 (17)正确.:

(18)错误。不能用堆找指令改变CS寄存器。

(19)错误。CS.(E)IP寄存器只能通过程序控制类指令改变。 (20)依赖于GAMMA的定义.见(4)。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库第二章微处理器和指令系统习题选解 - 图文在线全文阅读。

第二章微处理器和指令系统习题选解 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/937240.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: