Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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 偏移量在装配中可以被视为变量吗? 我们可以把某个内存位置的偏移作为变量吗?_Assembly - Fatal编程技术网

Assembly 偏移量在装配中可以被视为变量吗? 我们可以把某个内存位置的偏移作为变量吗?

Assembly 偏移量在装配中可以被视为变量吗? 我们可以把某个内存位置的偏移作为变量吗?,assembly,Assembly,如果将偏移量作为函数的参数推送到堆栈上,那么它是否被视为变量?当然可以这样做。在被调用的函数中,参数通常被视为局部变量。汇编语言不知道变量的概念,因此您的问题有点毫无意义。如果“变量”是可以更改的东西,那么编译时可用的特定符号定义不是变量,而是常量。但如果您将该常数写入某个寄存器/内存(如x86上的mov eax,offset_symbol),则可以根据需要修改该值,即在运行时,该值将变为“变量”(在该示例中,在registereax中,即添加eax,10将向其添加值10)。

如果将偏移量作为函数的参数推送到堆栈上,那么它是否被视为变量?

当然可以这样做。在被调用的函数中,参数通常被视为局部变量。汇编语言不知道变量的概念,因此您的问题有点毫无意义。如果“变量”是可以更改的东西,那么编译时可用的特定
符号
定义不是变量,而是常量。但如果您将该常数写入某个寄存器/内存(如x86上的
mov eax,offset_symbol
),则可以根据需要修改该值,即在运行时,该值将变为“变量”(在该示例中,在register
eax
中,即
添加eax,10
将向其添加值10)。