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:DSEGSS:SSEGCS:CSEG START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DSEG MOV DS,AX XOR AX,AX MOV BX,OFFSETDAT 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[BX],01H指令有语法错误,试问该指令的正确形式应该是【 】。
参考答案:TESTBYTEPTR[BX],0AH或TESTDAT[BX],0AH
解析:该程序的功能是判断数据区内所有数据的奇偶,将奇数的个数存放在AH中,并将所有的奇数求和,结果放在AL中。因为在数据段既有DB类型的变量,也有DW类型的变量,指令TEST[BX],01H不能确定使用哪一种类型,所以需要指定[BX]的属性,所以正确的写法应该是:TESTBYTEPTR[BX],01H。