![]() |
#2
ONEPROBLEM2010-04-30 07:59
|

.486
DATA SEGMENT USE16
BUF DW -19,28,37,-46,55,61,-70,255
COUNT EQU $-BUF
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG: MOV AX,DATA
MOV DS,AX
MOV DL,0
MOV CX,COUNT
SHR CX,1
LEA BX,BUF
AGAIN: CMP WORD PTR [BX],0
JAE LAST
INC DL
JMP LAST
LAST: INC BX
INC BX
LOOP AGAIN
ADD DL,30H
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END BEG
上述代码用来统计负数个数,我看了N多遍,觉得应该没有问题了,但执行结果始终是0,请高手指点。谢谢 DATA SEGMENT USE16
BUF DW -19,28,37,-46,55,61,-70,255
COUNT EQU $-BUF
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG: MOV AX,DATA
MOV DS,AX
MOV DL,0
MOV CX,COUNT
SHR CX,1
LEA BX,BUF
AGAIN: CMP WORD PTR [BX],0
JAE LAST
INC DL
JMP LAST
LAST: INC BX
INC BX
LOOP AGAIN
ADD DL,30H
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END BEG