目录 上一页 下一页 下一章

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





















disp_loop:




















exit:


main
mov
lodsb
xor
add
mov

mov
mov
int
jc

mov
mov
mov
mov
int
jc

mov
mov

cmp
jz

dec
lodsb
mov
int
cmp
jnz
inc
cmp
jnz

mov
mov
mov
int
mov
int
jmp

mov
int
endp
si,80h

ah,ah
si,ax
byte ptr [si],0

dx,82h
ax,3d00h
21h
exit

bx,ax
ah,3fh
cx,65535
dx,offset buffer
21h
exit

si,dx
di,ax

di,0
exit

di

ah,0eh
10h
al,0ah
disp_loop
byte ptr line
line,23
disp_loop

line,0
ah,9
dx,offset msg
21h
ah,0
16h
disp_loop

ah,4ch
21h

;SI寄存器指向PSP偏移80H处
;取得命令行参数的字符数

;令SI寄存器指向命令行参数的末尾
;用"0"取取代回车符,构成ASCIIZ串

;DX寄存器指向构造好的ASCIIZ串
;按"读"方式打开文件

;若出错,转EXIT结束

;文件句柄送入BX寄存器
;准备读入数据
;读入64K字节
;DX寄存器指向内存中的缓冲区
;读文件
;若出错,转EXIT结束

;SI寄存器指向缓冲区首
;已读入的字节数送入DI寄存器

;已经处理完所有的数据吗?
;是,转EXIT结束

;未处理完所有数据,DI寄存器减1
;取得一个字节数据
;在屏幕上显示这个字节

;一行字符都已显示了吗?
;未显示一整行,转DISP_LOOP继续
;已显示了一整行,行号加1
;已显示了一整屏了吗?
;未显示满整个屏幕,转DISP_LOOP继续

;行计数器清0,准备显示下一屏
;输出"PRESS ANY KEY"提示信息


;等待键盘输入

;转DISP_LOOP继续显示下一屏

;结束进程



Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章