Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 3 Асемблер для студ..docx
Скачиваний:
6
Добавлен:
14.11.2018
Размер:
69.69 Кб
Скачать

Тема 3.5 Команды управления

Команды этой группы предназначены для управления работой МП.

EI – разрешить прерывание.

DI – запретить прерывание.

Однобайтовые

HLT – останов выполнения текущей программы до тех пор пока не появится запрос на прерывание от устройств ввода вывода.

NOP – пустая операция. Команда используется для организации временных задержек.

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

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

3-х байтовая

JMP ADDR - безусловный переход. Управление передается команде, адрес которой указан во втором и третьем байтах команды перехода. (РС) (ВYTE3)(ВYTE2).

При выполнении команд условного перехода дальнейший выбор одной из последовательности команд зависит одного из четырех флагов: нуля (Z), знака результата (S), четности (P), переноса (C), т. е. сначала проверяется состояние одного из четырех флагов МП на выполнение указанного в команде условия, а затем происходит выполнение команды. При выполнении условия осуществляется переход по новому адресу, в противном случае выполняется следующая команда. Для удобства программирования предусмотрены проверки условий по единичным и нулевым значениям флагов CY (C), Z, S, P. Мнемоника команд условного перехода образуется добавлением буквы J (условие) к названию условия, а затем указывается адрес, куда следует перейти, если условие выполнено.

Все команды 3-х байтовые

Условия переходов приведены в таблице 1

Таблица 1

Условие

Мнемокод команды

NZ – не нуль (Z=0)

JNZ ADDR

Z –нуль (Z=1)

JZ ADDR

NC нет переноса (С=0)

JNC ADDR

С – есть перенос (С=1)

JC ADDR

РО – нечетный результат (Р = 0)

JPO ADDR

РЕ – четный результат (Р = 1)

JPE ADDR

Р – плюс (S = 0)

JP ADDR

M – минус (S = 1)

JM ADDR

Команды вызова подпрограмм и возврата из них, программное прерывание

3-х байтовая

CALL ADDR - безусловный вызов подпрограммы по адресу, загружаемом в программный счётчик;

Однобайтовые

RET - возврат из подпрограммы безусловный;

RST N - вызов подпрограммы прерывания. (N – номер прерывающей программы)

Тема 3.6 Составление программ

Язык ассемблер – это машинно-ориентированное средство программирования. Программа на языке ассемблер называется исходной. Ассемблер транслирует исходную программу в символах в двоичные машинные коды. Такая программа называется объектной, её можно загружать в память для выполнения.

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

  • поле метки;

  • поле кода операции;

  • поле операнда;

  • поле комментария.

Поле метки представляет собой условное имя или набор символов, начинающихся с определенной буквы. После имени метки обязательно ставится двоеточие. Метка присваивается команде в тех случаях, когда при выполнении программы необходимо к ней вернуться (возврат по метке). Имя метки возврата записывается в команде условного и безусловного переходов. Нельзя записывать одинаковую метку в нескольких операторах. Метками помечают только те операторы, на которые есть ссылка из других операторов программы.

Поле кода операции используется для мнемонического обозначения кода операции команды. Мнемоника отделяется от операндов как минимум одним пробелом. Большинство мнемоник – это аббревиатуры английских слов, характеризующих основные функции команды. Соседнее поле справа отделяется минимум одним пробелом.

В поле операнда дается информация о данных, над которыми производятся операции. В качестве операндов используют имена регистров и регистровых пар, метки или непосредственные данные. В командах условных и безусловных переходов в этом поле хранится имя метки возврата.

Поле комментария начинается символом «;». Размещают описание назначения оператора. Это поле имеет вспомогательные функции и используется только программистом при составлении программы.

Все операторы записываются с помощью символов кода ASCII (американский стандартный код для обмена информацией).

При трансляции ассемблер присваивает своему счётчику адреса значение 0800Н; по этому адресу в программе будет расположен первый байт команды или данных.