|
|
#10
流浪_汉2007-01-22 12:14
上次没有认真的想,随便说了一下。今天想了想,是要把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
|