这些代码行在x86汇编中意味着什么?

时间:2018-10-25 20:23:17

标签: assembly x86 cpu-registers

我不明白这段汇编代码的作用。

for (int m = monthNum; m <= 12; m++) { ... }

我得到了imul和cmp指令的作用,但是我不明白-0x4(%rsp,%rbx,4)和-0x8(%rsp,%rbx,4)的含义。如果需要,我可以提供更多上下文,但是我真正想要的只是这两行的字面翻译。第一行的%eax中存储了什么? %rbx * 4和%rsp的乘积-8?

1 个答案:

答案 0 :(得分:2)

%eax中存储的是-0x8(%rsp, %rbx, 4)%eax的乘积。

-0x8(%rsp, %rbx, 4)是存储器位置%rsp + 4*%rbx - 8的内容。