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