十六进制转换为二进制

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CRLF MACRO
MOV AH,02H
MOV DL,0DH
INT 21H
MOV AH,02H
MOV DL,0AH
INT 21H
ENDM
DATA SEGMENT
MARK DB ?
MESS DB 'INPUT FOUR BIT HEX NUMBER,PRESS ENTER CHANGE INTO BINARY CODE,PRESS SPACEBAR TO BE END!',0DH,0AH,'INPUT:$'
ERROR DB 0DH,0AH,'INPUT ERROR!',0DH,0AH,'$'
DATA ENDS
STACK SEGMENT ;堆栈段
STA DW 32 DUP(?)
TOP DW ?
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV AX,STACK
MOV AX,TOP
HEAD: CRLF
MOV MARK,0
MOV AH,09H
LEA DX,MESS
INT 21H ;显示提示输入的信息
CALL GETNUM ;接受键入数值送DX
CMP MARK,01H
JE HEAD
MOV CX,0010H ;16位
MOV BX,DX
TTT: ROL BX,1 ;循环左移1位
MOV DL,BL
AND DL,01H ;屏蔽掉高7位
ADD DL,30H
MOV AH,02H
INT 21H ;先是二进制位对应的ASCII制符
LOOP TTT
JMP HEAD
FINI: MOV AX,4C00H
INT 21H ;返回DOS
GETNUM PROC NEAR ;子程序,接受键入数值送DX
PUSH CX
XOR DX,DX
GGG: MOV AH,01H
INT 21H
CMP AL,0DH ;输入为回车,则进行换行
JE PPP
CMP AL,20H ;输入为空格,则退回DOS
JE FINI
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,04
SHL DX,CL
XOR AH,AH
ADD DX,AX
JMP GGG
KKK: MOV AH,09H
MOV DX,OFFSET ERROR
INT 21H
MOV MARK,01H
PPP: PUSH DX
CRLF
POP DX
POP CX
RET
GETNUM ENDP
CODE ENDS
END START

相关文档
最新文档