第4章习题解答(给同学参考).doc

上传人:飞****2 文档编号:60092720 上传时间:2022-11-13 格式:DOC 页数:8 大小:45.50KB
返回 下载 相关 举报
第4章习题解答(给同学参考).doc_第1页
第1页 / 共8页
第4章习题解答(给同学参考).doc_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《第4章习题解答(给同学参考).doc》由会员分享,可在线阅读,更多相关《第4章习题解答(给同学参考).doc(8页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、本答案经本人简单作答、整理、修改(并是标准答案),仅供同学参考,欢迎同学提出宝贵意见。4.10给定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么答案:(1)立即寻址 没有 IP的内容(2)直接寻址 7237H ;MOV AX,7237H(3)使用BX的寄存器寻址 没有 ;MOV AX,BX(4)使用BX的间接寻址 637DH ;MOV AX,BX(5)使用BX的寄存器相对寻址 0D5B4H ;MOV AX,DBX(6) 基址变址寻址 8E18H ;MOV AX,BXSI(7)相对基址变址 004FH ;MOV AX,DBXSI4.1

2、1求执行两条指令后,各标志位的状态MOV AL,91;执行后,(AL)=91=5BHADD AL,0BAH加法执行如下:0BAH1011 1010+05BH0101 1011115H 1 0001 0101CF:显然最高位产生了进位(两个加数都是两位的,和却有三位),CF=1AF:低四位向高四位产生了进位(A+B产生进位),AF=1ZF:运算结果不为0,ZF=0SF:运算结果最高位为0(高四位:1H=0001B),SF=0OF:负+正=正(两个加数的符号位不同),没有溢出,OF=04-12(1)MOV AL,0F5H 正确 (2)ADD BXBP,BX 错误,不能同时使用BXBP进行寻址 (3

3、)CMP AL,100H 错误,AL为8位,100H大于8位,类型不匹配。 (4)TEST BP,DL 正确 (5)ADC 15,CL 错误,目的操作数不能是立即数 (6)SUB DI,DA_WORD 错误,两个操作数不能同时是存储器操作数。 (7)OR CH,CL 正确 (8)MOV AL,1000H 错误,AL为8位,1000H为16位,类型不匹配。 (9)SAR 10HDI,2 错误,AL为8位,移位多次必须CL中。 (10)NOT AL,BL 错误,逻辑非操作是单操作指令。 (11)DEC CX,1 错误,逻辑非操作是单操作指令。 (12)LEA ES,TABBX 错误,目的寄存器只能

4、是通用寄存器。4-13、根据下列要求,写出相应的汇编指令答案:(1)ADD AL,BXSI(3)ADD BX0B2H, CX(4)MOV AX,2A59HADD 0524H ,AX(5)ADD AL ,0B5H4-14、答案:(1)寄存器间接寻址 MOV BX, OFFSET TABLEADD BX, 08H MOV DX ,BX(2)寄存器相对寻址 MOV SI,O8H MOV DX,TABLESI(3)基址变址寻址MOV BX , TABLEMOV SI,O8HMOV DX,BXSI4-15 15、假设(DS)=091DH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H,

5、(CX)=5678H,(BP)=0024H,(SI)=0012H,(DI)=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。试给出下列各指令或程序段的分别执行的结果。答:(1) MOV CL,20HBXSI 有效地址EA= 20H+BX+SI =20H+0024H+0012H=0056H逻辑地址 DS:0056H物理地址=091D0H+0056H=09226H (逻辑地址左移1为加有效地址)CL=09226H=0F6H(2) MOV BPDI,CX 有效地址EA= BP+DI =0024H+0032H=0056H逻辑地址 SS:0056H物

6、理地址=1E4A0H+0056H=1E4F6H1E4F6H=CX=5678H(3) LEA BX,20HBXSIMOV AX,2BX有效地址EA= 20H+BX+SI =20H+0024H+0012H=0056HBX=0056H有效地址EA= 2H+BX=2H+0056H=0058H逻辑地址 DS:0058H物理地址=091D0H+0058H=09228HAX=09228H=1E40H(4) LDS SI,BXDIMOV SI,BX有效地址EA= BX+DI =0024H+0032H=0056H逻辑地址 DS:0056H物理地址=091D0H+0056H=09226HSI=09226H=00F

7、6HDS=09226H+2H=09228H=1E40H有效地址EA= SI= 00F6H逻辑地址 DS:00F6H物理地址=1E400H+00 F6H=1E4F6H 1E4F6H=BX=0024H(5) XCHG CX,32HBXXCHG 20HBXSI,AX有效地址EA= 32H+BX =32H+0024H=0056H逻辑地址 DS:0056H物理地址=091D0H+0056H=09226HCX=09226H=00F6H09226H=5678H有效地址EA= 20H+BX+SI =20H+0024H+0012H=0056H逻辑地址 DS:0056H物理地址=091D0H+0056H=0922

8、6H09226H= 1234HAX=5678H4-16 (01400)=1234H应改为(01410)=1234H分析:有效地址EA=10H+SI= 10H+0400H=0410H 逻辑地址 DS:0100H物理地址=01000H+0410H=01410HMOV AX ,10HSI ;传送的是源操作数的内容 AX=1234HLEA AX ,10HSI ;传送的是源操作数的有效地址 AX=0410H4-17mov ax,1234h ;将1234h这个16进制数放到ax寄存器中mov bx ,5678h ;同理,将5678h这个16进制数放到bx这个寄存器中push ax ;将ax压栈,即将123

9、4h放到栈顶push bx ;将bx压栈,即将5678h放到1234h上面(即栈顶)pop cx ;弹出当前栈顶元素(5678h),并将其传送给cx,即(cx)=5678h4-18写出执行以下计算的指令序列,其中X,Y,Z,R和W均为存放16位带符号数单元的地址。(1) ZW+(Z-X)(2) ZW-(X+6)-(R+9)(3) Z(W*X)/(Y+6),R余数(4) Z(W-X)/5*Y)*2 本题与书上不尽相同参考下题答案:(1). MOV AX,Z ;把Z送到AXSUB AX,X ;Z-XADD AX,W ;W+(Z-X) MOV Z,AX ;结果保存在Z中(2).MOV AX,R ;R

