鱼C论坛

 找回密码
 立即注册
查看: 2589|回复: 10

这样为什么就不可以?

[复制链接]
发表于 2014-3-30 18:31:22 | 显示全部楼层 |阅读模式

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

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

x
assume cs:codesg

codesg segment

fishcc: mov ax,1000H
           mov ds,ax
           mov cx,6
           mov ax,[cx]   ;为什么这里就不能换成cx一定要是bx,同样通用寄存器?
          
           mov ax,4c00H
           int 21H
codesg ends

end fishcc

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-3-30 19:39:15 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-30 22:55:14 | 显示全部楼层
oggplay 发表于 2014-3-30 19:47
mov ax,[cx],表示将CX指向内存的地址的值赋值给ax,上一步mov cx,6,也就是将内存地址为6的值赋给ax

但是masm编译器它不允许拿CX来装数据的偏移地址,而只能用BX,我想知道的是,同样是寄存器为什么就不能用CX,或者DX
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-4 11:03:34 | 显示全部楼层
snowpower 发表于 2014-4-3 16:03
这个是16位的规定吧,默认情况它把BX和DS是关联起来的,如果你不是这么写mov ax,ss: ,而是写成mov ax,,那么 ...

厉害,瞬间就懂了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-2 02:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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