13.) CMP <A, … , M> – команда сравнения
При выполнении команды происходит вычитание из содержимого А второго операнда, меняется содержимое регистров признаков, а разность вычитаний не запоминается.
Циклические сдвиги
1.) RLC – циклический сдвиг влево
2.) RAL – сдвиг влево с переносом
3.) RRC – циклический сдвиг вправо
4.) RAR – сдвиг вправо с переносом
Все команды имеют варианты с непосредственной адресацией, т. е. когда после кода команды идет операнд в виде константы.
Команды передачи управления
Бывают следующих типов: переход, переход, вызов подпрограммы и возврат из подпрограммы. Команды бывают условные и безусловные. Безусловная команда выполняется всегда, а условная выполняется только при определенном значении заданного бита в регистре признаков. В противном случае команда игнорируется процессором, и начинает извлекаться и исполняться следующая команда.
Переход |
Вызов подпрограммы |
Возврат из подпрограммы |
||
Безусловные |
JMP |
CALL |
RET |
|
Условные |
Ноль Не ноль |
JZ JNZ |
CZ CNZ |
RZ RNZ |
Перенос Копирование |
JC JNC |
CC CNC |
RC RNC |
|
Положительное Отрицательное |
JP JM |
CP CM |
RP RM |
|
Четное Нечетное |
JE JO |
CE CO |
RE RO |
Команды CALL и RET применяют при обращении к подпрограммам - многократно повторяющимся частям основной программы. Каждый раз, когда процессор получает для исполнения команду CALL, содержимое счетчика команд заносится в стэк, а управление передается по адресу, указанному в двух- и трехбайтной команде. Команда RET загружает в счетчик команд данные из стэка. Таким образом, управление передается основной программе.
Управляющие команды
Предназначены для управления работой микропроцессорной системой в целом.
DI – запрет прерываний
EI – разрешение прерываний
RST – вызов прерывания
NOP – команда редактирования
HLT – остановка программы
Программирование на языке Ассемблера
Этапы развития программы:
1. анализ задачи
2. разработка блок-схемы
3. разработка программы на Ассемблере
4. трансляция в машинный код
5. запуск на решение и отладка
6. документирование
1 – Формализация технического задания (формулы, схемы вычислений, сети Петри, диаграммы состояний). В зависимости от сложности задачи должна быть выбрана платформа (ПК, кластер, микроконтроллер, центральный процессор, и т. д.).
2 – По алгоритму основная задача разделяется на ряд более простых задач (программа разделяется на подпрограммы). У каждой подпрограммы должна быть только одна точка входа и одна точка выхода. Необходимо принять решение о том, каким образом будут передаваться аргументы, а каким образом будут получаться результаты (через регистры, через таблицы памяти или через стэк). Полученные подпрограммы могут быть также разделены на подпрограммы более низкого уровня. Так делается до тех пор, пока алгоритмы каждой подпрограммы не станут очень простыми и понятными.
Например:
Необходимо сложить два числа из памяти, результат разместить в памяти.
Такая блок-схема не содержит адекватных деталей, которые позволяют перевести ее в сегмент программы на Ассемблере или на машинном языке.
Каждому блоку такого алгоритма соответствует команда на Ассемблере, поэтому его очень просто перевести в программу.
3 – Составляются в виде таблиц, колонки которых имеют следующие значения:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.