-294- | PC机汇编语言实战精解 | ![]() |
|||||||||||||||||||
main dispchr loop1: return: dispchr code |
endp proc push push mov lodsb or jz mov int jmp pop pop ret endp ends end |
near ax dx ah,02h al,al return dl,al 21h loop1 dx ax main |
;显示字符串的子程序 ;保存寄存器 ;选择DOS API的02H功能 ;取得一个字符 ;这个字节是0吗? ;若这个字节是0,返回主过程 ;将这个字符送入DL寄存器 ;并显示输出 ;转LOOP1继续显示下一个字符 ;恢复寄存器 ;返回主程序 |
||||||||||||||||||
在笔者的机器上运行这个程序可以有以下的输出结果: | |||||||||||||||||||||
![]() |
|||||||||||||||||||||
DOS每次调入一个程序就要复制一组环境信息,当一个程序驻留在内存中时,这个程序对应的环境信息块也同时驻留于内存中,所以我们会观察到驻留内存看程序占用的空间比其实际长度要大。 解决了程序的驻留问题,下一步就是要研究怎样让CPU按我们的意愿来适时地执行这个程序。要知道一个程序如果驻留在内存中之后就再也不被执行了,那么这个程序是毫无意义的。驻留内存的程序怎样才能被执行呢? |
|||||||||||||||||||||
Copyright © 2004-2015 Reanimator | www.cookmoon.org |