标签:去掉 直接 语句 失误 循环 问题 为什么 ima 完全
本次实验因为中间调试过程太多次,错误也出现好几次,所以就不把每一次的编译,连接成功的截图放下,显得太过繁琐。
第一题是填充0403 ,因为这是4字节的,所以分成两部分,一次加一次1,同时因为字节数要匹配,所以要把ax分成两部分al和ah来赋值,之后再在最外面调用一层循环即可。
结果如下图。
接下来是第二题,我先是进行的如图的代码,后来发现在结果时出现了问题,同时发现我的代码可以简化,就是ax和bx同时为0,同时加1,因此我将ax去掉,直接改用bx,但是发现好像还是不能弓运行,在调用查看之后发现,没有发生改变,依然全部是0。之后在网上查找资料之后,把add bx,1改为inc bx,之后就能得到正常的数据。
最后一题,我最开始是把ax设为0200,因为做下来的惯性,既然想要在这个地址改变,那就放这个位置,但后来发现不行,所以就在网上查询资料,不过查完之后只能说是一半明白了,还不能完全理解为什么要把20h改为cs,接下来我先是把次数设为0次,因为需要通过反汇编查看到底有多少字节,,在这之后发现到loop语句时候刚好为15,所以我把次数定为16。,之后的结果就可以到了。
这次实验做下来,我有几点疑问:
1:我第一题时add bx,1是可以运行的,为什么第二题时候不行了,需要换成inc bx才可以,还是说,这个代换是可以的,只是我操作出现了失误。
2:我还不是很明白为什么第三题的起始设为CS。虽然在网上找过原因,但依然不太明白。
3:我最后的时候其实不止试过把cx设为16,我还试过设为17,结果和我的截图一样,那么是不是说我只要CX>15的任意数字都可以做到这个效果?
标签:去掉 直接 语句 失误 循环 问题 为什么 ima 完全
原文地址:https://www.cnblogs.com/ameame/p/9974782.html