0

Я пытаюсь решить эту задачу:Encoding Set Encoding

Вы будете кодировать набор инструкций для процессора с 32 регистрами (R0-R31). арифметико-логических команд в виде:

Ri<-Rj op Rk 

и есть 22 бита доступны для их кодирования.

инструкции Чтение-Запись в виде:

Ri<-memory[Rj+offset] (i,j = 0...31) 
Ri->memory[Rj+offset] (i,j = 0...31) 

и есть 30 битов для их кодирования.

i) Сколько арифметико-логических инструкций вы можете кодировать? ii) Рассчитайте максимальную длину смещения в битах.

Я пытался найти решения, искал часы, но ничего не нашел. Любая помощь была бы потрясающей!

+0

Если вы пытались часами, почему бы не суммировать то, что вы придумали? – Leeor

+0

Потому что я не нашел никакого конкретного решения или что-то, что могло бы помочь. – IrishDog

ответ

1

Если у вас есть 32 регистра в вашей ISA, вы знаете, сколько места занимает каждый спецификатор регистра (по 5 бит каждый). Остальные оставшиеся бит могут использоваться для указания конкретного типа команды («код операции») и немедленного («смещение», в случае инструкций ld/st).

Для регистрации/регистрации требуется 3 спецификатора, поэтому это 15 бит. Остальные биты могут перейти к указанию типа команды.