下面的汇编语言源程序经汇编后,发现TEST[BX],01H指令有语法错误,试问该指令的正确形式应该是【  】。    DSEG    SEGMENT    DAT     DB            5,13,4,-2,6,23,44,-1,29,-3  

admin2010-04-22  37

问题 下面的汇编语言源程序经汇编后,发现TEST[BX],01H指令有语法错误,试问该指令的正确形式应该是【  】。
   DSEG    SEGMENT
   DAT     DB            5,13,4,-2,6,23,44,-1,29,-3
   CNT     DW            $-DAT
   DSEG    ENDS
   SSEG    SEGMENT       STACK
           DB            256DUP(0)
   SSEG    ENDS
   CSEG    SEGMENT
           ASSUME        DS:DSEG,SS:SSEG,CS:CSEC
   START   PROC          FAR
           PUSH          DS
           XOR           AX,AX
           PUSH          AX
           MOV           AX,DSEG
           MOV           DS,AX
           XOR           AX,AX
           MOV           BX,OFFSET DAT
           MOV           CX,CNT
   LP:    TEST          [BX],01H
           JZ            NEXT
           INC           AH
           ADD           AL,[BX]
   NEXT:  INC           BX
           LOOP          LP
           RET
   START   ENDP
   CSEG    ENDS
           END           START

选项

答案TEST BYTE PTR[BX],01H或TEST DAT[BX],01H

解析 这段程序的功能是判断数据区内所有数据的奇偶,将奇数的个数存放在AH中,并将所有的奇数求和,结果放在AL中。因为在数据段既有DB类型的变量,也有DW类型的变量,指令TEST[BX],01H不能确定使用哪一种类型,所以需要指定[BX]的属性,所以正确的写法应该是:TEST BYTE PTR[BX],01H。
转载请注明原文地址:https://jikaoti.com/ti/NO27FFFM
0

最新回复(0)