- •I. Задание на курсовой проект
- •1. Тематика курсового проекта
- •2. Задание и общие требования к выполнению
- •II. Методические указания к выполнению курсового проекта
- •1. Требования к блок-схеме алгоритма
- •2. Составление блок-схемы алгоритма и программы
- •3. Пример выполнения курсового проекта
- •3.1. Общая постановка задачи
- •3.2. Распределение памяти
- •3.3. Составление структурной схемы алгоритма решения задачи и программ
- •Программы вычислений на языке ассемблера и в машинных кодах
- •3.4. Замечания к примеру курсового проекта
- •Задание на курсовой проект Тема проекта: «Микропроцессорное устройство обработки информации
- •Основные директивы ассемблера
- •Основные приемы программирования
- •1. Организация счета
- •2. Организация временной задержки
- •3. Сложение и вычитание чисел
- •4. Умножение и деление
- •5. Организация массивов, очередей и стеков
- •5.1. Массивы
- •5.2. Очередь
- •5.3. Стек
- •6. Подпрограммы
- •Ассемблирование вручную
Ассемблирование вручную
Ассемблирование — это процедура перевода программы на языке ассемблера в программу на машинном языке. Обычно это осуществляется специальной ассемблерной программой, но если она отсутствует, приходится составлять программу на машинном языке вручную. При этом целесообразно вначале написать программу на ассемблере, а затем перевести ее в машинные коды, так как прямое написание программы в машинных кодах обладает рядом недостатков. В частности, ассемблирование вручную снижает количество ошибок.
При этом следует несколько расширить стандартный бланк ассемблера, добавив поле абсолютных 16-ричных адресов и поле машинного кода:
Адрес |
Машинный код |
Метка |
Код |
Операнд |
Комментарий |
Пример (фрагмент примера курсового проекта):
Адрес |
Машинный код |
Метка |
Код |
Операнд |
Комментарий |
|
|
|
ORG |
0000H |
|
0000 |
31 00 84 |
M0: |
LXI |
SP, 8400H |
|
0003 |
21 0A 80 |
|
LXI |
H, 800AH |
|
0006 |
AF |
M1: |
XRA |
A |
|
0007 |
77 |
|
MOV |
M, A |
|
0008 |
3E 01 |
|
MVI |
A, 01H |
|
000A |
2D |
|
DCR |
L |
|
При ассемблировании вручную нужно учитывать, что каждая строка ассемблера (кроме строк с директивами) соответствует одной машинной команде. Машинные команды могут иметь длину 1…3 байта (см. табл. 5), что необходимо учитывать при заполнении 16-ричными кодами столбца «машинный код», а затем «адрес».
Когда в строке имеется мнемоника команды, в столбец «машинный код» заносится значение, найденное по таблице кодов операций МП (см. табл. 6).
Если в поле операнда команды имеется числовой непосредственный операнд, в столбец «машинный код» заносится его 16-ричный эквивалент.
Первым записывается код операции, а если команда содержит больше 1 байта, сначала записывается младший байт операнда, а затем — старший.
