鱼C论坛

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

si与di 寄存器。是否可以代替 bx??

[复制链接]
发表于 2011-3-10 09:59:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
例子:
code segment

start:

        mov dh , 2

        mov dl , 5

        mov cl , 2

        mov ax , data

        mov ds , ax

        mov si , 0  【这里指ds:0。为什么是si。不是bx】

        call show_str
........


例如:
mov ax,date
mov ds,ax
mov si,0
的意思是:ds:[0]内存单元
。为什么不声明bx???而是用si??

如果是:
mov ax, date
mov ds,ax
mov si,0
mov bx,0
是调用 si为偏移地址。还是bx?????
如果si做偏移的时候。bx做什么?
什么时候调用si,什么时候调用bx?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-10 10:12:08 | 显示全部楼层
本帖最后由 china0008 于 2011-3-10 10:13 编辑

si  di  是纯16位寄存器。 不能分为高低8位。当作为16位寄存器使用的时候跟bx一样。都是通用寄存器。 si和di在 串送指令中 是神器。方便的很啊。


另外你贴完整源码噻……。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
发表于 2011-3-10 11:54:08 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-3-10 19:02:39 | 显示全部楼层
高手啊。谢谢你!!!!:loveliness:
爱你一万年!:lol
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-12 10:44:30 | 显示全部楼层
本帖最后由 790496690 于 2011-4-12 10:46 编辑

我也是猜想啊:从计算机的角度看,它会以MOV SI,0作为偏移的地址。因为我们的汇编的指令没有明确的指出到底是SI或者是BX等,谁是作为偏移地址,都是最开始的汇编鼻祖,凭自己的习惯定的。但是要是遇到了楼主提出的那种情况的话,因该是按照顺序来的,最前面的那个是偏移地址的寄存器。

   那位大哥来给个决断啊!!!这也是我的一个理解吧!!不知道对不
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-12 11:21:25 | 显示全部楼层
学习一下。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-18 09:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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