• Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта
  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом

Главное меню

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



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

Программирование микропроцессора 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

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