![]() | 第11章 更高级的技术 | -323- | |||||||||||||||||||
hex2asc code |
push and xlat mov int pop pop loop mov int mov int pop pop pop ret endp ends end |
ax ax,000fh ah,0eh 10h ax cx loop1 ax,0e0dh 10h al,0ah 10h cx bx ax hex2asc |
;暂存移位后的结果 ;保留AX寄存器低4位 ;从ASCII码表中取得字符 ;并调用10H中断的0EH功能输出 ;从堆栈中取回移位后的结果 ;和CX寄存器中的计数值 ;继续处理下4位 ;输出回车、换行符 ;恢复寄存器 ;返回主过程 |
||||||||||||||||||
给出的两个源程序其实是一个程序的两个部分,这两个部分编译之后要连接到一起。具体方法很简单,首先将两个文件分别编译成两个OBJ目标文件,然后按下述方法应用LINK.EXE程序进行连接: | |||||||||||||||||||||
![]() |
|||||||||||||||||||||
连接程序LINK.EXE会把TEST1.OBJ和TEST2.OBJ组合在一起,生成的可执行文件默认的文件名是第一个OBJ文件的名字,本例是TEST1.EXE。其实这才是LINK程序真正的用途,以前使用LINK程序将单独一个OBJ文件转换为可执行文件只是走走形式而已。 如果使用TLINK程序,则操作会更简单一些: C:\ASM\>tlink test1 test2[Enter] 通过这个实例,我们可以看出构成程序的两个模块其实就是两个完整的程序,而实现模 |
|||||||||||||||||||||
Copyright © 2004-2015 Reanimator | www.cookmoon.org |