目录 上一页 下一页 下一章

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




exit:


main

disp






loop2:








loop3:






next_dot:

output:







int
cmp
jnz

mov
int
endp

proc
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
16h
al,ESCkey
loop1

ah,4ch
21h


near
bx
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

;输入的是ESC键吗?
;不是ESC键,转LOOP1继续

;结束进程



;DISP子过程
;保存BX寄存器
;处理读入的16个字(32字节)
;SI寄存器指向文件缓冲区

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


;设置光标位置



;从文件缓冲区取得一个字的数据
;调整高、低字节的位置
;暂存CX寄存器中的计数值
;处理一个字的16个数位

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

;AL寄存器送入空格符

;输出AL中的字符
;恢复移位后的结果
;返回LOOP3处理下一个数位

;准备将光标移动至下一行
;恢复CX寄存器
;返回LOOP2处理下一个字的数据

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章