目录 上一页 下一页 下一章

-222- PC机汇编语言实战精解

exit:


main

disp







loop2:








loop3:






next_dot:

output:











disp
code


mov
int
endp

proc
push
push
mov
mov

mov
mov

mov
mov
int

lodsw
xchg
push
mov

shl
push
mov
jnc
mov
jmp

mov

int
pop
loop

inc
pop
loop

pop
pop
ret
endp
ends
end

ah,4ch
21h


near
bx
si
cx,16
si,offset buffer

dh,3
dl,32

ah,2
bh,0
10h


ah,al
cx
cx,16

ax,1
ax
ah,0eh
next_dot
al,2ah
output

al,20h

10h
ax
loop3

dh
cx
loop2

si
bx



main

;结束进程



;DISP子过程
;保存要使用的寄存器

;处理16个字(32字节)
;SI寄存器指向文件缓冲区

;设置光标初始行、列位置


;设置光标位置



;取得一个字的数据
;交换高低字节
;暂存CX寄存器
;处理16个数位

;取得的数据左移1位
;暂存移位后的结果
;选择10H中断的0EH功能
;若移出的数位为0,转NEXT_DOT输出空格
;AL寄存器送入字符"*"
;转OUTPUT输出AL寄存器中的字符

;AL寄存器送入空格符

;显示输出
;恢复移位后的结果
;继续处理下一个数位

;光标行号加1
;恢复CX寄存器
;转LOOP2继续处理下一个字

;恢复入口处保存的寄存器

;返回主过程



  在这个程序中我们使用DW伪指令定义了5个偏移量,当然这样做是比较累的,事实上我们

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章