Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Топ:
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Интересное:
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Дисциплины:
2017-11-17 | 467 |
5.00
из
|
Заказать работу |
|
|
Здесь code и data – имена сегментов кодов и данных, соответственно, а сегментный регистр es не адресуется по уполчанию.
Режимы адресации
Способ определения операнда называется режимом адресации. Различают следующие режимы адресации.
Регистровая прямая – операнд находится в регистре. Например: mov АХ,SI. Данная запись означает – переслать содержимое регистра SI в регистр АХ.
Непосредственная – непосредственный операнд (константа) присутствует в команде. Например: mov AX, 093Ah – означает: занести константу 093Ah в регистр АХ.
Прямая – исполнительный адрес операнда присутствует в команде. Например, mov AX,WW – означает: переслать в АХ слово памяти с именем WW, а выражение: mov BX,WW+2 переслать в ВХ слово памяти отстоящее от переменной с именем WW на 2 байта.
Регистровая косвенная - регистр содержит адрес операнда. Выражение mov[BX],CL – означает переслать содержимое регистра CL по адресу, находящемуся в регистре ВХ.
Регистровая относительная – адрес операнда вычисляется как сумма содержимого регистра и смещения: mov АХ,WW[SI] – переслать в АХ слово из памяти, адрес которого вычисляется как сумма содержимого регистра SI и смещения WW.
Индексно-базовая – адрес операнда вычисляется как сумма содержимых базового и индексного регистров и смещения: mov [BX+ SI+ 2],CL – переслать содержимое регистра CL по адресу, вычисляемому как сумма содержимого регистров ВХ, SI и константы 2.
Инструкции пересылки данных и двоичной арифметики
Команды данной группы приведены в таблице 2.2. Код определяет выполняемое командой действие, операнды показывают адреса ячеек, хранящих исходные данные, необходимые для выполнения команды и адрес ячейки результата. Процессор i8086 и более поздние версии относятся к двухадресным машинам. Это значит, что его команда может содержать не более двух операндов. Если для выполнения команды необходимо иметь два источника данных, например, сложение, то сохранение результата выполнения команды производиться по адресу одного из источников данных. Чтобы показать, какой из операндов будет хранить результат, его обозначают при описании команды как dst (destination – назначение), операнд, который используется только как адрес исходных данных, обозначается как src (source – источник). В двухоперандных командах операнд dst указывает, перед выполнением команды, адрес исходного данного, а после выполнения – адрес результата.
|
Таблица 2.2. Основные операторы Ассемблера
Мнемокод | Флаги | Действие | ||||||
Код | Операнды | O | S | Z | A | P | C | |
mov | dst, src. | - | - | - | - | - | - | пересылка |
хchg | dst, src | - | - | - | - | - | - | обмен |
add | dst, src | х | х | х | х | х | х | сложение |
adc | dst, src | х | х | х | х | х | х | сложение с переносом |
inc | dst | х | х | х | х | х | - | увеличить на единицу |
sub | dst, src | х | х | х | х | х | х | вычитание |
sbb | dst, src | х | х | х | х | х | х | вычитание с заемом |
dec | dst | х | х | х | х | х | - | уменьшение на единицу |
neg | dst | х | х | х | х | х | х | изменение знака |
rcl | dst,счетчик | х | - | - | - | - | х | циклический сдвиг влево |
rcr | dst,счетчик | х | - | - | - | - | х | циклический сдвиг вправо |
rol | dst,счетчик | х | - | - | - | - | х | циклический сдвиг влево |
ror | dst,счетчик | х | - | - | - | - | х | циклический сдвиг вправо |
sal | dst,счетчик | х | х | х | u | х | х | арифметический сдвиг влево |
sar | dst,счетчик | х | х | х | u | х | х | арифметический сдвиг вправо |
shl | dst,счетчик | х | х | х | u | х | х | логический сдвиг влево |
shp | dst,счетчик | х | х | х | u | х | х | логический сдвиг вправо |
push | src | - | - | - | - | - | - | сохранение слова в стеке |
pop | dst | - | - | - | - | - | - | восстановление слова из стека |
xlat | таблица | - | - | - | - | - | - | трансляция байтов из таблицы |
lea | dst, src | - | - | - | - | - | - | загрузка исполнительного адреса |
lds | dst, src | - | - | - | - | - | - | загрузка указателя с DS |
les | dst, src | - | - | - | - | - | - | загрузка указателя с ES |
lahf | - | - | - | - | - | - | загрузка флагов в АН | |
sahf | - | r | r | r | r | r | установка флагов из АН | |
pushf | х | - | - | - | - | х | сохранение флагов в стеке | |
popf | r | r | r | r | r | r | восстановление флагов из стека |
Примечание:
|
- флажок не модифицируется
х устанавливается или сбрасывается в соответствии с результатом
u не определен
r восстанавливается прежнее запомненное значение
Запись программ на языке ассемблера
В листинге 2.8 приведена типичная структура простой программы на ассемблере.
Листинг 2.8. Пример программы
Data segment;директива начала сегмента данных
D1 dw 34h;переменная d1 имеет размер
;2 байта и содержит значение 52
D2 db 10100110b;переменная d2 имеет размер
;1 байт и содержит значение 166
D3 dd 3 dup (?);массив d3 содержит 3 элемента
;по 4 байта, содержащих случайные
;значения (возможно нулевые)
Data ends;директива конца сегмента данных
|
|
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!