Расчет размера инструкции вручную - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь узнать, как вручную преобразовать одну инструкцию по сборке в код OP.В качестве примера я смотрю на набор команд PowerPC, который имеет фиксированную длину инструкции 4 байта.Следующий пример написан в моей справке:

One effect of fixed-size instructions is you can't load a 32-bit constant in a single instruction:
li r3, 0xabcdef  ; ERROR!  out of range!

Вот мои вопросы:

1- Как вы рассчитываете длину инструкции?Я предполагаю, что вы сначала нашли код OP li бит в руководстве по PPC?как насчет остальных, r3, 0xabcdef, как вы переводите их в двоичный файл?Как я могу сказать, что длина этого взаимодействия превышает 32 бита?

2 - Предполагая, что 0xabcdef является адресом памяти для int, когда эта инструкция кодируется, ассемблер превращает 0xabcdef в ее фактическуюint значение или кодирует сам адрес памяти?

3- Загружена ли вся эта инструкция в один регистр в CPU перед выполнением?Если да, то почему это может быть проблемой на 64-битной машине?у них нет 64-битных регистров?

...