JMP SHORT INPUT
NEXT1: CMP AL, 39H ;>数字9吗?
JA NEXT2
INC SI ;是数字字符
JMP SHORT INPUT
NEXT2: CMP AL, 41H ;<字母A吗?
JAE NEXT3
JMP SHORT OTHER ;是其它字符
NEXT3: CMP AL, 5AH ;>字母Z吗?
JA NEXT4
INC BX ;是字母字符A~Z
JMP SHORT INPUT
NEXT4: CMP AL, 61H ;<字母a吗?
JAE NEXT5
JMP SHORT OTHER ;是其它字符
NEXT5: CMP AL, 7AH ;>字母z吗?
JA SHORT OTHER ;是其它字符
INC BX ;是字母字符a~z
JMP SHORT INPUT
DISP: LEA DX, ALPHABET
CALL DISPLAY
LEA DX, NUMBER
MOV BX, SI
CALL DISPLAY
LEA DX, OTHER
MOV BX, DI
CALL DISPLAY
RET
MAIN ENDP
;--------------------------------------------------------------------------
DISPLAY PROC NEAR
MOV AH, 09H ;显示字符串功能调用
INT 21H
CALL BINIHEX ;调把BX中二进制数转换为16进制显示子程序
LEA DX, CRLF
MOV AH, 09H ;显示回车换行
INT 21H
RET
DISPLAY ENDP
;--------------------------------------------------------------------------
BINIHEX PROC NEAR ;将BX中二进制数转换为16进制数显示子程序
MOV CH, 4
ROTATE: MOV CL, 4
ROL BX, CL
MOV DL, BL
AND DL, 0FH
ADD DL, 30H
CMP DL, 3AH ;是A~F吗?
JL PRINT_IT
ADD DL, 07H
PRINT_IT: MOV AH, 02H ;显示一个字符
INT 21H
DEC CH
JNZ ROTATE
RET
BINIHEX ENDP
CSEG ENDS ;以上定义代码段
;--------------------------------------------------------------------------
END START
5.23 已定义了两个整数变量A和B,试编写程序完成下列功能:
相关推荐: