0
我对这个为大学做的家庭作业感到有点困惑,我明白寄存器是什么,为什么要把一些字节放在内存或寄存器中,但是将是一个很大的帮助,让我对这个第一个练习一推:在Linux中从IA32访问操作数和操作
(GNU组件):
| address || Value |
| 0x100 || 0xFF |
| 0x104 || 0xAB |
| 0x108 || 0x13 |
| 0x10C || 0x11 |
| Register|| Value |
| %eax || 0x100 |
| %ecx || 0x1 |
| %edx || 0x3 |
下表填写与操作数的对应值表示:
| Operand || Value |
| %eax ||
| 0x104 ||
| $0x108 ||
| (%eax) ||
| 4(%eax) ||
| 9(%eax,%edx) ||
|260(%ecx,%edx)||
|0xFC(,%ecx,4) ||
|(%eax,%edx,4) ||
我可以看出这是第一个操作数的十六进制值为0x100并且是一个寄存器,第二个我不能说因为之前什么也没有,第三个操作数有一个美元标志,我读这是一个直接的操作数,不能说出它得到的值。
4(%EAX)它可能是一个内存地址与4作为位移,从这个角度我不知道......
我希望我能像必要的,因为清楚地明白我的疑惑是,非常感谢您提供的帮助。
亲切的问候, 索萨。