主题:能不能帮忙看看这个程序,为什么总是输出FFFF?
找出首地址为DATE的10个字数组中的最小偶数,放到AX中,并显示出来。下面是我编的,请看下吧,错哪里了???
DATA SEGMENT
DATE DB 12H,56H,9DH,0D7H,45H,78H,89H,0F5H,60H,01H
CNT EQU $-DATE
E DB CNT DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET DATE
MOV DI,OFFSET E
MOV CX,CNT
L1: MOV AX,[SI]
MOV BX,AX
SAR AX,1
JB NEXT1
MOV [DI],BX
INC DI
NEXT1: INC SI
LOOP L1
MOV SI,OFFSET E
MOV CX,LENGTH E
MOV AX,[SI]
L2: CMP AX,[SI+1]
JB NEXT2
MOV AX,[SI+1]
NEXT2: INC SI
LOOP L2
;-------------------------------------------
MOV BX,AX
MOV CH,4
MOV CL,4
AGAIN: ROL BX,CL
MOV AL,BL
ADD AL,0FH
CMP AL,9
JLE NEXT
ADD AL,7
NEXT: ADD AL,30H
MOV DL,AL
MOV AH,2
INT 21H
DEC CH
JNZ AGAIN
;--------------------------------------------
MOV AH,4CH
INT 21H
CODE ENDS
END START
DATA SEGMENT
DATE DB 12H,56H,9DH,0D7H,45H,78H,89H,0F5H,60H,01H
CNT EQU $-DATE
E DB CNT DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET DATE
MOV DI,OFFSET E
MOV CX,CNT
L1: MOV AX,[SI]
MOV BX,AX
SAR AX,1
JB NEXT1
MOV [DI],BX
INC DI
NEXT1: INC SI
LOOP L1
MOV SI,OFFSET E
MOV CX,LENGTH E
MOV AX,[SI]
L2: CMP AX,[SI+1]
JB NEXT2
MOV AX,[SI+1]
NEXT2: INC SI
LOOP L2
;-------------------------------------------
MOV BX,AX
MOV CH,4
MOV CL,4
AGAIN: ROL BX,CL
MOV AL,BL
ADD AL,0FH
CMP AL,9
JLE NEXT
ADD AL,7
NEXT: ADD AL,30H
MOV DL,AL
MOV AH,2
INT 21H
DEC CH
JNZ AGAIN
;--------------------------------------------
MOV AH,4CH
INT 21H
CODE ENDS
END START