...从键盘上输入8位二进制数,显示出相应的十六进制数 尽量短

发布网友 发布时间:49分钟前

我来回答

1个回答

热心网友 时间:52分钟前

调度通过!
DATAS SEGMENT
m1 db 'input:$'
m2 db 'output:$'
m3 db 0dh,0ah,'$'
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX

lea dx,m1 ;输出提示
mov ah,9
int 21h

mov cx,8 ;循环8次接受字符
mov bx,0 ;过滤0 1 回车
s1:
mov ah,7
int 21h

cmp al,0dh
jz s2

cmp al,30h
jb s1
cmp al,31h
ja s1

mov dx,ax

mov ah,2
int 21h

mov ax,dx
sub al,30h
xor dx,dx
mov dl,al
shl bl,1
or bl,dl
loop s1

s2:
lea dx,m3 ;回车换行
mov ah,9
int 21h

lea dx,m2 ;输出提示
mov ah,9
int 21h

mov cl,4 ;16进制显示bl中的值
mov bh,bl
and bl,0f0h
shr bl,cl
mov al,bl
mov cx,2
s3:
add al,30h
cmp al,39h
jbe s4
add al,7
s4:
mov dl,al
mov ah,2
int 21h
and bh,0fh
mov al,bh

loop s3

mov ah,0 ;等待输入
int 16h

MOV AH,4CH
INT 21H
CODES ENDS
END START

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com