Должны ли суммированные эффективные адреса «переноситься» в PowerPC? Если так, то как? - PullRequest
2 голосов
/ 22 мая 2011

Например, книга I PowerPC, раздел 3.3.2, определяет инструкцию lbz как:

Пусть эффективный адрес (EA) будет суммой (RA | 0) + D. Байт в памяти, адресованный EA, загружается в RT 56: 63 . RT 0: 55 установлены на 0.

Что мне делать в следующих двух ситуациях?

  • Должен ли я обернуть или сделать что-нибудь, когда (RA) + D > memory_capacity?
  • Должен ли я обернуть или сделать что-нибудь, когда (RA) + D > 4294967295?

Другими словами, эффективный адрес - это просто сумма (RA) + D, или вычисление выполнено mod memory_capacity или mod 2^32-1?

Соответствующий практический материал: каждая строка, которая устанавливает var EA в , этот сценарий .

1 Ответ

3 голосов
/ 23 мая 2011

Из книги Power ISA 2.06, раздел 1.9.3 Расчет эффективного адреса

В 32-битном режиме младшие 32 бита 64-битного результата, которому предшествует 32 0 битсоставляют 64-битный эффективный адрес с целью адресации хранилища.[...] Как используется для адресации хранения, эффективная адресная арифметика, кажется, переходит от максимального адреса, 2 32 -1, к адресу 0, за исключением того, что если текущая инструкция находится на эффективном адресе 2 32 -4 эффективный адрес следующей последовательной инструкции не определен.

...