Программирование на JAVA

Для назначения константам символических имен предназначена команда EQU, описанная в разделе 5.3. На­пример, команда

NUMBER EQU 25

связывает символическое имя NUMBER с десятичным числом 25. После этого команда

MOV EAX,NUMBER

интерпретируется ассемблером как операция пересылки в регистр ЕАХ непо­средственно заданного операнда NUMBER. С другой стороны, если определить NUMBER как адресную метку, этот же операнд будет интерпретироваться как за­данный при помощи прямого режима адресации.

Во многих языках ассемблера во избежание такой неоднозначности использует­ся специальный символ, например «#», прибавляемый к числу в качестве префик­са для обозначения непосредственной адресации. В языке ассемблера процессоров IA-32 для этой цели могут использоваться квадратные скобки:

MOV EAX,[LOCATION]

Однако если метка LOCATION определена как адресная, квадратные скобки не нужны.

При необходимости интерпретировать адресную метку как непосредственно заданный операнд можно воспользоваться ассемблерной директивой OFFSET. Так, команда

MOV EBX,OFFSET LOCATION

помещает значение адресной метки LOCATION, предположим 1000, в регистр ЕВХ с применением непосредственной адресации


<< назад вперед >>