码迷,mamicode.com
首页 > 其他好文 > 详细

实验三 第一个汇编程序

时间:2018-11-17 19:17:06      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:文件的   为什么   调用   9.png   字节   ls 命令   技术   引用   个数   

 

 

一、练习一

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 的 0433h0333h, line10 0436h0336h,

然后重新汇编、连接,得到可执行文件 t2.exe。使用 cls 命令清屏后,再次观察程序运行结果。

技术分享图片

没有结果+1

 

 

 

 

技术分享图片

 

实验三 第一个汇编程序

标签:文件的   为什么   调用   9.png   字节   ls 命令   技术   引用   个数   

原文地址:https://www.cnblogs.com/wlxnw/p/9974887.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!