算法思路: 除10取余法
循环除以10D,余数压入栈,商接着进行除10D。直到商为0为止。
代码(有效):
stack_area segment
db 60h dup(?)
top label word
stack_area ends
proname segment
main proc far
assume cs:proname,ss:stack_area
start:
mov ax,stack_area
mov ss,ax
lea sp,top
mov bx,1234h
mov si,10d
xor cx,cx
mov ax,bx
next:
mov dx,0
div si
push dx
inc cx
cmp ax,0
jnz next
print:
pop dx
add dl,30h
mov ah,2
int 21h
loop print
mov ah,4ch
int 21h
main endp
proname ends
end start
循环除以10D,余数压入栈,商接着进行除10D。直到商为0为止。
代码(有效):
stack_area segment
db 60h dup(?)
top label word
stack_area ends
proname segment
main proc far
assume cs:proname,ss:stack_area
start:
mov ax,stack_area
mov ss,ax
lea sp,top
mov bx,1234h
mov si,10d
xor cx,cx
mov ax,bx
next:
mov dx,0
div si
push dx
inc cx
cmp ax,0
jnz next
print:
pop dx
add dl,30h
mov ah,2
int 21h
loop print
mov ah,4ch
int 21h
main endp
proname ends
end start
本文介绍了如何使用汇编语言通过除10取余法将BX寄存器中的无符号数转换为十进制并输出。代码展示了一个有效的实现过程,包括设置堆栈、进行除法运算、保存余数、转换ASCII码及显示输出。

1695

被折叠的 条评论
为什么被折叠?



