2011年09月02日   码农之路   3,848 次浏览

我们知道在汇编中字符显示的情况下,如果要打印出来两位及以上数值的话就无法打印。
下面,给大家演示一个汇编打印65535内任意数值的函数:

DATAS SEGMENT
    num dw 12345
DATAS ENDS
 
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
START:
    MOV AX,DATAS
    MOV DS,AX
 
    mov ax, num
    call printnum
 
    MOV AH,4CH
    INT 21H
 
    ;打印65535内任意数值
   ;数值在AX中
   printnum proc
        push ax
        push bx
        push cx
        push dx
 
        ;将数值除10把余数保存在堆栈中直到商为0
        mov bx, 0
        loop1:
            inc bx
            mov cx, 10
            mov dx, 0
            div cx
            push dx
            cmp ax, 0
        ja loop1
 
        ;将堆栈中的数值显示出来
      loop2:
            dec bx
            pop dx
            add dx, 30h
            mov ah, 02h
            int 21h
            cmp bx, 0
        ja loop2
 
        pop dx
        pop cx
        pop bx
        pop ax
        ret
    printnum endp
CODES ENDS
    END START

注意读懂小写字母的代码就行了。

赞 赏
申明:除非注明,本站文章均为原创,转载请以链接形式标明本文地址。 如有问题,请于一周内与本站联系,本站将在第一时间对相关内容进行处理。
本文地址: http://www.yyjjssnn.cn/articles/649.html
相关阅读:

>>> Hello World <<<

这篇内容是否帮助到你了呢?

如果你有任何疑问或有建议留给其他朋友,都可以给我留言。

:wink: :twisted: :surprised: :smile: :smile9: :smile8: :smile7: :smile6: :smile5: :smile56: :smile55: :smile54: :smile53: :smile52: :smile51: :smile50: :smile4: :smile49: :smile48: :smile47: :smile46: :smile45: :smile44: :smile43: :smile42: :smile41: :smile40: :smile3: :smile39: :smile38: :smile37: :smile36: :smile35: :smile34: :smile33: :smile32: :smile31: :smile30: :smile2: :smile29: :smile28: :smile27: :smile26: :smile25: :smile24: :smile23: :smile22: :smile21: :smile20: :smile1: :smile19: :smile18: :smile17: :smile16: :smile15: :smile14: :smile13: :smile12: :smile11: :smile10: :smile0: :sad: :rolleyes1: :redface: :razz: :question: :neutral: :mrgreen: :mad: :lol: :idea: :exclaim: :evil: :eek: :cry: :cool: :confused: :biggrin: :arrow:

友情链接: 程序员刘杨 刘杨
Copyright 2003~2018 保留所有权利 | 网站地图
备案号:湘ICP备14001005号-2

湘公网安备 43011102001322号