#cpu-architecture #machine-code #instruction-set #immediate-operand
#архитектура процессора #машинный код #набор инструкций #немедленный операнд
Вопрос:
Предположим, что компьютер с 16-разрядной памятью и 16-разрядной шиной данных и адресов. Итак, если инструкция имеет 16-разрядную форму, допустим, код операции занимает 6 бит, а операнд занимает оставшиеся 10 бит. В режиме прямой адресации адрес памяти операнда указывается в самой инструкции. Итак, как указывается 16-разрядная ячейка памяти внутри 10-разрядного операнда инструкции. Кодируется ли адрес каким-либо образом или одна инструкция хранится в нескольких ячейках памяти? Извините, если мой вопрос кажется глупым.
Комментарии:
1. Как правило, это невозможно. Если вам нужен абсолютный адрес, использующий полное адресное пространство, вам нужно поместить его в регистр и использовать этот регистр в качестве указателя.
2. Спасибо за быстрый ответ, я не ожидал, что кто-нибудь ответит на мой вопрос. Итак, мы можем использовать абсолютную адресацию только для адресов, которые занимают меньше или равны 10 битам, верно?
3. Это зависит от компьютера. Например, в pdp-11 одна команда занимает от одного до трех слов, в зависимости от того, нет ли ни одного, одного или двух адресов памяти. Технически, я полагаю, вы бы сказали, что это была косвенная или индексированная адресация, но не так, чтобы вы действительно заметили как программист.
MOV R1,FOO
означаетMOV R1,disp(R7)
, где ‘disp’ хранится во втором слове этой инструкции из 2 слов, а R7 является счетчиком программ.