Я немного смущен этой домашней работой, которую я должен сделать для колледжа, я понимаю, что такое регистр, зачем помещать некоторые байты в память или в регистр, но бы большую помощь, чтобы дать мне толчок на этом первом упражнении:Доступ к операндам и операциям из IA32 в Linux
(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 является смещение, с этой точки я понятия не имею ...
Я надеюсь, что я был ясно, как надо понимать, что мои сомнения , и большое спасибо за любую предоставленную помощь.
С уважением, Souza.