Какой режим адресации используется для инструкции MOV AL, ' * '

Я готовлюсь к экзамену и пока не нашел подобных примеров.

Я вижу, что mov al, '*' перемещает символ в регистр, но я не уверен, какой режим адресации используется для этой конкретной функции.


person Amy Krypto    schedule 06.08.2018    source источник
comment
Немедленно (на самом деле это не адресация, так как ничего не адресовано).   -  person Jester    schedule 06.08.2018
comment
Ассемблер преобразует символ в его кодировке (обычно ASCII) в числовое значение (звездочка представлена ​​значением 42). и поскольку цель равна al, числовое значение усекается до 8 бит - все коды ASCII укладываются в 7 бит, поэтому усечение не требуется, но гипотетически, если бы ваш ассемблер работал в другой кодировке, результирующее значение может быть 16 бит (например, для кодировки UCS2) или даже с переменной длиной байта (UTF8). Таким образом, результирующий машинный код идентичен mov al,42, но на уровне исходного кода символ дает больше контекста для чтения исходного кода.   -  person Ped7g    schedule 06.08.2018
comment
@ Ped7g, как написано в заголовке, это mov al, ' * ', поэтому на самом деле вы получите mov al, 32, потому что первый символ в символьной константе — это пробел. Как вы говорите, он усекается до размера операнда. Я предположил, что это не было предназначено, поэтому я поставил mov al, '*' в теле вопроса.   -  person Peter Cordes    schedule 07.08.2018
comment
@PeterCordes Я думал, что это просто избегание курсива кем-то, кто не знает о возможности экранирования звездочки с помощью обратной косой черты, но на самом деле единственная звездочка в теме безвредна ... было бы полезно, если бы ОП уточнил, было ли это al, '*' или действительно вариант с пробелами (мне верится с трудом). Кроме того, это могло быть скопировано вручную из книги / бумаги (а не из исходного редактора), и ОП не понял, что между апострофами и звездочкой нет пробела ... Трудно сказать, но другие люди вряд ли будут искать буквально '*', так что это наверное не имеет значения.   -  person Ped7g    schedule 07.08.2018


Ответы (1)


Когда вы перемещаете литерал в регистр, это называется немедленным режимом.

вот полезный справочник, определяющий наиболее часто используемые режимы в процессорах, используя в качестве примера набор инструкций MIPS.

person David Hoelzer    schedule 06.08.2018