第五篇 汇编语言程序设计.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档