10、送到AX中ADD AX,9 ;R+9MOV BX,X ;X送到BX中ADD BX,6 ;X+6ADD AX,BX ;(R+9)+(X+6),结果保存在AX中MOV BX,W ; W送到BX中SUB BX,AX ; W-(R+9)-(X+6),连续减去两个数,相当于减去这两个数的和MOV Z,BX ;最终结果送到Z中(3).MOV AX,W ;把W送到AXIMUL X ;W*X 注意:低十六位保存在AX里,高十六位保存在DX里MOV BX,Y ;把Y送到BX 里ADD BX,6 ;Y+6IDIV BX ;(W*X)/(Y+6) 注意:商保存在AX里,余数保存在DX里MOV Z,AX ;把商送到Z

11、中,MOV R,DX ;把余数 送到R中(4).MOV AX,W ;把W送到AX中SUB AX,X ;W-XCWD ;把AX中的十六位带符号数扩展成为32位,低十六位保存在AX中,高十六位保;在DX中 MOV BX,5 ;把5送到BX中IDIV BX ;(W-X)/5 被除数为32位,除数为16位商为16位 IMUL Y ;上一步结果再乖以Y,积为32位MOV BX,2 ;把2送到BX中 IMUL BX ;上一步乘法所得的积再乘以2,各为64位MOV Z,EAX ;把结果中低32位放入Z双字单元中 ,超出范围MOV Z+4,EDX ;把结果中高32位放入Z+4双字单元中 ,超出范围请参考下题试

12、编制一程序,计算下列公式的值,将商存放在Z单元,余数放在R单元内中。 X、Y、Z、R、W分别为存放16位带符号数单元的地址。计算过程中中间结果和最后结果在16位二进制数范围内Z =(W-Z)/(5*Y)*2MOV AX,W ;把W送到AX中SUB AX,X ;W-XMOV BX,2 ;把2送到BX中MUL BX ;先乘以2PUSH AX;保存中间结果(W-Z)*2MOV AX,5;把5送到AX中MUL Y ;5再乖以Y,乘机在AX中MOV BX,AX;5*Y再放到BX中POP AX;返回中间结果(W-Z)*2XOR DX,DXDIV BX;实现(W-Z)*2/(5*Y),商在AX中,余数在DX

13、中MOV Z,AXMOV R,DX4-19给了一定初始寄存器条件,问执行一段程序后,几个寄存器中应该是什么内容(遇到这种题目,应当把所有寄存器列一个表格,每一条指令分析完后,填上新的一行寄存器内容,这样才不容易出错,逐条指令分析,每条指令都使用上条指令执行完后新的寄存器内容。下面我们按照这种思路来分析这段程序)(DS)=1234H,(SI)=124H,(12464H)=30ABH,(12484H)=464H(考试时可以用自己的方式简写寄存器状态,提高速度)1)LEA SI,SI分析:EA=(SI)=124H指令执行完后,(SI)=(SI)=124H(注意LEA指令的功能,不要搞成MOV指令了)

