Декодирование многодлинных кодов операций (SPU ISA)
Я произвел дамп 32-битных инструкций в шестнадцатеричном виде из ассемблера, который я реализовал. Подмножество дампа инструкций показано ниже:
Коды операций для команд имеют длину 4, 7, 8, 9 и 11. Они всегда являются первыми битами в инструкции. У меня проблемы с пониманием того, как я буду декодировать инструкции, если коды операций имеют разную длину?
Например: когда я читаю одну инструкцию, как я узнаю, сколько бит я должен прочитать для кода операции?
Вот изображение форматов инструкций:
Спасибо
1 ответ
Решение
Я понял. Я прочитал максимальное количество битов кода операции (11) для всех инструкций и игнорирую биты, которые не имеют смысла (то есть биты, которые не приведут к возможному коду операции).