首页 > 其他 > 详细

汇编の常用子程序

时间:2021-02-22 09:54:49      阅读:18      评论:0      收藏:0      [点我收藏+]

本文子程序都是8086环境下的。

divdw

名称:divdw

功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型。

参数:(ax)=dword型数据低16位,(dx)=dword型数据的高16位,(cx)=除数。

返回:(dx)=结果的高16位,(ax)=结果的低16位,(cx)=余数。

divdw:
        push bx

        push ax
        mov ax, dx
        mov dx, 0
        div cx
        mov bx, ax
        pop ax
        div cx
        mov cx, dx
        mov dx, bx

        pop bx
        ret

dtoc

名称:dtoc

功能:将dword型数转变为表示十进制数的字符串,字符串以0为结尾符。

参数:(ax)=dword型数据的低16位,(dx)=dword型数据的高16位,ds:si指向字符串的首地址。

返回:无。

依赖:divdw

dtoc:
        push bx
        push cx
        push di

        mov di, 0
    dtoc_s:
        mov cx, 10
        call divdw
        add cx, 30h
        push cx
        inc di
        mov cx, ax
        jcxz dtoc_ok
        jmp dtoc_s
    dtoc_ok:
        mov cx, di
        mov bx, 0
    dtoc_s1:
        pop ax
        mov ds:[bx+si], al
        inc bx
        loop dtoc_s1
        mov byte ptr ds:[bx+si], 0

        pop di
        pop cx
        pop bx
        ret

show_str

名称:show_str

功能:在指定位置,用指定的颜色,显示一个用0结束的字符串

参数:(dh)=行号(取值范围0 ~ 24),(dl)=列号(取值范围0 ~ 79),(cl)=颜色,ds:si指向字符串的首地址

返回:无

show_str:
        push ax
        push es
        push bx
    
        mov ax, 0b800h
        mov es, ax
        ;计算行与列号所对应的偏移 存放在bx中
        mov ax, 0a0h
        mul dh
        mov bx, ax
        mov ax, 2
        mul dl
        add bx, ax
        mov dl, cl
        mov cx, 0
    show_str_s:
        mov cl, ds:[si]
        jcxz show_str_ok
        mov es:[bx], cl
        mov es:[bx].1, dl
        add si, 1
        add bx, 2
        jmp short show_str_s
    show_str_ok:
        pop bx
        pop es
        pop ax
        ret

汇编の常用子程序

原文:https://www.cnblogs.com/1v7w/p/14428207.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!