Как значения, превышающие 4 бита, хранятся в 4-битной сборке?

#assembly #numbers #bit

#сборка #числа #бит

Вопрос:

В последнее время я думал о сборке, и я не могу понять, как значения, превышающие 4 бита, были сохранены и использованы в 4-битной сборке. Мне кажется, что вы сможете использовать значения 0-15 только в 4-битной сборке, но я видел значения, которые явно превышают 15. используемые. Также под 4-битной сборкой я подразумеваю всего 8 бит. 4 для инструкции и 4 для операнда, например 0000 0000.

Комментарии:

1. Вы имеете в виду процессор Intel 4004? В любом случае вы можете создавать числа такой длины, какая будет храниться в памяти, при условии, что арифметические операции с ними используют циклы.

Ответ №1:

Существуют разные решения для кодирования immediates на языках ассемблера:
на машинах CISC инструкции переменной длины обычно позволяют кодировать немедленные действия размером с машинное слово в инструкции, которая, естественно, длиннее машинного слова (код операции немедленное). На RISC-машинах инструкции фиксированной длины обычно препятствуют немедленной загрузке машинного слова. Вместо этого несколько инструкций загружают части немедленного в регистр. Например, в 32-разрядных MIPS загрузка 32-разрядного значения выполняется

 lui $reg, (16-bit immediate upper half)
ori $reg, (16-bit immediate lower half)
  

Использование регистра допустимо, потому что компьютеры RISC, как правило, имеют их много.