鱼C论坛

 找回密码
 立即注册
查看: 3136|回复: 5

小甲鱼讲loop时的问题?

[复制链接]
发表于 2012-4-14 20:41:57 | 显示全部楼层 |阅读模式
1鱼币

小甲鱼在讲计算ffff:0006单元中的数乘以3,结果存储在dx中。

mov al,[bx]

mov ah,0

mov dx,0

把mov al,[bx]和mov ah,0合在一起我发现执行后的dx的值是不一样的,我觉得应该是不可以合在一起的

我想知道的是可不可以合在一起用,有的话就给个例子看下,谢谢!

ps:当时小甲鱼是说可以合一起用的


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-4-14 21:59:28 | 显示全部楼层
我翻了下书  这题是讲loop 循环指令的
mov al   mov ah  这两个指令执行完后修改的是ax 的值 跟DX没关系的
dx有关的是在 后面  add dx,ax  把dx的值加上ax 结果存在dx中 然后循环3次 想当于执行了ax的值乘以3 结果放在DX中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-4-14 22:10:25 | 显示全部楼层
我调试可执行文件两种是不一样的,到第4步的ds:0006=2f37,一个是ds:0006=37,到最后的dx里的值是不一样,那样子值不一样应该就是不可以合一起了,我也搞不懂哦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-4-14 22:48:02 | 显示全部楼层
我也认为是不能合在一起的,课本中的才是正确的。原因如下:
因为假设:
ds:[bx]=12H ds:[bx+1]=34h
则:
按照小甲鱼合在一起的方式:执行:mov ax,[bx]后 ax=3412h
按照课本的编写方式:执行
mov al,[bx]
mov ah,0
后:al=12h ah=00h 即:ax=0012h
所以执行:
mov dx,0
add dx,ax
得出的结果肯定是不一样的。
只有当ds:[bx]=12H ds:[bx+1]=00h的时候。才可以合在一起。。
不知道这么说对不对,请高人指点。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-1-21 14:08:38 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-1-21 14:15:44 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-25 12:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表