Структура команд ассемблера. Способы адресации микропроцессора, команды пересылки

Страницы работы

Содержание работы

Структура команд ассемблера

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

МЕТКА     ОПЕРАЦИЯ      ОПЕРАНД     КОММЕНТАРИЙ

В поле ОПЕРАЦИИ пишется буквенный код, согласно, первых букв английских слов отожествляющих выполняемую операцию. Этот буквенный код называется мнемокодом

В поле ОПЕРАНДА  команды записывается данные, которые должны участвовать при выполнении данной операции. В зависимости от типа команды поле операнда может содержать:

-  константу  (например, 40Н)

-  адрес операнда (например, 05ЕЕН)

-  адрес операнда (наименование регистра, например, С или любой регистр общего назначения)

-  константу ( например, 11110001В или АВ56Н)

-  адреса двух операндов (например А, В) Операнды разделяются запятой.

В поле МЕТКА – цифра, определяющая адрес ячейки памяти, где расположена команда. При использовании ассемблерных программ  допускается применять символ.

В поле КОММЕНТАРИЯ используется только для удобства чтения программы.

При написании ассемблерных программ следует придерживаться следующих правил:

-  каждая команда пишется с новой строки;

-  поля команды разделяются одним или несколькими пробелами. Пробелы должны выполняться таким образом, чтобы поля команд всегда находились одно над другим и четко выделялись в тексте программы;

-  если метка отсутствует, то это поле остается пустым;

-  после метки требуется ставить двоеточие перед мнемокодом;

-  поле комментария отделяется от поля операнда точкой с запятой.

НАПРИМЕР:

F1 :    MOV           M,A       ;переслать в аккумулятор содержимое ячейки памяти (HL)

INX                H            ;увеличить содержимое регистровой пары на +1

ADD            M            ;сложить аккумулятор с содержимым ячейки памяти (HL)

INX               H            ;увеличить содержимое регистровой пары на +1

JMP               F1            ; перейти выполнять команду по метке F1

Директивы ассемблера

Ассемблирующая программа переводит исходные программы, записанные на языке ассемблера в объектные, которые может читать микро-ЭВМ. Однако ассемблер не знает, в какую ячейку памяти должна быть помещена первая команда, также требуется указать конец программы. Рассмотрим основные директивы ассемблера:

ORG    1000H  (задает ассемблеру адрес ячейки памяти для первой команды, транслируемой программы)

F1        EQU        66H      (символическому имени F1 присвоить операнд 66Н)

END                 (используется для указания окончания исходной программы)

Способы адресации микропроцессора.

Неявная адресация (Регистровая) – команда использует данные, предварительно загруженные в регистр.(MOV   A,B).

Непосредственная адресация – код команды располагается в первом байте, затем в одном или в двух байтах находятся данные (ADI  6A).

Прямая адресация – код команды расположен в первом байте, затем в одном или в двух байтах находится адрес ячейки памяти, где находятся данные (LDA  EF76).

Косвенная адресация – код команды и указание на регистровую пару находятся в одном байте. В регистровой паре находится адрес ячейки памяти, в которой находятся данные (LDAX   B).

Базово индексная адресация – Эффективный адрес равен сумме содержимого базового и индексного регистра, определяемых командой.

Относительно базовая индексная адресация – адрес равен сумме 8 или 16 битного смещения (находящегося в команде) и базово индексного адреса.

Внутрисегментный прямой - Эффективный адрес равен сумме 8 или 16-битного смещения и текущего содержимого  РС.

Межсегментный прямой – Адрес определяется путем замещения содержимого РС одной частью команды и содержимого сегментного регистра CS другой частью команды.

Биты условий – «С» (Carry)  устанавливается и сбрасывается командами сложения, вычитания, сдвига и логическими командами выполненными над данными.

«АС» (Auxiliary carry) устанавливается при появлении переноса из бита 3. Состояние бита не может быть проанализировано программой, за исключением команды десятичной коррекции (DAA)

«S» (Sign) в байте можно представить числа от –12810 до +12710. При этом седьмой бит представляет знак. Он равен 1, тогда байт содержит числа от –12810 до –110 если 0 тогда от 0 до +12710

«Z» (Zero) бит нулевого признака. Он устанавливается, если результат операции равен 0

«Р» (Parity) устанавливается при выполнении некоторых операций путём подсчета числа бит в байте, равных единице.

«IF»  Процессор распознает внешние маскируемые прерывания, когда флажок установлен

«TF»  (Флажок прослеживания) Когда установлен флажок, в этом случае генерируются внутренние маскируемые прерывания после выполнения каждой команды.

Команды пересылки

1.Загрузка аккумулятора (адресация прямая)………………. LDA     A8-1A16-9

Похожие материалы

Информация о работе

Тип:
Курсовые работы
Размер файла:
62 Kb
Скачали:
0