我对我必须为大学做的这项家庭作业感到有些困惑,我了解寄存器是什么,为什么要在内存或寄存器中放置一些字节,但对我推动这一点会有很大帮助第一个练习:
(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 是位移,从这一点上我不知道......
我希望我尽可能清楚地了解我的疑问,并非常感谢您提供的任何帮助。
亲切的问候,苏萨。