I'm getting a bit confused with this homework i have to do for college, i understand what a register is, why to put some bytes in the memory or in the register, but would be a great help to give me a push on this first exercise:
(Gnu assembly):
| address || Value |
| 0x100 || 0xFF |
| 0x104 || 0xAB |
| 0x108 || 0x13 |
| 0x10C || 0x11 |
| Register|| Value |
| %eax || 0x100 |
| %ecx || 0x1 |
| %edx || 0x3 |
Fill out the following table with the corresponding values for the operands indicated:
| Operand || Value |
| %eax ||
| 0x104 ||
| $0x108 ||
| (%eax) ||
| 4(%eax) ||
| 9(%eax,%edx) ||
|260(%ecx,%edx)||
|0xFC(,%ecx,4) ||
|(%eax,%edx,4) ||
What i can tell by looking at this is that the first operand has the hexadecimal value of 0x100 and is a register, the second one i can't tell because has nothing before, the third operand has a dollar flag, i read it's an immediate operand, can't tell what value it gets.
The 4(%eax) it's probably a memory address with the 4 being the displacement, from this point i have no idea...
I hope i was as clear as necessary to understand what my doubts are, and thanks very much for any help provided.
Kind Regards, Souza.