Разработка и отладка программ для микроконтроллеров (Лабораторная работа № 25), страница 3

;Подпрограмма преобразования двоичного позиционного кода в ;семисегментный код.

;Входной параметр: регистр С – двоичный позиционный код.

;Выходной параметр: регистр А – эквивалентный семисегментный код.

CROSSCOD:       LXI H,TABLE ;Загрузить в HL начальный адрес таблицы

            ;семисегментных кодов

MVI B,0    

DAD B       ;Сложение (HL)¬(HL)+(BC)

MOV A,M

RET         ;В регистре А – семисегментный код

NOP         ;Необязательные команды

NOP         ;(использованы в учебных целях)

TABLE:          DB  3FH     ;Код символа ”0”

DB  06H     ;Код символа ”1”

DB  5BH     ;Код символа ”2”

DB  4FH     ;Код символа ”3”

DB  66H     ;Код символа ”4”

DB  6DH     ;Код символа ”5”

DB  7DH     ;Код символа ”6”

DB  07H     ;Код символа ”7”

DB  7FH     ;Код символа ”8”

DB  6FH     ;Код символа ”9”

RET

END         ;Конец программного модуля

Текст программы разместите в файле с именем crosscod.asm. С этой целью нажмите комбинацию клавиш Shift-F4. В открывшемся диалоговом окне запишите имя создаваемого файла. При наборе программы следует придерживаться следующих рекомендаций:

1.  Метки в программе должны обязательно начинаться с 1-ой позиции курсора.

2.  Хотя программы, использующие DOS, в большинстве случаев не различают букв верхнего и нижнего регистров клавиатуры (т.е. H и h воспринимаются одинаково), рекомендуется метки, команды и имена регистров записывать заглавными буквами, как это принято в учебной литературе.

3.  С целью экономии времени можно не набирать комментарии.

Набранную исходную программу необходимо оттранслировать (перевести в машинные коды микропроцессора) с помощью программы-транслятора. Эта программа находится в файле as85.exe. Процесс трансляции (ассемблирование) может производиться в двух режимах:

1)  в диалоговом режиме;

2)  в режиме командной строки.

В диалоговом режиме программа выдает на экран компьютера несколько подсказок, на которые требуется ответить. Рассмотрим процесс ассемблирования программы, записанной в файле crosscod.asm.

1.  На панели DOS-навигатора с помощью курсора выбираем файл as85.exe и нажимаем клавишу Enter (Ввод). Программа выдает первую подсказку:

Listing Destination (N,T,D,E,L,P,<CR>=N):

Это сообщение определяет вид устройства, на которое будет выводиться листинг программы:

N – листинг не выводится;

T – вывод на терминал (экран компьютера);

D – диск (вывод в файл);

P – вывод на принтер;

<CR> означает Enter (возврат каретки).

Наберите букву Т и нажмите Enter.

2.  Следующая подсказка:

Input Filename:

Необходимо напечатать имя входного файла. По умолчанию можно не вводить расширение .asm. Напечатайте  crosscod и нажмите Enter.

3.  Следующая подсказка:

Output Filename:

Компьютер запрашивает имя выходного файла. Этот файл должен иметь расширение .obj. Если имя выходного файла совпадает с именем входного (что обычно и имеет место), то следует просто нажать клавишу Enter.

После этих действий произойдет запуск ассемблирующей программы и на экране появятся сообщения ассемблера. В начале выводится заголовок, затем листинг программы и в конце – информация о числе строк и количество ошибок при трансляции. Ассемблирование считается успешным, если появится сообщение:

Assembly Errors: 0.

Переключение экрана с панели DOS-навигатора на сообщение DOS выполняется клавишей Esc.

Листинг программы обычно не помещается на экране и в результате виден только конец текста. Поэтому приходится выводить текст на экран по частям. Для этого после запуска транслятора нужно следить за экраном дисплея. При заполнении его примерно на 2/3 нужно нажать на клавишу Pause, что прервет вывод на экран. Прочитав текст, можно продолжить ассемблирование, нажав клавишу Enter.

Если программа-ассемблер выдает сообщения об ошибках, их нужно исправить в режиме редактирования исходного файла.

Задание. Выполните ассемблирование программы crosscod.asm без вывода листинга программы.

Для запуска программы ассемблера в режиме командной строки необходимо ввести в командную строку DOS имя программы-ассемблера и имя исходного файла. В простейшем случае, когда не требуется вывода листинга программы, и имя выходного файла совпадает с именем входного файла командная строка должна выглядеть следующим образом: