2011年09月02日   码农之路   4,013 次浏览
我们知道在汇编中字符显示的情况下,如果要打印出来两位及以上数值的话就无法打印。
下面,给大家演示一个汇编打印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 |
注意读懂小写字母的代码就行了。
>>> Hello World <<<
这篇内容是否帮助到你了呢?
如果你有任何疑问或有建议留给其他朋友,都可以给我留言。