《汇编语言》实验10.3,改写了下,在不使ax溢出的前提下,能完美显示ax中的数字,而且是彩色的。使用堆栈做了参数传递接口。但通过编写这些小程序,发现这种编码风格,本身存在着容易让程序员思路混乱的情形。必须小心的考虑寄存器会不会被占用,寄存器会不会溢出。
org 0100h
start@:
mov ax,cs
mov ds,ax
mov ss,ax
mov sp,stackStart@
mov ax,15645
push 0
div@:
mov dx,0
mov bx,10
div bx
add dx,30h
push dx
mov cx,ax
jcxz show_str
jmp div@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
show_str:
pop dx
mov cx,dx
jcxz end@
push bx
mov ah,09h ;调用9号DOS功能打印字符
mov al,dl
mov bl,01001010b
mov bh,0
push cx
mov cx,1
int 10h
pop cx
pop bx
mov ah,02h
int 21h
jmp show_str
end@:
jmp $
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;dataStart@:
; db 100 dup (' ')
;dataEnd@:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
stackEnd@:
db 100 dup (0) ;堆栈区初始化
stackStart@:
阅读(1299) | 评论(1) | 转发(0) |