2.2. Пример программы на Ассемблере
; lab1.asm - упрощенная версия учебной программы
; по дисц. "Программирование"
; *****************************************************************
; Назначение: Программа формирует и выводит на экран приветствие
; пользователя с помощью функции ДОС "Вывод строки"
; (номер 09 прерывание 21h), которая:
; - обеспечивает вывод на экран строки символов,
; заканчивающейся знаком "$";
; - требует задания в регистре ah номера функции=09h,
; а в регистре dx - смещения адреса выводимой строки;
; - использует регистр ax и не сохраняет его содержимое.
; ******************************************************************
.MODEL SMALL ; Модель памяти-SMALL(Малая)
.STACK 100h ; Отвести под Стек 256 байт
.DATA ; Начало сегмента данных
Grt DB 'Вас приветствует ст.гр.8811 - Иванов И.И.',13,10,'$'
; Текст приветствия
.CODE ; Начало сегмента кода
Main: mov ax,@data ; Загрузка в DS адреса начала
mov ds,ax ; сегмента данных
mov dx,OFFSET Grt ; Загрузка в dx смещения
; адреса текста приветствия
DisplayGreeting:
mov ah,9 ; # функции ДОС печати строки
int 21h ; вывод на экран приветствия
mov ah,4ch ; # функции ДОС завершения программы
int 21h ; завершение программы и выход в ДОС
END main
3. Порядок выполнения работы
Загрузить файл lab1.asm, просмотреть программу и разобраться в структуре и реализации сегментов.
Строку-приветствие преобразовать в соответствии со своими личными данными.
Протранслировать программу с помощью команды
> tasm имя_файла.asm
c созданием объектного файла и файла диагностических сообщений (файла листинга). Объяснить и исправить синтаксические ошибки, если они будут обнаружены транслятором.
Повторить трансляцию программы до получения объектного модуля.
4. Скомпоновать загрузочный модуль с помощью строки
> tlink имя_файла.obj
5. Выполнить программу в автоматическом режиме путем набора строки
> имя_файла.exe
и убедиться в ее работоспособности.
6. Включить в программу вывод еще одной строки-сообщения с любым текстом по аналогии с выводом строки-приветствия и присвоить ей имя My_program.asm. Протранслировать, скомпоновать загрузочный модуль и выполнить прогон программы My_program в автоматическом режиме.
7. Выполнить программу My_program в пошаговом режиме под управлением отладчика:
> td имя_файла.exe
с фиксацией содержимого используемых регистров и ячеек памяти до и после выполнения команды. Записать содержимое всех регистров процессора перед выполнением 1-ой команды.
Результаты прогона программы под управлением отладчика должны быть представлены в виде, показанном на примере одной команды в табл.
