鱼C论坛

 找回密码
 立即注册
查看: 2748|回复: 6

关于段偏移变量的问题!!!

[复制链接]
发表于 2012-2-29 19:31:00 | 显示全部楼层 |阅读模式
1鱼币
教程中讲到:在将内存中的数据循环的累加到寄存器时,可以用bx作为变量
mov bx,0
mov dx,0

mov cx,12
123:mov al,ds:[bx]
         mov ah,0
         add dx,ax
         inc bx
loop 123

我的想法是,用cx作为变量,省去bx的引用:

mov dx,0

mov cx,12
123:mov al,ds:[cx]
         mov ah,0
         add dx,ax
loop 123

请高人指点下,这样可不可以?

最佳答案

查看完整内容

:funk:不可以,第一是CX后面的作用,都是作为循环,转移的条件的,第二是内存单元的表示只能有四个寄存器分别是bx,si,di,dp。这个学到后面会提及,所以【cx】这种使用是完全错误的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-29 19:31:01 | 显示全部楼层
本帖最后由 夏洛 于 2012-2-29 21:25 编辑

:funk:不可以,第一是CX后面的作用,都是作为循环,转移的条件的,第二是内存单元的表示只能有四个寄存器分别是bx,si,di,dp。这个学到后面会提及,所以【cx】这种使用是完全错误的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-29 21:02:09 | 显示全部楼层
本帖最后由 莫名其妙 于 2012-2-29 21:06 编辑

编译器是不允许有[cx] [ax]这样的情况的 而且cx只是作为作为循环次数或者计算位移次数设定的

王爽老师这本书上没有写出各个寄存器的一般用途  你可以在网上搜索下 8个通用寄存器的一般用途 有个表格的!~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-29 21:09:03 | 显示全部楼层

你的意思是  【】里面必须是BX?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-29 22:10:53 | 显示全部楼层
酸辣土豆丝 发表于 2012-2-29 21:09
你的意思是  【】里面必须是BX?

bx  si di bp   不能用 ax cx dx sp
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-1-9 18:07:24 | 显示全部楼层
bx  si di bp   不能用 ax cx dx sp
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-1-9 19:07:07 | 显示全部楼层
bx  si di bp   不能用 ax cx dx sp
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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