Какие линии управления устанавливаются / устанавливаются на 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,

  1. Инструкция пишет в регистры, поэтому утверждаю RegDst а также RegWrite
  2. Требуется инструкция добавить 40 к содержанию x5, Задавать ALUSrc до 1, чтобы выбрать 40 как один из источников.
  3. утверждать MemReadкак его память читать. Также установлено MemtoReg 1, чтобы мультиплексор получал данные из памяти, а не из ALU.
Другие вопросы по тегам