- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章??汇编语言程序设计 一、程序分析题
? 1 .MOV? AL,10
????? ADD? AL,AL
????? SHL? AL,1
????? MOV? BL,AL
????? ADD AL,BL
问:AL=???? ?BL=??????? ?
解: AL=50H(或80)BL=28H(或40)
2.???? MOV? BX,00FFH
????? AND? BX,0FFFH
????? OR? BX,0F0FH
????? XOR BX,00FFH
问:BX=? ??????????
解:2. BX=0F00H
3.???? XOR? AX,AX
?????? MOV? BX,2
?????? MOV? CX,10
? LP:ADD? AX,BX
????? ADD? BX,2
????? LOOP? LP
????? HLT
(1)该程序的功能是什么?
(2)程序执行后,AX=??????? ?????BX=??????? ??????CX=??????? ?????
解:(1)求2~20间的偶数和。(完成累加求和,即求:2+4+6+8+10+12+14+16+18+20)。
(2)AX=110,BX=22,CX=0
4.设DS=1000H,有如下数据段:
?????? DATA? SEGMEN
???????????????? ORG 10011
??????????? Xl? DW? 11H,22H,33H
??????????? X2? DB? 33H,44H,55H
??????????? Y1? EQU? 4321H
??????????? Y2? EQU? $- X2
??????????? X3? DB? 88H,99H
????? DATA? ENDS
(1)该数据段共占用多少字节的存储单元?
(2) Y1和Y2的值为多少?X3的值是多少?
解:(1)该数据段共占用11个字节
??? (2)Yl =4321H,Y2=3,X3=109H这里X3是用DB定义的,它是变量名。它的偏移地址为109H。Y1和Y2是由EQU定义的,它们是符号名,是常量。
5.下列程序段执行后,寄存器AX、BX和CX的值各为多少?
????? ORG? 1200H
????? DA1? DW? 100
???????????? ┆
????? MOV? AX,DA1
????? MOV? BX,0FFSET? DA1
????? MOV? CL,BYTE PTR? DA1+1
????? MOV? CH,TYPE? DA1
????? HLT
解: AX=0064H? BX=1200H? CX=6400H
6.有数据段如下:
????? DATA? SEGMENT
?????????? ORG? 1200H
?????????? BUF? DB? 5,6,‘78’
?????????? X1? DW? 1,37H,46H
?????????? Y1? EQU? X1-BUF
????? DATA? ENDS
(1)该程序段占有的存储单元字节数是多少?
(2)Y1的值是多少?
解:(1)占10个字节单元? (2)Y1=2
二、程序填空题
1. AX中有一个无符号数,若其值小于100,就加100;若其值大于等于100,就减50,但计算结果仍保存在AX中。在下面程序段每一空白处填上一条适当指令,以实现其功能。
??????????????? CMP? AX,100
??????????????? ??????????????
??????????????? SUB? AX,50
??????????????? ??????????????
??????????? PP:ADD? AX,100
???????? DONE:HLT
解:第一空白处填JC? PP
??? 第二空白处填JMP DONE
2.下面程序段判断A单元的值,并根据其值是负数、0或正数,分别将0FFH,00H,01H送入AL中。在空白处填入适当指令。
??????????? MOV? AL,A
??????????? CMP? AL,0
??????????? ?????????????
??????????? ?????????????
??????????? JZ? SYM
??????????? MOV? AL,OFFH
??????????? JMP? DONE
SYM:MOV? AL,1
DONE:HLT
解:第一个空填JZ DONE,因为程序已经给AL赋值,若AL等于0的话,AL中放的结果值也为0,所以转DONE即可。第二个空应填TEST AL,80H,因为其下面一条指令是JE SYM,其上一条指令应能影响ZF标志位,所以使用测试指令;即为0时(正数时
文档评论(0)