GNU ASM(intel语法)获取没有LDA的标签地址

时间:2017-05-31 14:10:59

标签: assembly code-generation nasm gas intel-syntax

我有一个奇怪的情况,我不确定它是否是GNU汇编程序的错误或我做错了什么。我想最终会切换到nasm,但我正在使用一些为GNU汇编程序编写的宏。

例如,我有一个标签,其中包含一些变量:

msg1:
.asciz "hello world"
var1:
.long 0

现在我预计mov eax,var1将mov指向var1到eax,而mov eax,[var1]应该将该变量的内容移动到eax,但两者都给我相同的代码,给我这个变量的内容。我知道我可以使用LDA,但它不应该是必要的。如果我想将指针推送到某个字符串,我必须执行类似

的操作
lea eax, msg1
push eax

另一个问题。我用.set定义一个常量,如下所示:

.set const1 0x1000

mov eax,const1给出内存的内容为0x1000而不是立即值。我该怎么做才能解决这个问题?

0 个答案:

没有答案
相关问题