十进制转换为二进制
潘俊
2009001210
自动化0905班
CRLF MACRO
PUSH AX
PUSH DX
MOV AH,02H
MOV DL,0DH
INT 21H
MOV AH,02H
MOV DL,0AH
INT 21H
POP DX
POP AX
ENDM
DATA SEGMENT
MESS DB 'INPUT HEXNUMBER:', '$'
ERROR DB 'INPUT ERROR',0DH,0AH, '$'
DATA ENDS
STACK SEGMENT
DW 32 DUP(?)
STA
DW ?
TOP
STACK ENDS
CODE SEGMENT
START:ASSUME CS:CODE,DS:DATA,SS:STACK
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV SP,TOP
LLL: MOV AH,09H
MOV DX,OFFSET MESS
INT 21H
CRLF
XOR DX,DX
MOV BL,04H
GGG: MOV AH,01H
INT 21H
CMP AL,0DH
JZ PPP
CMP AL,20H
JZ PPP
CMP AL,30H
JB KKK
SUB AL,30H
CMP AL,0AH
JB GETS
CMP AL,11H
JB KKK
SUB AL,07H
CMP AL,0FH
JBE GETS
CMP AL,2AH
JB KKK
CMP AL,2FH
JA KKK
SUB AL,20H
GETS: MOV CL,04H
SHL DX,CL
XOR AH,AH
ADD DX,AX
DEC BL
JNZ GGG
CRLF
CALL ZHXS
CRLF
JMP LLL
KKK: PUSH DX
CRLF
MOV AH,09H
MOV DX,OFFSET ERROR
INT 21H
POP DX
PPP: CRLF
CALL ZHXS
MOV AX,4C00H
INT 21H
ZHXS PROC
MOV CX,0010H
MOV BX,DX
TTT: ROL BX,1
MOV DL,BL
AND DL,01H
ADD DL,30H
MOV AH,02H
INT 21H
LOOP TTT
RET
ZHXS ENDP
CODE ENDS
END START