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

admin2010-11-09  34

问题 下面的汇编语言源程序经汇编后,发现TEST[BX],01H指令有语法错误,试问该指令的正确形式应该是_______。
DSEG        SEGMENT
DAT         DB          5,13,4,-2,6,23,44,-1,29,-3
CNT         DW          S-DAT
DSEG        ENDS
SSEG        SEGMENT STACK
DB          256 DUP(0)
SSEG        ENDS
CSEG        SEGMENT
ASSUME      DS:DSEG, SS:SSEG,CS:CSEG
START       PROC        FAR
PUSH        DS
XOR         AX,AX
PUSH        AM
MOV         AXM,DSEG
MOV         DS,AX
XOR         AX,AX
MOV         BX,OFFSET DAT
MOV         CX,CNT
LP:         TEST        [BX],01H
JZ          NEXT
INC         AB
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/jP27FFFM
0

最新回复(0)