将某个十进制数ASCII码串转换为对应的二进制数汇编语言
2个回答
展开全部
dseg segment
d0 db '12345' ;数字字符串
c equ $-d0 ;长度
a dw 0 ;转换后的结果
dseg ends
assume cs:cseg, ds:dseg
cseg segment
start:
mov ax, dseg
mov ds, ax
mov bx, 10 ;10进制
mov ah, 0 ;
lea si, d0
mov cx, c
m0:
mov al,[si]
and al,0Fh ;ASCII数转为对应的数,相当于sub al,30H
xchg ax, a ;ax, a交换
mul bx ;a*10 -> dx:ax, 只取ax
add ax, a ;a*10 + a
xchg ax, a ;交换回去
inc si ;下一个数
loop m0
;转换结束,10进制打印
mov ax, a
xor cx, cx
Q0:
xor dx, dx
div bx
xor dx, 0e30h
push dx
inc cx
cmp ax, 0
jnz Q0
Q1:
pop ax
int 10h
loop Q1
mov ax,4c00h
int 21h
cseg ends
end start
追问
这个流程图是怎样的啊
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询