汇编语言实验3

这是汇编语言实验3

  1. 练习11步,编写汇编源程序t1.asm, 源程序代码如图1-1所示。

  

1-1 汇编源程序t1.asm 源代码

2步,对源程序 t2.asm 进行汇编、连接、运行、调试

(1) 运行程序,观察程序输出结果是什么?

 

输出结果为36

(2)  line4line9种寄存器dl 的值分别修改为 0~9 中任何一个数字,重新汇编→ 连接

→运行,观察结果的变化。  

 

Line 4Line9dl的内容由原来的36改为63

 

运行结果为:63

(3) debug对生成的可执行文件 t2.exe 进行调试。

① 使用 r 命令查看。观察寄存器 cx 的值是 多少;观察寄存器 ds cs 的值是多 少,它们之间是否满足关系(cs)=(ds)+10H? 

利用debugt2.exe进行调试后可发现(cs(076a))=(ds(075a)+10h)

② PSP(程序段前缀)的头两个字节是CD 20, debug查看PSP的内容,验证是否 如此。

 

③  使用 u 命令对 t2.exe 进行反汇编,观察反汇编得到的源代码。

 

④  使用 t 命令和 p 命令(遇到 int 命令时,用 p 命令)单步调试,观察结果。

按照四小点的要求调试,中间过程没有出现什么问题,最后的结果为:

 

  1. 练习2

1步,编写汇编源程序2.asm,源程序代码如图1-2所示。

  

       图1-2 汇编源程序2.asm源代码

2步,对源程序 2.asm 进行汇编、连接、运行、调试

 

(1) 2.asm进行汇编、连接后,得到可执行文件2.exe。运行2.exe,观察程序运行 结果,验证是否在屏幕左上方出现红色的数值36

这里确实出现了老师所提出的的问题(经测试,有些平台在 dosbox 下运行这个程序时有些问题,如果屏幕左上方没有 输出结果,请运行程序2.exe前,先输入cls命令清空一下屏幕,然后再执行2.exe。),由是清屏后执行2.exe的到下面的结果

 

(2) 如果(1)结果得到验证,重新打开2.asm,尝试将源代码中line70433h0432h, line10 0436h0439h, 然后重新汇编、连接,得到可执行文件 2.exe。使用 cls 命令清 屏后,再次观察程序运行结果。

 

改动以后的运行结果为:

 

 

(3) 如果(1)结果得到验证,重新打开2.asm,尝试将源代码中line70433h0333h, line10 0436h0336h, 然后重新汇编、连接,得到可执行文件 2.exe。使用 cls 命令清

 

 

改动以后的运行结果为:

 

 

posted @ 2018-11-17 11:26  BeartoHero  阅读(140)  评论(0编辑  收藏  举报