Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly GNU ASM(英特尔语法)获取不带LDA的标签地址_Assembly_Code Generation_Nasm_Gnu Assembler_Intel Syntax - Fatal编程技术网

Assembly GNU ASM(英特尔语法)获取不带LDA的标签地址

Assembly GNU ASM(英特尔语法)获取不带LDA的标签地址,assembly,code-generation,nasm,gnu-assembler,intel-syntax,Assembly,Code Generation,Nasm,Gnu Assembler,Intel Syntax,我有一个奇怪的情况,我不确定这是GNU汇编程序的错误还是我做错了什么。我想我最终会切换到nasm,但我正在使用一些为GNU汇编程序编写的宏 例如,我有一个带有如下变量的标签: msg1: .asciz "hello world" var1: .long 0 现在我期望mov-eax,var1-to-mov指针指向var1-eax,而mov-eax,[var1]应该将该变量的内容移动到eax,但两者都给我相同的代码,给我该变量的内容。我知道我可以使用LDA,但这不是必须的。如果我想将指针推到某个

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

例如,我有一个带有如下变量的标签:

msg1:
.asciz "hello world"
var1:
.long 0
现在我期望mov-eax,var1-to-mov指针指向var1-eax,而mov-eax,[var1]应该将该变量的内容移动到eax,但两者都给我相同的代码,给我该变量的内容。我知道我可以使用LDA,但这不是必须的。如果我想将指针推到某个字符串,我必须执行以下操作

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

.set const1 0x1000

moveax,const1给出0x1000处的内存内容,而不是立即数。我能做些什么来解决这个问题

英特尔语法是mov eax,偏移量msg1英特尔语法是mov eax,偏移量msg1