Я изучаю язык ассемблера и не могу решить проблему самостоятельно.Дополнительная инструкция по добавлению
Предположим следующие значения сохраняются по указанным адресам памяти и регистров:
Теперь мы имеем команду:
ADDL %ecx
, (%eax)
.
Для меня это среднее значение результата сохранения значений, хранящихся в% ecx, со значением, хранящимся в адресе памяти (% eax), в адресе памяти (%eax)
.
Правильный ответ для этого упражнения: Значение 0x100 и адрес назначения 0x100.
Я понимаю, что правый операнд - это адрес назначения, но как мы получили значение 0x100 при расчете %ecx
+ (%eax)
?
Эта инструкция выглядит как инструкция Intel с синтаксисом AT & T (это помогло бы определить, что в вопросе, потому что в противном случае операнды обратные!). Это означает, что 0x01 (значение ecx) добавляется к 0xFF, уже присутствующему по адресу 0x100. В чем проблема? – Damon
@ Дамон, я все понимаю сейчас, спасибо! Моя проблема заключалась в том, что я пытался добавить 0x100 + 0x1 –