实验内容
1、综合使用loop、[bx],编写完整汇编程序,实现向内存b800:07b8开始的连续16个字单元重复填充字数据0403H.
tips:
loop实现循环,
inc bx实现ds:bx指向下一个单元
cx 实现s执行的次数
因为是字数据,,需要两个字节存储
2、综合使用oop、[bx],编写完整汇编源程序,实现向内存0:200~0:23F依次传送数据0~63(3FH).
由于粗心,未设置循环次数cx以及s遗漏,出现一个提示错误,改正后运行
tips:
debug中对格式要求很严格,并且运行前仔细检查汇编指令的正确度,更改时别忘了保存
3、补全下面的程序,将“mov ax,4c00h”之前的指令复制到0:200处,补全程序。上机调试,跟踪结果。
因为要复制指令,段地址必须是cs
一开始cx随便填了一个数,在debug环境下用t单步调试的时候cx是从17开始的
然后用r命令查看寄存器的情况,可以看到当前的地址为0b90:0000,所以下面用u命令对0b90:0000开始进行反汇编,可以看到loop s的下一条指令的地址为0b90:0017,两段地址作差就得到了循环的次数,即cx的值为17h。
es作为段前缀,这样不必在循环中反复设置ds
总结:用调试会发现很多问题,要善于总结,在实验之前,认真阅读,课后及时实践,不然容易遗忘