题目一
问题
在数据段DATA中有两个字数据X和Y, 假设X=1122H, Y=3344H, 编程求两个字的和,结果存放到Z单元中。
代码
1 | ;********************************************************************* |
题目二
问题
从SOURCE_BUFFER单元开始存放了20个字母A, 编程将这20个字母A的字符串传送到DEST_BUFFER开始的单元中。
代码
1 | ;********************************************************************* |
题目三
问题
从SOURCE_BUFFER单元开始存放了20个字母A, 编程将这20个字母A的字符串向下移10个单元。
代码
1 | ;********************************************************************* |
BUG
不小心,上边代码写错了,rep movs ds:byte ptr[di],ds:[di]
,源地址和目标地址不小心都用了di。
按说这样不能进行后移,但却得到了正确的结果。
经过调试,发现可能是编译环境自行将我的错误代码改成了正确代码,进行了优化。
同时也发现:rep movs ds:byte ptr[si],ds:[di]
,这个代码也是错的,但也得到了正确的结果。
正确的代码应该是这样:rep movs ds:byte ptr[di],ds:[si]
。
作者:@臭咸鱼
转载请注明出处:https://chouxianyu.github.io
欢迎讨论和交流!