How to interpret this address -0x80(%rbp,%rax,4)

assembly, att, x86-64

Solution

The machine command will copy the content of `%edx` to the address given by `%rbp + 4 * %rax - 0x80`. It seems `%rax` is holding the index to that array and `%rbp - 0x80` is the base address.

Take a look here to get a better understanding for the AT&T syntax.

Problem

I'm currently trying to learn assembly language (and the effects of different compiler options) by analyzing simple C code snippets. Now I stumpled across the following instruction: ``` mov %edx,-0x80(%rbp,%rax,4) ``` What I do not understand is the expression for the target address `-0x80(%rbp,%rax,4)`. The instruction assigns a value to a local array in a loop.

Original source