Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Директива EQU

Читайте также:
  1. Директива о прозрачности обозначает два типа информации, подлежащей раскрытию эмитентами: периодическая (periodic) и текущая (ongoing).
  2. Директива определения байта (DB)
  3. Директива определения десяти байт (DT)

Логические команды

RCL, RCR, ROL, ROR, SHL, SAR, SHR.

Команды сдвига

Арифметические команды ADC, ADD, SBB, SUB.

Команды пересылки и сравнения MOV, СМР.

Непосредственные форматы

Длина непосредственных операндов

Непосредственные операнды

Ранее было показано использование непосредственных операн­дов. Команда:

MOV АХ,0123Н

пересылает непосредственную шест, константу 0123 в регистр АХ.

Трехбайтный объектный код для этой команды есть В82301, где В8 обозначает «переслать непосредственное значение в регистр АХ», а сле-иующие два байта содержат само значение.

 

Многие команды имеют два операнда: перный можем in.i 11, pci истр или адрес памяти, а второй — непосредственная копе-гати.

Использование непосредственного операнда Сюлсч1 н|н|>гктиино, чем определение числовой константы в сегменте данных и препинания ссылки на нее в операнде команды MOV, например,

Сегмент данных: АМТ1 DW 0123H Сегмент кодов: MOV АХ,АМТ1

Длина непосредственной константы зависит от длины мерного операнда. Например, следующий непосредственный операнд является двухбайтовым, но регистр AL имеет только один байт:

MOV AL.0123H (ошибка)

Однако, если непосредственный операнд короче, чем получаю­щий операнд, как в следующем примере

ADD AX,25H (нет ошибки)

то Ассемблер расширяет непосредственный операнд до днух байт, 0025 и записывает объектный код в виде 2500.

Непосредственная константа может быть шестнадцатеричной, например, 0123Н; десятичной, например, 291 (которую Ассемблер кон­вертирует в шест.0123); или двоичной, например, 100100011В (которая преобразуется в шест. 0123). Ниже приведен список команд, которые до­пускают непосредственные операнды:

AND, OR, TEST, XOR.

Для создания элементов, длиннее чем два байта, можно использо­вать цикл или строковые команды.

 

Директива EQU не определяет элемент данных, но определяет значение, которое может быть использовано для постановки в других ко­мандах. Предположим, что в сегменте данных закодирована следующая директива EQU:

TIMES EQU 10

Имя, в данном случае TIMES, может быть представлено любым допустимым в Ассемблере именем. Теперь, в какой бы команде или ди­рективе не использовалось слово TIMES Ассемблер подставит значение 10. Например, Ассемблер преобразует директиву

FIELDA DB TIMES DUP (?) в FIELDA DB 10 DUP (?)

Имя, связанное с некоторым значением с помощью директивы EQU, может использоваться в командах, например:

COUNTR EQU 05 ... MOV CX,COUNTR

Ассемблер заменяет имя COUNTR в команде MOV на значение 05, создавая операнд с непосредственным значением, как если бы было закодировано:

MOV CX.05 ;Ассемблер подставляет 05

Здесь преимущество директивы EQU заключается в том, что мно­гие команды могут использовать значение, определенное по имени COUNTR. В случае, если это значение должно быть изменено, то изме­нению подлежит лишь одна директива EQU. Естественно, что использо­вание директивы EQU разумно лишь там, где подстановка имеет смысл для Ассемблера. В директиве EQU можно использовать символические имена:

1.ТР EQU TOTALPAY

2. MPY EQU MUL

Первый пример предполагает, что в сегменте данных программы определено имя TOTALPAY. Для любой команды, содержащей операнд ТР, Ассемблер заменит его на адрес TOTALPAY. Второй пример показы­вает возможность использования в программе слова MPY вместо обыч­ного мнемокода MUL.

 


<== предыдущая страница | следующая страница ==>
Директива определения десяти байт (DT) | Регистр СХ

Дата добавления: 2014-03-11; просмотров: 407; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.003 сек.