汇编小白 键盘输入16位二进制数 转换成等值十进制数显示
答案:2 悬赏:70
解决时间 2021-02-11 12:45
- 提问者网友:烟刺痛了眼
- 2021-02-11 04:22
汇编小白 键盘输入16位二进制数 转换成等值十进制数显示
最佳答案
- 二级知识专家网友:丢不掉的轻狂
- 2021-02-11 05:17
以下程序,可以的:
;==================================
DATA SEGMENT
BUF1 DB 10, 13, 'PLEASE INPUT BIN : ', 13, 10, '$'
BUF2 DW 0
DATA ENDS
;----------------------------------
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, ES:DATA
BEG:
MOV AX, DATA
MOV DS, AX
MOV AH, 09H
MOV DX, OFFSET BUF1
INT 21H
MOV BX, 0
MOV CX, 16
_IN_:
MOV AH, 07H ;输入字符
INT 21H
CMP AL, 13
JE _OUT_
CMP AL, '0'
JB _IN_
CMP AL, '1'
JA _IN_
ADD BX, BX
CMP AL, '1'
JNE NO_0
INC BX
NO_0:
MOV AH, 02H
MOV DL, AL
INT 21H
LOOP _IN_
MOV BUF2, BX ;保存
;--------------------------
_OUT_:
MOV AH, 02H
MOV DL, 13
INT 21H
MOV DL, 10
INT 21H
MOV AX, BUF2
MOV BX, 2
CALL OUT_AX
MOV AH, 02H
MOV DL, 'B'
INT 21H
MOV DL, '='
INT 21H
MOV AX, BUF2
MOV BX, 10
CALL OUT_AX
MOV AH, 02H
MOV DL, 'D'
INT 21H
EXIT:
MOV AH, 4CH
INT 21H
;------------------------------
OUT_AX PROC ;
OR AX, AX
JZ _0_
LOOP_P:
XOR DX, DX
DIV BX
MOV CX, AX ;
OR CX, DX
JZ _E_ ;
PUSH DX ;
CALL LOOP_P
POP DX ;
CMP DL, 10
JB A30
ADD DL, 7
A30:
ADD DL, '0' ;
JMP _1_
_0_:MOV DL, '0' ;
_1_:CALL PUTC
_E_:RET
OUT_AX ENDP
;------------------------------
PUTC PROC
MOV AH, 2
INT 21H
RET
PUTC ENDP
;------------------------------
CODE ENDS
END BEG
;==================================
;==================================
DATA SEGMENT
BUF1 DB 10, 13, 'PLEASE INPUT BIN : ', 13, 10, '$'
BUF2 DW 0
DATA ENDS
;----------------------------------
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, ES:DATA
BEG:
MOV AX, DATA
MOV DS, AX
MOV AH, 09H
MOV DX, OFFSET BUF1
INT 21H
MOV BX, 0
MOV CX, 16
_IN_:
MOV AH, 07H ;输入字符
INT 21H
CMP AL, 13
JE _OUT_
CMP AL, '0'
JB _IN_
CMP AL, '1'
JA _IN_
ADD BX, BX
CMP AL, '1'
JNE NO_0
INC BX
NO_0:
MOV AH, 02H
MOV DL, AL
INT 21H
LOOP _IN_
MOV BUF2, BX ;保存
;--------------------------
_OUT_:
MOV AH, 02H
MOV DL, 13
INT 21H
MOV DL, 10
INT 21H
MOV AX, BUF2
MOV BX, 2
CALL OUT_AX
MOV AH, 02H
MOV DL, 'B'
INT 21H
MOV DL, '='
INT 21H
MOV AX, BUF2
MOV BX, 10
CALL OUT_AX
MOV AH, 02H
MOV DL, 'D'
INT 21H
EXIT:
MOV AH, 4CH
INT 21H
;------------------------------
OUT_AX PROC ;
OR AX, AX
JZ _0_
LOOP_P:
XOR DX, DX
DIV BX
MOV CX, AX ;
OR CX, DX
JZ _E_ ;
PUSH DX ;
CALL LOOP_P
POP DX ;
CMP DL, 10
JB A30
ADD DL, 7
A30:
ADD DL, '0' ;
JMP _1_
_0_:MOV DL, '0' ;
_1_:CALL PUTC
_E_:RET
OUT_AX ENDP
;------------------------------
PUTC PROC
MOV AH, 2
INT 21H
RET
PUTC ENDP
;------------------------------
CODE ENDS
END BEG
;==================================
全部回答
- 1楼网友:星星坠落
- 2021-02-11 06:26
没看懂什么意思?
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