编程语言
首页 > 编程语言> > 实验2 多个逻辑段的汇编源程序编写与调试

实验2 多个逻辑段的汇编源程序编写与调试

作者:互联网

一、实验目的

  1. 理解和掌握8086多个逻辑段的汇编源程序
  2. 理解和熟练应用灵活的寻址方式
  3. 通过汇编指令loop的使用理解编程语言中循环的本质,掌握其在嵌套循环中的正确使用
  4. 掌握使用debug调试8086汇编程序的方法

二、实验结论

1.实验任务1

任务1-1

 

① 在debug中将执行到line17结束、line19之前,记录此时:寄存器(DS) = 076A, 寄存器(SS) = 076B, 寄存器(CS) = 076C ② 假设程序加载后,code段的段地址是X,则,data段的段地址是X-2, stack的段地址是 X-1。

任务1-2

① 在debug中将执行到line17结束、line19之前,记录此时:寄存器(DS) = 076A, 寄存器(SS) = 076B, 寄存器(CS) = 076C ② 假设程序加载后,code段的段地址是X,则,data段的段地址是X-2, stack的段地址是 X-1。

任务1-3

① 在debug中将执行到line17结束、line19之前,记录此时:寄存器(DS) = 076A, 寄存器(SS) = 076C, 寄存器(CS) = 076E ② 假设程序加载后,code段的段地址是X,则,data段的段地址是X-4, stack的段地址是 X-2。

任务1-4

① 在debug中将执行到line9结束、line11之前,记录此时:寄存器(DS) = 076C, 寄存器(SS) = 076E, 寄存器(CS) = 076A ② 假设程序加载后,code段的段地址是X,则,data段的段地址是X+2, stack的段地址 是X+4。

任务1-5

基于上述四个实验任务的实践、观察,总结并回答: ① 对于如下定义的段,程序加载后,实际分配给该段的内存空间大小是 floor(N/16)*16。 ② 如果将程序task1_1.asm, task1_2.asm, task1_3.asm, task1_4.asm中,伪指令 end start 改成 end , 哪一个程序仍然可以正确执行。结合实践观察得到的结论,分析、说明原因。   task1_4.asm可以运行。伪指令end start是用来指示程序从start标号开始,如果改成end,程序就会从头开始。而只有1_4的开头就是代码段,所以1_4能够正确运行。

2. 实验任务2

3. 实验任务3

4. 实验任务4

5. 实验任务5

6. 实验任务6

7. 实验任务7

标签:汇编,ends,code,bx,mov,ax,data,源程序,调试
来源: https://www.cnblogs.com/TTMZ9961/p/15515088.html