你如何从C正确访问.set程序集变量?

时间:2017-09-04 03:23:22

标签: c assembly gas

我在使用

设置的程序集文件中有一个变量
.set CODE_SELECTOR 0x08
.global CODE_SELECTOR

然后我有一个CDE文件,CODE_SELECTOR声明为extern,我试图简单地访问它应该是0x08的值。 当我实际使用CODE_SELECTOR作为参数调用C函数时,C将其视为我想要内存位置CODE_SELECTOR的内容,并且我最终得到以下汇编代码

mov    0x8,%eax
sub    $0xc,%esp
push   %eax
call   0x284

如果我使用显式数字(如0x08)调用相同的函数,我最终得到预期的代码

sub    $0xc,%esp
push   $0x8
call   0x284

那么我应该如何正确访问CODE_SELECTOR的“值”而不是CODE_SELECTOR的内容?我认为这可能与装配符号类型有关,但我无法弄明白。

0 个答案:

没有答案