14、引起的寄存器内容变化:无(仅列出当前变化了的,能提高解题速度)2)MOV AX,SI分析:EA=(SI)=124H默认使用DS物理地址=12340H+124H=12464H执行后,寄存器变化为:(AX)=(12464H)=30ABH3)MOV SI+22H,1200H分析:SI+22H=22HSIEA=22H+(SI)=22H+124H=146H默认使用DS物理地址=12340H+146H=12486H执行后,寄存器没有变化,存储单元变化为:(12486H)=1200H4)LDS SI,SI+20H分析:SI+20H=20HSIEA=20H+(SI)=20H+124H=144H默认使用DS物理

15、地址=12340H+144H=12484H当前:(12484H)=464H(12486H)=1200H执行后,变化:(SI)=(12484H)=464H,(DS)=(12486H)=1200H5)ADD AX,SI分析:EA=(SI)=464H默认使用DS物理地址=12000H+464H=12464H执行后,变化:(AX)=(AX)+(12464H)=30ABH+30ABH=6156H4-20假定了一些寄存器初始内容,问执行一段程序后某些寄存器和标志位的内容。初始:(AX)=0A5C6H,(CX)=0F03H1)STC执行后,CF=12)RCL AX,CL当前(CL)=03H,(AX)=001

16、10B,CF=1执行后:(AX)=10110B=2E36H,CF=1,3)AND AH,CH当前(AH)=02EH=B(CH)= 0FH =B功能为提取低4位,执行后,AH=0EH,CF=0(强制清0)4)RCR AX,CL当前(CL)=03H,CF=0,(AX)=0E36H=10110B,执行后:CF=1,(AX)=00110B=81C6H 4-21初始:(AX)=0FC77H,(CX)=504H1)CLC执行后,CF=02)SAR AX,CL当前(CL)=04H,(AX)=0FC77H=10111B算术右移4位(记得最高位补充符号),执行后(AX)=00111B=0FFC7H,CF=0。3

17、)XCHG CH,CL当前(CH)=05H,(CL)=04H执行后,(CH)=04H,(CL)=05H4)SHL AX,CL当前(CL)=05H,(AX)=0FFC7H=00111B逻辑左移5位,执行后(AX)=00000B=0F8E0H,CF=14-22初始:(AX)=0FFFFHINC AX执行后,(AX)=0000HNEG AX执行后,(AX)=0000HDEC AX执行后,(AX)=0FFFFHNEG AX执行后,(AX)=0001H4-23初始:(BX)=12FFH1)MOV CL,8执行后,(CL)=82)ROL BX,CL循环左移8位,相当于低8位和高8位交换,CF中保存高8位的

18、最低位执行后,(BX)=0FF12H,CF=03)AND BX,0FFH提取低8位,执行后,(BX)=0012H,CF=04)CMP BX,0FFH执行后,(BX)不变,(BX)=0012H因为作为无符号数,0012H CMOV AX,ANEG BSUB AX,B MOV C,AX(4)把DX,AX中的32位无符号数右移2位SHR DX,1RCR AX,1SHR DX,1RCR AX,1(5)用一条指令把CX中的整数转变为奇数OR CX,0001H(6)将AX中第1,3位变反,其余各位保持不变XOR AL,B(7)根据AX中有0的位对BX中对应位变反,其余各位保持不变。NOT AX (AX中内

19、容变反)XOR BX,AX 4-30MOV CL, 4 ;设置循环次数为SHR AX, CL ;实现将AX逻辑右移MOV BL, DL ;将DL的低4位暂存在BL中SHR DX, CL ;实现将DX逻辑右移SHL BL, CL ;将BL逻辑左移OR AH, BL ;将BL或上AH ;也就是使DL的低4位或上AH高4位,从而实现了DX、AX中的双字右移四位。4-39要求不改变DH内容方法很多:1. 先送进BH,再在BH里清除高三位就行了2. 放到AL里(或其它字节单元)处理,然后存入BH3. 先将DX入栈,处理完从栈中恢复要清除最左3位,也有多种方法:1. 与B(或1FH)作AND运算2. 左移三位,再右移三位组合上面的两种方法1, 是这样:MOV BH, DHAND BH, B

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com