第五章 汇编言程序设计.docVIP

  • 24
  • 0
  • 约1.16万字
  • 约 6页
  • 2016-10-16 发布于贵州
  • 举报
第五章 汇编言程序设计

第五章??汇编语言程序设计 一、程序分析题 ? 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)

1亿VIP精品文档

相关文档