#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, как правило, имеют их много.