Как в 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
  • Вопрос задан
  • 226 просмотров
Пригласить эксперта
Ответы на вопрос 2
vabka
@vabka
Токсичный шарпист
Примерно также, как восьмибитные процессоры обрабатывают многобайтовые команды :)
Размер команды не ограничивается машинным словом.
Ответ написан
15432
@15432
Системный программист ^_^
В imm команде с операндом в самой команде прыжок чаще всего относительный, и этого в большинстве случаев хватает. Абсолютные прыжки берут значение адреса куда прыгать из некоторого регистра или данных
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы