精英盒子 -> 程序设计 -> 8086汇编函数:dtoc [打印本页]

outman 2011-08-09 16:18

8086汇编函数:dtoc

数字->数字字符串
程序名:dtoc
功能:将word型数据转变为表示十进制数的字符串,以0为结尾符
参数:ax=word型数据
ds:si指向供程序写入字符串的地址(程序结束后ds、si必须与传入时一样)
下面上代码

  1. assume cs:code,ds:data
    data segment
    dw 0,0
    data ends

    code segment
    start:

    mov ax,data
    mov ds,ax
    mov ax,1234
    mov si,0
    call dtoc

    mov dh,0
    mov dl,0
    mov cl,00000111b
    call show_str
    mov ax,4c00h
    int 21h

    dtoc:
    push bx
    push di
    mov bx,10
    mov dx,0
    mov di,0;计数器

    dtoc_loop:
    div bx
    push dx
    inc di

    mov cx,ax
    jcxz dtoc_endloop;检测是否获取完毕

    mov dx,0
    jmp dtoc_loop

    dtoc_endloop:

    mov bx,si
    mov cx,di

    dtoc_loop2:
    pop ax
    add ax,30h
    mov ds:[bx],ax
    inc bx
    loop dtoc_loop2
    mov ds:[bx],0
    pop di
    pop bx
    ret


    code ends
    end start

代码运行完毕后,data段的数据将会变成31h,32h,33h,34h,0

jybox 2011-08-09 16:52
再次去掉隐藏...............请参见置顶帖...

pcliker 2011-08-09 19:18
虽然……完全……看不懂,但是……好厉害啊!




Powered by phpwind v8.7 Code ©2003-2011 phpwind
Time 0.043061 second(s),query:5 Gzip enabled