汇编实验四 [bx]和loop的使用

任务一     

综合使用loop[bx],编写完整汇编源程序,实现向内存b80007b8开始的连续16个字单元重复填充字数据0430h

1、源代码,保存为t3.asm

编译、连接后运行该代码,结果如下图:

2、将源代码程序中字数据0403h修改为0441h后,再次运行结果如图:

3、将源代码程序中字数据0403h修改为0603h后,再次运行结果如图:

由以上1、2、3的对比,我们可以看出bx中前两个字节控制颜色,后两个字节控制形状。

任务二    

 综合使用loop[bx],编写完整汇编源程序,实现向内存0200~023f依次传送数据0~633FH)。

1、源代码,保存为t4.asm:

2、汇编、连接无误后,进入debug环境使用d命令查看,如下图:

 用d命令可以看到传送数据成功。

进入debug,先用r命令查看个寄存器中的数据,我用t命令单步执行观察了0:200~0:202的变化:

如上,确认了将00,01,02传送到该区域,由于单步执行次数过多,剩下的部分我用g命令一次执行完了

任务三  

补全源代码

因为复制的是汇编指令,所以必须为cs

汇编、连接后进入debug调试环境,使用r命令查看cx的值,查看总长度:

用u命令进行反汇编,可以看出从第一条指令开始到mov  ax,4c00h的长度为十六进制表示为17,即十进制的23;

然后修改t5.asm中源代码,把cx改为0017h:

汇编连接后进入debug调试环境,r命令查看cx,u命令反汇编:

用t命令和p命令调试后结果:

d命令查看0:200~0:23F如图:

与前面两个u命令反汇编得到的结果对比,可以看出指令被写到内存0:200处。

总结与体会

  复习了实验三的汇编源程序的编写,汇编、连接,学习新的[bx]和loop的使用,发现在debug中对g命令与p命令的使用还不太熟悉,需要加强基础知识的复习巩固。

  对于选做部分,因为自己对栈的使用还不是很了解,所以在此没有用栈的特性来做。

原文地址:https://www.cnblogs.com/ljzww/p/9975427.html