汇编实验三 编程、编译、连接、跟踪

 

实验日期  2018.11.18
学院  计软院      专业  计科       年级 2017级

班级  计科六班   姓名 庄桢立    学号 20171308231

 

一、实验目的
1. 掌握汇编语言源程序(8086 dos 汇编)编写→汇编→链接→调试的方法
2. 加深对 1-4 章基础知识的理解

二、实验准备
1. 结合第 4 章课件和教材,学习/复习完整汇编源程序编写→汇编→连接→运行→调试
的方法
2. 复习第 1-3 章以下基础知识:
(1)寄存器用法
  ① 通用寄存器 AX, BX,CX, DX
  ② 段寄存器 CS, DS, SS 和两个特殊寄存器 IP, SP
(2)内存访问,特别是多字节数据的存、取
(3)汇编指令用法,注意其合法使用形式
  ① 数据传送类指令:mov, push, pop
  ② 算术运算指令:add, sub
  ③ 转移类指令:jmp
三、实验内容

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

第 2 步,对源程序 t1.asm 进行汇编、连接、运行、调试
(1) 运行程序,观察程序输出结果是什么?
(2) 将 line4 和 line9 种寄存器 dl 的值分别修改为 0~9 中任何一个数字,重新汇编→
连接→运行,观察结果的变化。
(3) 用 debug 对生成的可执行文件 t1.exe 进行调试。
① 使用 r 命令查看。观察寄存器 cx 的值是 多少;观察寄存器 ds 和 cs 的值是多
少,它们之间是否满足关系(cs)=(ds)+10H?
② PSP(程序段前缀)的头两个字节是 CD 20, 用 debug 查看 PSP 的内容,验证是否
如此。
③ 使用 u 命令对 t1.exe 进行反汇编,观察反汇编得到的源代码。
④ 使用 t 命令和 p 命令(遇到 int 命令时,用 p 命令)单步调试,观察结果。

练习 2

 

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

 

注*:line6-7 相当于 mov [0], 0433h

         line9-10 相当于 mov [2], 0436h

          至于为什么这样使用两条指令,而不直接简化写成上面的形式,有两个原因。其中一个是方便以后循环;另一个原因,留待第 5 章再解释说明。暂时,先这样使用。

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

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

注*:经测试,有些平台在 dosbox 下运行这个程序时有些问题,如果屏幕左上方没有输出结果,请运行程序 t2.exe 前,先输入 cls 命令清空一下屏幕,然后再执行 t2.exe。

        (2) 如果(1)结果得到验证,重新打开 t2.asm,尝试将源代码中 line7  0433h0432h,

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

        (3) 如果(1)结果得到验证,重新打开 t2.asm,尝试将源代码中 line7  0433h0333h,

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

 

四、实验结论

练习一:

1.执行的结果为:

2.对line4  line9 种寄存器 dl 的值分别修改为 0~9 中任何一个数字,重新汇编连接→运行,观察结果的变化。

结果为:

 

 

3.用debug对生成的可执行文件 t1.exe 进行调试。

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

 

当中,ds=075AH,cs=076AH,所以满足(cs)=(ds)+10H。

  (2)PSP的头两个字节是 CD 20, 用 debug 查看 PSP 的内容,验证是否如此。

 

 

看来确实如此。

  (3) 使用 u 命令对 t1.exe 进行反汇编,观察反汇编得到的源代码。

 

 

 (4)使用 t 命令和 p 命令 单步调试,观察结果。 

 


 

 


练习二:

 

运行的时候产生一些错误,

五、总结与体会

对于练习二中出现的错误,并不能有效的改正其中的错误,看来还是学到的不够呀。

转载于:https://www.cnblogs.com/zzl-2239105408/p/9978931.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值