实验三 第一个汇编程序
Posted wlxnw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验三 第一个汇编程序相关的知识,希望对你有一定的参考价值。
一、练习一
1、编写汇编源程序 t1.asm。
2、对源程序 t1.asm 进行汇编、连接、运行、调试。
汇编:
该过程忽略了中间结果列表文件和交叉引用文件,最终得到了目标文件t1.obj
汇编后在当前路径下会出现一个新文件,t1.obj(下图中的t1)
连接:
通过连接,t1.obj将变成t1.exe,如此便得到了可执行文件。
该过程忽略了中间结果映像文件和库文件的连接(因为这个程序中没有调用任何子程序)。
运行:
结果为36.
将 line4 和 line9 种寄存器 dl 的值分别修改为 0~9 中任何一个数字:
重新汇编→ 连接→运行后结果如下:
接下来,用 debug 对生成的可执行文件 t1.exe 进行调试。
①使用 r 命令查看。观察寄存器 cx 的值是 多少;观察寄存器 ds 和 cs 的值是多少,它们之间是否满足关系(cs)=(ds)+10H?
cx=0016,ds=075A,cs=076A。满足(cs)=(ds)+10H。
② PSP(程序段前缀)的头两个字节是CD 20, 用debug查看PSP的内容是否如此。
结果却是是程序段前缀为CD 20。
③使用 u 命令对 t1.exe 进行反汇编:
④ 使用 t 命令和 p 命令(遇到 int 命令时,用 p 命令)单步调试,观察结果。
二、练习二
1、编写汇编源程序 t2.asm
2、对源程序 t2.asm 进行汇编、连接、运行、调试
完成汇编和连接并清屏后运行仍无结果。为什么呢???
重新打开 t2.asm,尝试将源代码中 line7 的 0433h→0432h, line10 的 0436h→0439h,
然后重新汇编、连接,得到可执行文件 t2.exe。使用 cls 命令清屏后,再次观察程序运行结果。
改完了,还是没有结果。郁闷。
重新打开 t2.asm,尝试将源代码中 line7 的 0433h→0333h, line10 的 0436h→0336h,
然后重新汇编、连接,得到可执行文件 t2.exe。使用 cls 命令清屏后,再次观察程序运行结果。
没有结果+1
以上是关于实验三 第一个汇编程序的主要内容,如果未能解决你的问题,请参考以下文章