输入一个十进制数(字类型),以十六进制的形式输出。
DATAS SEGMENT
BUF DB 10,?,10 DUP('$')
LEN EQU $-BUF
;JIEGUO DB 5;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
LEA DX,BUF
NEXT:
MOV BX,0
CALL INPUT
CALL OUTPUT
JMP NEXT
INPUT PROC NEAR
SHURU:
MOV AH,01H
INT 21H
CBW;扩展
CMP AX,0DH
JE RETURN
CMP AX,'0'
JB EXIT
CMP AX,'9'
JA EXIT
CALL TRANSFORM
JMP SHURU
RETURN:
RET ;回到主程序
INPUT ENDP
TRANSFORM PROC NEAR
XCHG AX,BX ;交换数据
SUB BX,30H
MOV CX,10
MUL CX
ADD AX,BX
XCHG AX,BX
RET
TRANSFORM ENDP
OUTPUT PROC NEAR
MOV DH,4
MOV CL,4
CONTINUE:
ROL BX,CL ;左移
MOV AL,BL
AND AL,0FH
CMP AL,9
JA ZIMU
ADD AL,30H
JMP SHUCHU
ZIMU:
ADD AL,37H
SHUCHU:
MOV DL,AL
MOV AH,02H
INT 21H
DEC DH
CMP DH,0
JNE CONTINUE
MOV DL,0AH
MOV AH,02H
INT 21H
MOV DL,0DH
MOV AH,02H
INT 21H
RET
OUTPUT ENDP
EXIT:
;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDS
END START
结果图:
输入一个十进制数(字类型),以二进制的形式输出。
DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
NEXT:
MOV BX,0
CALL INPUT
CALL OUTPUT
JMP NEXT
INPUT PROC NEAR
SHURU:
MOV AH,01H
INT 21H
CBW
CMP AX,0DH
JE RETURN
CMP AX,'0'
JB EXIT
CMP AX,'9'
JA EXIT
CALL TRANSLATE
JMP SHURU
RETURN:
RET
INPUT ENDP
TRANSLATE PROC NEAR
XCHG AX,BX
SUB BX,30H
MOV CL,10
MUL CL
ADD AX,BX
XCHG AX,BX
RET
TRANSLATE ENDP
OUTPUT PROC NEAR
MOV CX,16
CONTINUE:
ROL BX,1
MOV AL,BL
AND AL,00000001H
ADD AL,30H
SHUCHU:
MOV DL,AL
MOV AH,02H
INT 21H
DEC CX
CMP CX,0
JNE CONTINUE
MOV DL,0AH
MOV AH,02H
INT 21H
MOV DL,0DH
MOV AH,02H
INT 21H
RET
OUTPUT ENDP
EXIT:
;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDS
END START
结果图:
输入一个十六进制数(字类型),以十进制的形式输出。
DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
CALL INPUT
CALL OUTPUT
JMP EXIT
INPUT PROC NEAR
SHURU:
MOV AH,01H
INT 21H
CBW
CMP AX,0DH
JE JIESHU
CMP AL,'0'
JB EXIT
CMP AL,'9'
JNA JIXU1
CMP AL,'f'
JA EXIT
CMP AL,'a'
JNB JISHU2
JIXU1:
SUB AX,30H
JMP JISUAN
JISHU2:
SUB AX,57H
JISUAN:
XCHG AX,BX
MOV CX,16
MUL CX
ADD AX,BX
XCHG AX,BX
JMP SHURU
JIESHU:
RET
INPUT ENDP
OUTPUT PROC NEAR
MOV AX,BX
MOV CX,10000
MOV DX,0
DIV CX
MOV BX,DX
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV AX,BX
MOV CX,1000
MOV DX,0
DIV CX
MOV BX,DX
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV AX,BX
MOV CX,100
MOV DX,0
DIV CX
MOV BX,DX
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV AX,BX
MOV CX,10
MOV DX,0
DIV CX
MOV BX,DX
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV AX,BX
MOV CX,1
MOV DX,0
DIV CX
MOV BX,DX
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
MOV DL,0DH
MOV AH,02H
INT 21H
RET
OUTPUT ENDP
EXIT:
;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDS
END START
结果图: