汇编语言问题 判断BUF中的数是正数,负数,还是0,并分别统计它们的个数判断BUF中的数是正数,负数,还是0,并分别统计它们的个数DATA SEGMENTBUF DB 1,-1,-2,-3,-0 A DB 0B DB 0D DB 0N EQU 5DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA BX,BUFMOV A,0MOV B,0MOV D,0MOV CX,NL0:MOV AX,[BX]CMP AX,0JL L1CMP AX,0JG L2CMP AX,0JZ L3JMP NEXTL1:INC AJMP NEXTL2:INC BJMP NEXTL3:INC DNEXT:ADD BX,1LOOP L0MOV AH,4CHINT 21HCODE ENDSEND START各位大神为什么执行完的结果计数时把0当成了正数
问题描述:
汇编语言问题 判断BUF中的数是正数,负数,还是0,并分别统计它们的个数
判断BUF中的数是正数,负数,还是0,并分别统计它们的个数
DATA SEGMENT
BUF DB 1,-1,-2,-3,-0
A DB 0
B DB 0
D DB 0
N EQU 5
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA BX,BUF
MOV A,0
MOV B,0
MOV D,0
MOV CX,N
L0:MOV AX,[BX]
CMP AX,0
JL L1
CMP AX,0
JG L2
CMP AX,0
JZ L3
JMP NEXT
L1:INC A
JMP NEXT
L2:INC B
JMP NEXT
L3:INC D
NEXT:ADD BX,1
LOOP L0
MOV AH,4CH
INT 21H
CODE ENDS
END START
各位大神为什么执行完的结果计数时把0当成了正数
答
MOV AX,[BX]
CMP AX,0
JL L1
CMP AX,0
JG L2
CMP AX,0
JZ L3
把ax改成al试试.