[英]How can I change this program to take a 3 digit number and print it in binary
.model small
.stack 512
.data
cad db 9 dup (' '),'$'
var1 db ?
num db ?
aux db ?
.code
.startup
mov var1,0
mov ah,01h
int 21h
sub al,30h
mov num,al
mov al,num
mov bl,10
mul bl
mov aux,al
mov var1,0
mov ah,01h
int 21h
sub al,30h
add aux,al
mov bl,aux
mov num,bl
mov ah,02h
mov dl,'='
int 21h
mov SI,6
bin:
mov Ah,00h
mov Al,num
mov Bl,2
div Bl
mov var1,Ah
mov num,Al
mov dl,var1
add dl,30h
mov cad[SI],dl
cmp num,1
dec SI
jne bin
je out
cmp num,0
jne bin
je out
out:
mov dl,num
add dl,30h
mov cad[SI],dl
mov ah,09h
lea Dx,cad
int 21h
.exit
end
所以我得到了这个 asm 程序,当我输入两位数字时,它会将它们转换为二进制,我想将其修改为三个数字。 但是我对汇编器还不太了解,所以我需要一些帮助来理解我应该改变什么以及我不应该改变什么才能实现这一点。 我试过改变一些价值观,但到目前为止还没有改变运气。
没关系,我设法做到了,如果有人感兴趣,这就是
.model small
.stack ;512
.data
cad db 9 dup (' '),'$'
var1 db ?
num db ?
aux db ?
.code
.startup
mov var1,0
mov ah,01h
int 21h
sub al,30h
mov num,al
mov al,num
mov bl,10
mul bl
mov aux,al
mov var1,0
mov ah,01h
int 21h
sub al,30h
add aux,al
mov al,aux
mov num,al
mov bl,10
mul bl
mov aux,al
mov var1,0
mov ah,01h
int 21h
sub al,30h
add aux,al
mov bl,aux
mov num,bl
mov ah,02h
mov dl,'='
int 21h
mov SI,8
bin:
mov Ah,00h
mov Al,num
mov Bl,2
div Bl
mov var1,Ah
mov num,Al
mov dl,var1
add dl,30h
mov cad[SI],dl
cmp num,1
dec SI
jne bin
je out
cmp num,0
jne bin
je out
out:
mov dl,num
add dl,30h
mov cad[SI],dl
mov ah,09h
lea Dx,cad
int 21h
.exit
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.