Адрес |
Код |
Метка |
Мнемоника |
Операнд |
Комментарии |
8200 |
21 |
START |
LXIH |
00, 80 |
|
8203 |
7Е |
MOV A, M |
|||
8204 |
2В |
INX H |
|||
8205 |
86 |
ADD M |
|||
8206 |
ADI |
10 |
Константа в условии не задана, выбираем = 10 |
||
8208 |
2В |
МЕТКА |
INX H |
||
8209 |
77 |
MOV M, A |
|||
8201 |
Е7 |
RST 32 |
|||
JMP Метка |
08, 82 |
4 – Трансляция заключается в переводе мнемоники в машинный код. Может выполнятся специальными программами или вручную. Необходимо:
1. найти код команды мнемоники по таблицам
2. определить операнды (данные и адреса)
3. установить адреса в памяти для каждой команды и операнда
5 – Числа, содержащиеся в колонке «Код», могут быть введены в систему. Начинается процесс отладки – поиск и устранение ошибок. Программа вводится с известными данными и результат проверяется.
6 – Документировать программу значит дать ее описание, указывающее в какой последовательности должны выполнятся операции с программой. Сюда входят схемы вычислений, списки, данные, используемые программы и комментарии.
Структурное программирование
Согласно основной теореме структурного программирования, алгоритм любой сложности может быть построен с помощью трех управляющих конструкций: следование, цикл, альтернатива.
Управляющая конструкция следования предполагает выполнение команд одна за другой. После выполнения одной команды (оператора), извлекается новая, дешифруется и выполняется. Все процессоры имеют поддержку данной функции, благодаря взаимодействию дешифратора команд и счетчика команд. Дешифрируя команду, дешифратор команд определяет адрес следующей команды и перед началом ее использования записывает адрес в счетчик команд.
Для удобства программирования используют несколько типов циклов:
1. Цикл с предпроверкой – детерминированный цикл, и заранее известно сколько раз он будет исполнен.Задается количество повторений тело цикла. В теле цикла вначале проверяется значение счетчика цикла. Если значение не нулевое, то тело цикла выполняется, счетчик уменьшается на единицу.
2. Цикл с постпроверкой – детерминированный цикл. Проверка выполняется после выполнения тела цикла. Если тело цикла равно 0, то тело цикла выполняется как минимум один раз.
3. Цикл с параметром – недетерминированный цикл. Тело цикла выполняется до тех пор, пока некоторый параметр не будет удовлетворять некоторому условию (метод последовательных приближений).
4. Цикл с выходом из середины – детерминированный цикл, но с возможностью досрочного завершения цикла по некоторому условию.
В Ассемблере нет команд для реализации циклов. Поэтому, при реализации любого типа цикла, используют команды условного перехода. Наиболее просто реализуются циклы с постпроверкой.
Пример: Обнулить 20 ячеек памяти начиная с 8000
LXIH, 8000
MVI C, 20
MVI A, 0
LOOP MOV M, A
INX H
DCR C
JNZ LOOP
Для удобства программирования 3 типа альтернатив: полная, неполная, множественное ветвление.
IF <условие> THEN <действие>
IF <условие> THEN <действие 1> ELSE <действие 2>
На языке Ассемблера нет специальных команд для реализации альтернатив, поэтому необходимо использовать команды сравнения и условные переходы.
Пример: Сравнить содержимое регистров D и F и переслать наибольшее в память.
LXIH 8000
MOV A, D
CMP E
JP THEN
ELSE MOV M, E
JMP NEXT
THEN MOV M, A
NEXT….
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.