Главное меню

Карта сайта
Главная
Курсовые работы
Отчеты по практикам
Лабораторные работы
Методические пособия
Рефераты
Дипломы
Лекции



Лабораторные и практические работы по микропроцессорам

Программирование микропроцессора 8080

Исходные тексты программ создаются на языке ассемблера микропроцессора i8080 (КР580ВМ80) в любом текстовом редакторе с ASCII кодировкой и сохраняются в файле с расширением *.asm. Для компиляции в машинные коды используется кросс ассемблер. В результате работы кросс ассемблера входной текстовый файл с расширением *. asm компилируется в т.н. абсолютный объектный файл с расширением *. obj, содержащий последовательность машинных кодов (инструкций), начальный физический адрес которого задан директивой ассемблера " ORG". Одновременно формируется файл листинга с расширением *.lst для получения информации о результате компиляции, в частности о наличии синтаксических ошибок.

При подготовке исходного текста программы необходимо придерживаться правил синтаксиса для данного ассемблера.

Программа на языке ассемблера состоит из строк, длина которых не более 255 символов. Каждая строка может быть:

  • строкой программы, содержащей команду или директиву ассемблера;
  • пустой строкой;
  • трокой комментария.

Ассемблер не различает прописных и строчных латинских букв: [ A..Z] = [a.. z]. Рекомендуется в программе пользоваться латинским алфавитом, а в комментариях – латинским или русским по предпочтению.

Строка программы имеет вид:

метка: команда/директива операнды ;комментарий

Исключение составляет директива EQU, строка с которой имеет вид:

символическое имя EQU константа/символическое имя ;комментарий

Поля метки, команды или директивы, операндов и комментария должны разделяться хотя бы одним символом пробела или табуляции, например:

HERE: LXI H,array ;Адрес массива array в пару HL

Метка, также как символическое имя, последовательность от 1 до 6 символов, букв или цифр, начинающаяся с буквы (без пробелов), например:

Jump или Loop01

Метка, стоящая слева от команды или директивы (кроме EQU), должна оканчиваться двоеточием, например:

Loop01:

Исключение составляет символическое имя в директиве EQU, например:

Loop01 EQU 0FFh ;Loop01 = 00FF

Определение символического имени – присвоение ему значения путем указания слева от команды/директивы или директивой EQU.

Нельзя указывать метку слева от директив ORG и END. Эти директивы ассемблера являются обязательными.

Команда – одна из допустимых команд микропроцессора i8080. В данном компиляторе не поддерживаются команды, не имеющие практического смысла и реализации в микропроцессоре: MOV A,A; MOV B,B; MOV C,C; MOV D,D; MOV E,E; MOV H,H; MOV L,L.

Директивы ассемблера:

  • ORG - задание начального адреса программы;
  • END - конец программы;
  • EQU - присвоение значения символическому имени;
  • DB - резервирование 1 байта в коде программы;
  • DW - резервирование 2 байтов в коде программы;
  • DS - резервирование n байтов в коде программы.

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

Синтаксис директив ассемблера:

ORG константа/символическое имя ;комментарий

При использовании символического имени оно должно быть определено выше директивой EQU, например:

метка EQU константа/символическое имя ;комментарий

метка: DB константа/символическое имя ;комментарий

метка: DW константа/символическое имя ;комментарий

метка: DS константа/символическое имя ;комментарий

END;комментарий

Операнды – один или два, в зависимости от синтаксиса команды. Операнды должны разделяться запятой, например:

MOV A, B

Операнды могут быть:

- символическим именем, допускаемым синтаксисом команды, например:

ORAM

RST 0

- символическим именем, определенным в программе, например:

CPITEST

- константой в десятичной, шестнадцатеричной или двоичной системе счисления, например:

MVIA, 10101010b

Если команда предполагает однобайтовый непосредственный операнд, то используется младший байт указанной константы или определенного символического имени.

Константы могут быть:

  • двоичные – состоят из цифр [0,1], оканчиваются суффиксом "b": 1001001001001001b или 1111 B
  • десятичные – состоят из цифр [0..9], оканчиваются суффиксом "d": 80d или 65535D
  • шестнадцатеричные – состоят из цифр [0..9], символов [A,B,C,D,E,F], оканчиваются суффиксом " h", первый символ – цифра: 750h или 0FFFFH
  • ноль, 0

Поле комментария должно быть последним и начинаться символом ";". Строка комментария должна начинаться символом ";" и далее может содержать любые символы. Пустая строка может содержать символы табуляции и пробелы.