Как в 32бит процессоре архитектуре RISC обрабатывается команда jmp 32bit_адрес если шина 32бит?

Как влезает команда+адрес(из 32 битов) в 32 бит
Я понимаю, как приходит команда, декодируется, потом ищет операнды, как работает конвеер, почти все понятно на 90%.
Но не могу понять, как перейти в 32битной системе по 32 битному адрессу, если нужно минимум 4-12 битов на саму команду(jmp jne....), соответственно в разных форматах остается от 20 и менее байтов, дак как в эти 20 байтов передать 32 битный. именно напрямую, как в рабочих кодах jmp 0x00_00_00_ff(jmp метка), а не через регистры( jmp ebx с ними то понятно).

Фот всеx форматы.
Форматы машинных команд
Формат 32-битной машинной команды (признаки — младшие биты всегда «11» и 2-4 биты ≠̸ «111»)

Тип 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Регистр/регистр funct7 rs2 rs1 funct3 rd код операции 1 1
С операндом ± imm[10:0] rs1 funct3 rd код операции 1 1
С длинным операндом ± imm[30:12] rd код операции 1 1
Сохранение ± imm[10:5] rs2 rs1 funct3 imm[4:0] код операции 1 1
Ветвление ± imm[10:5] rs2 rs1 funct3 imm[4:1] [11] код операции 1 1
Переход ± imm[10:1] [11] imm[19:12] rd код операции 1 1
https://ru.wikipedia.org/wiki/RISC-V
  • Вопрос задан
  • 234 просмотра
Пригласить эксперта
Ответы на вопрос 2
Примерно также, как восьмибитные процессоры обрабатывают многобайтовые команды :)
Размер команды не ограничивается машинным словом.
Ответ написан
15432
@15432
Системный программист ^_^
В imm команде с операндом в самой команде прыжок чаще всего относительный, и этого в большинстве случаев хватает. Абсолютные прыжки берут значение адреса куда прыгать из некоторого регистра или данных
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы