Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры МПТ 2012 ДИМОН.doc
Скачиваний:
38
Добавлен:
16.04.2019
Размер:
2.02 Mб
Скачать

15. Методика записи программ на ассемблере.

Процы работают с двич.кодами команд и адресов. Для чела это сложно, удобнее работать с мнемокодами, кот-е в своём обозн-и содержат подсказку. Для ввода проги в мнемокодах требуется программа, преобразующая их в двоичные. Эта программа действует как «сборщик» на конвейере. Это Assembler. Если он нах-ся на том же проце, который программируем, то он естественный. Если на другом, более мощном, то Assembler наз-ся cross-Assembler’ом.

Рассмотрим простейшую программу, которая извлекает из ячейки памяти с адресом 0B00, инвертирует его и записывает в ячейку памяти 0В01.

Мнемокод:

LDA 0B00

CMA

STA 0B01

RST 1 // прервать выполнение программы

Адрес

Содерж-е

Комментарий

0800

3А 00 0B

Чтение ячейки 0B00

0803

2F

Инвертировать

0804

32 01 0B

Запись в память

0807

CF

Переход по RST 1

Адрес

Маш.

коды

Метка

Мнемокод

Коммент

0800

DB 20

CNT

IN20

Чт.порта 20

0802

DB 30

OUT30

Выв.в порт 30

0804

03 00 08

JMP CNT

Переход на CNT

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

1. ORG (ORIGIN) формат: ORG <adr16> - определяет адрес ячейки памяти, в которой будет загружаться следующая команда.

2. EQU: формат - [имя] EQU <число>

Ассемблер присваивает символическому имени (идентификатору) конкретное значение, которое подставляет в программу везде, где встречается это имя.

3. SET: формат - [имя] SET <число>

Аналогично предыдущему. Отличие состоит в том, что ее можно использовать несколько раз, т.е. можно переписывать.

4. DB (DEFINE BYTE): формат - [метка] DB <список>

<список> - последовательность выражений, разделенных запятыми имеющих 8 битное значение или цепочка символов, заключенных в апострофы.

5. DW (DEFINE WORD): формат - [метка] DW <список>

Аналогичен предыдущему, но формат 16 битный. Последовательность значений: сначала младший бит, потом старший и далее по списку.

6. DS (DEFINE STORAGE) определить память.

Формат - [метка] DS <выражение>

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

7. END: формат - [метка:] END

Информирует ассемблер о достижении физического конца проги

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]