(1)编写汇编源程序t1.asm,对源程序 t1.asm 进行汇编、连接、运行、调试
。
改动源代码
。
用debug对生成的可执行文件 t1.exe 进行调试
cx=0016, cs=076a, ds=075a, cs= ds + 10h。
PSP(程序段前缀)的头两个字节是CD 20, 用debug查看PSP的内容,验证是否 如此
确实如此。
使用 u 命令对 t1.exe 进行反汇编,观察反汇编得到的源代码
076a:0000--076a:0016都对应源代码。
使用 t 命令和 p 命令(遇到 int 命令时,用 p 命令)单步调试,观察结果
剩下的也是重复上面的步骤。
(2)写入源代码,编译,链接,运行。第一次运行没有数字
清除屏幕第二次运行出现了红色的数字36,amazing!
将源代码中line7的0433h→0432h, line10 的 0436h→0439h, 然后重新汇编、连接,得到可执行文件 t2.exe。使用 cls 命令清 屏后,再次观察程序运行结果。
哇哦,数字变成了29耶。。
将源代码中line7的0433h→0333h, line10 的 0436h→0336h, 然后重新汇编、连接,得到可执行文件 t2.exe。使用 cls 命令清 屏后,再次观察程序运行结果。
哇哦,得到了蓝色的36耶。。
结论:好像是前面三位数字控制颜色,后面以为数字用来显示。具体的不知道,是ASC码码?可能后面会讲。总的来说,编写了第一个汇编程序,感觉有点神奇,也有点复杂。需要记得汇编程序的框架。