鱼C论坛

 找回密码
 立即注册
查看: 3122|回复: 3

实验5的疑惑???

[复制链接]
发表于 2016-12-8 17:00:29 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 来学习编程 于 2016-12-9 09:41 编辑

源程序的开始assume cs:code (ds:a)没有关联DS段,为什么程序里面可以直接使用????
WT]J%S{WIM)P6GK83{QN20U.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-9 12:28:48 | 显示全部楼层
程序里已经有指令将ds和a进行了联系,即:
mov  ax,a
mov  ds,ax
前面assume cs:code,是因为程序里没有地方进行了实际关联。而且CS:IP这玩意儿除非跳转类型指令或语句,基本CS:IP就是这么平坦执行下去的。

所以我的理解是如果在程序里进行了段寄存器和段的实际挂钩(即有相关的指令或伪指令),就无须在assume里进行说明。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-9 13:21:01 | 显示全部楼层
兰陵月 发表于 2016-12-9 12:28
程序里已经有指令将ds和a进行了联系,即:
mov  ax,a
mov  ds,ax

谢谢你的解答,但是我还是不明白,为什么程序不写成这种形式:assume cs:code,ds:data,ss:stack
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-10 07:41:16 | 显示全部楼层
本帖最后由 zealstar 于 2016-12-11 08:07 编辑

assume只是伪指令,给编译器看的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-6 14:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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