主题:搞了N久为什么还是错的啊??谁来帮我下啊?一个初级问题
[color=FF0000]输入8个两位十六进制无符号数,将不大于平均数的数字输出。[/color]
STACK SEGMENT PARA STACK'STACK'
DB 256 DUP(00H)
STACK ENDS
DATA SEGMENT PARA PUBLIC'DATA'
A DB 8 DUP (00H)
B DB DUP 0000H
DATA ENDS
CODE SEGMENT PARA PUBLIC'CODE'
ASSUME CS:CODE,DS:DATA
MAIN PROC FAR
MOV AX,DATA
MOV DS,AX
MOV CX,0
CALL GETCHAR
MOV BH,AL
CALL GETCHAR
MOV AH,BH
CALL ASCTOHEX
MOV DL,','
CALL DISPCHAR
MOV AH,0
ADD CX,AX
MOV BL,2
L1:CALL GETCHAR
MOV BH,AL
CALL GETCHAR
MOV AH,BH
CALL ASCTOHEX
MOV DL,','
CALL DISPCHAR
MOV AH,0
ADD CX,AX
DEC BL
JNZ L1
MOV AX,CX
MOV BL,3
DIV BL
MOV BX,0
L2:INC BX
CMP AL,A[BX]
MOV AL,A[BX]
MOV DL,AH
CALL DISPCHAR
MOV DL,AL
CALL DISPCHAR
MOV DL,','
CALL DISPCHAR
JNC L2
MOV AH,4CH
INT 21H
MAIN ENDP
DISPCHAR PROC NEAR
PUSH AX
MOV AH,02H
INT 21H
POP AX
RET
DISPCHAR ENDP
GETCHAR PROC NEAR
MOV AH,01H
INT 21H
RET
GETCHAR ENDP
ASCTOHEX PROC NEAR
CMP AL,41H
JC ASC1
SUB AL,07H
ASC1:SUB AL,30H
CMP AH,41H
JC ASC2
SUB AH,07H
ASC2:SUB AH,30H
SHL AH,1
SHL AH,1
SHL AH,1
SHL AH,1
ADD AL,AH
RET
ASCTOHEX ENDP
HEXTOASC PROC NEAR
MOV AH,AL
AND AL,0FH
CMP AL,0AH
JC HEX1
ADD AL,07H
HEX1:ADD AL,30H
SHR AH,1
SHR AH,1
SHR AH,1
SHR AH,1
CMP AH,0AH
JC HEX2
ADD AH,07H
HEX2:ADD AH,30H
RET
HEXTOASC ENDP
CODE ENDS
END MAIN
STACK SEGMENT PARA STACK'STACK'
DB 256 DUP(00H)
STACK ENDS
DATA SEGMENT PARA PUBLIC'DATA'
A DB 8 DUP (00H)
B DB DUP 0000H
DATA ENDS
CODE SEGMENT PARA PUBLIC'CODE'
ASSUME CS:CODE,DS:DATA
MAIN PROC FAR
MOV AX,DATA
MOV DS,AX
MOV CX,0
CALL GETCHAR
MOV BH,AL
CALL GETCHAR
MOV AH,BH
CALL ASCTOHEX
MOV DL,','
CALL DISPCHAR
MOV AH,0
ADD CX,AX
MOV BL,2
L1:CALL GETCHAR
MOV BH,AL
CALL GETCHAR
MOV AH,BH
CALL ASCTOHEX
MOV DL,','
CALL DISPCHAR
MOV AH,0
ADD CX,AX
DEC BL
JNZ L1
MOV AX,CX
MOV BL,3
DIV BL
MOV BX,0
L2:INC BX
CMP AL,A[BX]
MOV AL,A[BX]
MOV DL,AH
CALL DISPCHAR
MOV DL,AL
CALL DISPCHAR
MOV DL,','
CALL DISPCHAR
JNC L2
MOV AH,4CH
INT 21H
MAIN ENDP
DISPCHAR PROC NEAR
PUSH AX
MOV AH,02H
INT 21H
POP AX
RET
DISPCHAR ENDP
GETCHAR PROC NEAR
MOV AH,01H
INT 21H
RET
GETCHAR ENDP
ASCTOHEX PROC NEAR
CMP AL,41H
JC ASC1
SUB AL,07H
ASC1:SUB AL,30H
CMP AH,41H
JC ASC2
SUB AH,07H
ASC2:SUB AH,30H
SHL AH,1
SHL AH,1
SHL AH,1
SHL AH,1
ADD AL,AH
RET
ASCTOHEX ENDP
HEXTOASC PROC NEAR
MOV AH,AL
AND AL,0FH
CMP AL,0AH
JC HEX1
ADD AL,07H
HEX1:ADD AL,30H
SHR AH,1
SHR AH,1
SHR AH,1
SHR AH,1
CMP AH,0AH
JC HEX2
ADD AH,07H
HEX2:ADD AH,30H
RET
HEXTOASC ENDP
CODE ENDS
END MAIN