鱼C论坛

 找回密码
 立即注册
查看: 1744|回复: 7

王爽汇编5.3 5.5的疑问 急!

[复制链接]
发表于 2012-12-7 14:09:19 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 阳光下冰淇淋 于 2012-12-7 14:40 编辑

程序5.3中
mov bx,6
mov al,[bx]

不可以直接写成:mov al,[6]
为什么可以写成:mov al,bs:[6]



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-12-7 14:41:31 | 显示全部楼层
完全可以哇,都是将DS:0006内存处存储的的字节值赋给al
12.7.14.47.jpg
上面是调试图。

可以看一下王爽的书P164 有寻址方式的总结
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-12-7 15:10:09 | 显示全部楼层
Bs?。。。。有这个语法么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-12-7 15:10:56 | 显示全部楼层
用MASM不可以直接[6],可以ds:[6]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-12-7 15:56:23 | 显示全部楼层
DEBUG中和masm源程序中对这个指令处理是不一样的,DEBUG中可以直接用MOV ,AL,][6],而masm源程序中,必须前加段前缀,所以写成mov al,ds:[6]

评分

参与人数 1贡献 +1 收起 理由
s0512 + 1 赞一个!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-12-8 11:16:31 | 显示全部楼层
书上不是有么……debug和编译器对指令处理不同,详见5.4
编译器将[idata]解释为idata
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-12-8 13:26:09 | 显示全部楼层
编译的时候编译器不认识【】只是把6移动到al中,在前边加上段名编译器就能认识了,也可以通过bx过度一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-12-8 16:36:52 | 显示全部楼层
其实书里都有介绍的,而且小甲鱼老师也在视频里上鸡实验过
masm编译器会把[6]当做6来看待,所以要通过添加段前缀来说明
如 mov ax,ds:[6] 这样masm才懂段地址是ds,偏移是6
当然如果偏移地址是0的话,可以不用添加段前缀,直接 mov ax,[0],这样也行。
还有8086段寄存器好像没有bs吧:lol
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-10-8 00:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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