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

一、实验目的
1. 理解和掌握8086多个逻辑段的汇编源程序
2. 理解和熟练应用灵活的寻址方式
3. 通过汇编指令loop的使用理解编程语言中循环的本质,掌握其在嵌套循环中的正确使用
4. 掌握使用debug调试8086汇编程序的方法
 
二、实验准备
复习教材5-8章:
包含多个逻辑段的汇编源程序结构
寻址方式
汇编指令loop, div用法
 
 
三、实验内容
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中执行到line17结束、line19之前

 

 

DS=076C,SS=076E,CS=076A

code段的段地址是X,则,data段的段地址是X+2, stack的段地址是X+4。

 

1-5:

对于如下定义的段,程序加载后,实际分配给该段的大小是 N字节

将所有伪指令end start改成end:只有 task1_4可以正确执行可以正确执行

因为end start改为end后,前三个以数据段开头,cs指向出现错误,而第四个开头即为程序段,所以仍然能执行.

 

 

 

实验任务2

 

实验任务3:
反汇编:

 

内存情况:

实验任务4:

结果:

内存情况:

 

实验任务5:

结果:

 25行之后27行之前

 

 源程序的功能是打印大写彩色的NUIST

第4行用来设置显示字符的颜色

 

实验任务6:

结果:

 

 

实验任务7:

结果:

 

 本次实验,我充分认识到了汇编语言的繁琐性,也进一步懂得了汇编语言代码书写的规范。

 

posted @ 2021-11-09 13:28  ketan  阅读(50)  评论(1编辑  收藏  举报