风之谷 发表于 2012-9-13 21:04:18

assume 的用处

感觉assume没什么用处啊
比如写了:
    assume ds:code    ss:stack

还是要在之后的指令中将 ds设置为code,ss设置为stack。

如果你把ds设置为stack,ss设置为code 那岂不是又把stack作为数据段了,code段作为栈段了吗?

既然是这样,那之前的assume的意义又是什么呢?我有点晕了。

》飞《~~ 发表于 2012-9-13 21:23:45

好像 NASM 不支持assume

无星之夜 发表于 2012-9-13 22:34:07

额,应该是是关联起来,让寄存器能看到你这个标示符吧

s0512 发表于 2012-9-13 23:05:13

assume ds:code{这里的code只是起到一个标示作用,段名,当然最好叫DATA~本身定义数据段,段名叫CODE~STACK这样会把自己或看代码的人晕呼呼}    ss:stack
assume ds:code//定义 {assume}:   数据段 {ds}   段名:code
一起进步哈{:1_1:}

风之谷 发表于 2012-9-13 23:56:14

无星之夜 发表于 2012-9-13 22:34 static/image/common/back.gif
额,应该是是关联起来,让寄存器能看到你这个标示符吧

我也知道是关联起来,但是具体感觉很抽象,就算写了assume ds:data 也可以把data作为栈段,因为只需在指令中写mov ss,data 就行了。所以实际没感觉他们在什么地方关联了

风之谷 发表于 2012-9-14 00:00:23

s0512 发表于 2012-9-13 23:05 static/image/common/back.gif
assume ds:code{这里的code只是起到一个标示作用,段名,当然最好叫DATA~本身定义数据段,段名叫CODE~STACK ...

但是我觉的这个定义没什么实际用途,因为把段作为栈段还是数据段是后面对ss,ds的赋值决定的。所以 觉得这个assume没有起到实际的作用

无星之夜 发表于 2012-9-14 06:57:21

风之谷 发表于 2012-9-13 23:56 static/image/common/back.gif
我也知道是关联起来,但是具体感觉很抽象,就算写了assume ds:data 也可以把data作为栈段,因为只需在指 ...

好吧。。不写assume的话后面就是用了mov也没有办法的吧

梦想与现实 发表于 2012-9-14 07:54:43

就是一段伪指令 没有实际作用的不必过于纠结

dsaa 发表于 2013-6-16 10:25:58

过来学习一下。。。。
页: [1]
查看完整版本: assume 的用处