+ -
当前位置:首页 → 问答吧 → IntToStr函数

IntToStr函数

时间:2010-12-13

来源:互联网

自己写的一个函数,把AX里面的数值转为字符串,保存到buffer里面,不知道有没有更好的方法,能否分享一下。
Assembly code

;输入参数AX(in),DI(in\out)
;输出参数DI(in\out)
INTTOSTR PROC
    test ax,ax
    jz @zero
    push si
    push bx
    push bp
    mov bp,sp
    add sp,-16
    mov bx,sp
    mov si,10
    xor dx,dx
    xor cx,cx
@@:        
    test ax,ax
    jz @1
    div si
    add dl,30H
    mov [bx],dl
    xor dx,dx
    inc bx
    inc cx
    jmp @b
@1:    
    dec bx
    mov si,bx
    std
@@:        
    lodsb
    mov [di],al
    inc di
    loop @b    
    mov [di],'$'
    clc
    mov sp,bp
    pop bp
     pop bx
    pop si    
    ret
@zero:
    mov [di],30H
    mov [di+1],'$'
    ret
INTTOSTR ENDP 

作者: Jekhn   发布时间: 2010-12-13

;我以前编写的,将DX转换成10进制显示出来
;入口参数:DX=要显示十六进制值
Assembly code
;
dispdec proc uses ax bx cx dx 
        mov ax,dx 
        xor dx,dx 
        mov bx,10 
        mov cx,0 
d2: 
        cmp ax,10 
        jb ok2 
        div bx 
        add dl,30h 
        push dx 
        xor dx,dx 
        inc cx 
        jmp d2 
ok2:    
        add al,30h 
        push ax 
        inc cx 
d3:        
        pop dx 
        mov ah,2 
        int 21h 
        loop d3 
        ret 
dispdec endp

作者: masmaster   发布时间: 2010-12-13