上次没有认真的想,随便说了一下。今天想了想,是要把16位转换为10为才可以的
程序是下面的,我也是刚刚学,可能很麻烦,高贵参考。希望大家也说说自己的想法
stack segment stack'stack'
dw 32 dup(0)
stack ends
data segment
buff db 10,0 ,10 dup(0)
data ends
code segment
main proc far
assume ss:stack,cs:code,ds:data
push ds
mov ax,0
push ax
mov ax,01h
mov bx,01h
mov si,01h
lop:shl bx,1
add ax,bx //加的到结果
cmp bx,0400h
jne lop
mov cx,1000 //得到千位
mov dx,0
div cx
mov buff[si],al
mov ax,dx
mov cx,100 //得到百位
mov dx,0
div cx
inc si
mov buff[si],al
mov ax,dx
mov dx,0
mov cx,10 //得到十位
div cx
inc si
mov buff[si],al
inc si
mov buff[si],dx //存个位
inc si
mov buff[si],'$'
mov si,1
xianshi: mov al,buff[si] //显示结果
cmp al,'$'
je next
add al,30h
mov dl,al
mov ah,2
int 21h
inc si
jmp xianshi
next:mov ah,4ch
int 21h
main endp
code ends
end main