Какие линии управления устанавливаются / устанавливаются на 1, когда вызывается инструкция загрузки двойного слова?
Используя эту диаграмму, я смотрю на эту инструкцию, чтобы определить, какие линии управления необходимы.
дд х5, 40(х9)
x5 = 0x000000ff
x9 = 0x00000fff
Мне любопытно, какие управляющие линии (RegWrite, MemRead, MemWrite, MemtoReg, Branch, Zero, ALUSrc) установлены или установлены в 1 для выполнения этой инструкции, и почему я понимаю, что части инструкции load double должны быть ld RT Дисп (РА) - но что требуется для исполнения и почему? Спасибо - ресурсы на эти вещи (которые имеют смысл для меня) чрезвычайно ограничены в Интернете.
1 ответ
Решение
Это LOAD
инструкция, в которой адрес памяти для чтения рассчитывается путем сложения 40
к содержанию реестра x9
результат сохраняется в регистре x5
,
- Инструкция пишет в регистры, поэтому утверждаю
RegDst
а такжеRegWrite
- Требуется инструкция добавить
40
к содержаниюx5
, ЗадаватьALUSrc
до 1, чтобы выбрать40
как один из источников. - утверждать
MemRead
как его память читать. Также установленоMemtoReg
1, чтобы мультиплексор получал данные из памяти, а не из ALU.