Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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 如何解释此地址-0x80(%rbp,%rax,4)_Assembly_X86 64_Att - Fatal编程技术网

Assembly 如何解释此地址-0x80(%rbp,%rax,4)

Assembly 如何解释此地址-0x80(%rbp,%rax,4),assembly,x86-64,att,Assembly,X86 64,Att,我目前正试图通过分析简单的C代码片段来学习汇编语言(以及不同编译器选项的效果)。现在,我艰难地完成了以下说明: mov %edx,-0x80(%rbp,%rax,4) 我不理解的是目标地址的表达式-0x80(%rbp,%rax,4)。 指令将值分配给循环中的本地数组。机器命令将%edx的内容复制到%rbp+4*%rax-0x80给定的地址。似乎%rax保存着该数组的索引,%rbp-0x80是基址 请看一看,以更好地理解AT&T语法 -0x80(%rbp,%rax,4) = *(%rbp + %

我目前正试图通过分析简单的C代码片段来学习汇编语言(以及不同编译器选项的效果)。现在,我艰难地完成了以下说明:

mov %edx,-0x80(%rbp,%rax,4)
我不理解的是目标地址的表达式
-0x80(%rbp,%rax,4)

指令将值分配给循环中的本地数组。

机器命令将
%edx
的内容复制到
%rbp+4*%rax-0x80
给定的地址。似乎
%rax
保存着该数组的索引,
%rbp-0x80
是基址

请看一看,以更好地理解AT&T语法

-0x80(%rbp,%rax,4) = *(%rbp + %rax * 4 + (-0x80))
因此,以下说明:

mov %edx,-0x80(%rbp,%rax,4)

意味着让CPU将寄存器%edx的值移动到地址
(%rbp+%rax*4+(-0x80))
,这是at&T风格的程序集。

感谢您的回答-链接非常有用