用汇编语言编写下面程序怎么编?
解决时间 2021-05-10 22:14
- 提问者网友:人生佛魔见
- 2021-05-10 09:05
编写程序:将键盘接收到的四位十六进制数转换为等值的二进制数,再显示在终端(显示器)上。
例:输入12AB,则显示0001001010101011。
最佳答案
- 五星知识达人网友:骨子里都是戏
- 2021-05-10 10:42
DATA SEGMENT;
CR db 0dh,0ah,'$'
SSP db 20h,'$'
string1 db 'plese input the number:$'
string2 db 'the number is(H):$'
string3 db 'the number is(B):$'
data1 dw 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
lea dx,string1
mov ah,9h
int 21h;显示字符串string1
lea dx,data1
mov ah,0ah
int 21h;键盘输入四位十六进制数
mov dx,offset CR
mov ah,9
int 21h ;输出回车换行符
lea dx,string2
mov ah,9h
int 21h;显示字符串string2
xor bx, bx
mov dx, 4
mov cx, dx
next:
xchg cx, dx
shl bx, cl
xchg cx, dx
mov ah, 1
int 21h
cmp al, '9'
ja alpha
sub al, '0'
jmp cnt
alpha:
sub al, 'A'
add al, 10
cnt:
add bl, al
loop next
mov ah, 9
lea dx, string3
int 21h
mov cx, 16
next2:
rol bx, 1
test bx, 1
jnz ones
mov dl, '0'
jmp output
ones:
mov dl, '1'
output:
mov ah, 2
int 21h
loop next2
mov ah,4ch
int 21h
CODE ENDS
END START
全部回答
- 1楼网友:夜余生
- 2021-05-10 10:54
读键盘和显示字符的中断号忘光光了呀,不然我可以帮你写。
我要举报
大家都在看
推荐资讯