- •Программирование на языке Ассемблер
- •Классификация языков программирования
- •Поколения мп
- •Структура мп 8086
- •Регистры мп
- •Регистры общего назначения
- •Сегментные регистры
- •Регистры смещений
- •Регистр флагов
- •Структура и организация памяти
- •Сегментация памяти и формирование адреса
- •Особенности машинных команд
- •Основные команды мп
- •1.2 Перестановка (exchange):
- •1.3 Загрузка исполнительного адреса (load effective address):
- •3.1 Команды умножения
- •3.2 Команды деления
- •Переходы. Циклы
- •Команды сравнения и условного перехода
- •Команды условного перехода
- •3. Команды управления циклом
- •Язык Ассемблера ibm pc. Структура операторов и директив. Метки, переменные и их атрибуты
- •Команды
- •Директивы
- •Директивы определения данных
- •Конструкция повторения dup
- •Директива dd (define double word, определить двойное слово)
- •Директивы эквивалентности и присваивания
- •Структура программы. Логические сегменты
- •Побитовая обработка и ее основные виды
- •2. Команды сдвига
- •2.1. Логические сдвиги
- •2.2. Арифметические сдвиги
- •2.3. Циклические сдвиги
- •Стек и сегмент стека
- •Стековые команды
- •Пример использования стека
- •Модульное программирование
- •Типы объединения модулей
- •Связь Паскаль-Ассемблер
- •Параметры-значения
- •Параметры-переменные
- •Способы адресации
- •Команды строковых примитивов
- •Сканирование строки: scasb, scasw
- •Приемы обработки структурированной информации
- •Inc si ; к следующей оценке
- •Inc dx ; учет отличника
- •Составление и оформление программ на ассемблере
- •Префикс программного сегмента. Com- и exe-программы
- •Команда прерывания
- •Функции прерывания 21h
- •Процесс разработки программы на языке ассемблера
- •Трансляция программы
- •Компоновка программы
- •Макроповторения
- •Макрооператоры
- •Директива local
- •Директивы условного ассемблирования
- •Директивы if и ife
- •Директивы ifidn и ifdif
Процесс разработки программы на языке ассемблера
Общая схема процесса разработки программы на ассемблере включает 4 этапа.
Ввод исходного текста программы.
Создание объектного модуля.
Создание загрузочного модуля.
Отладка программы.
Трансляция программы
На этапе трансляции осуществляется перевод команд ассемблера в соответствующие машинные команды. В результате трансляции формируются файл объектного модуля и файл листинга.
Объектный модуль включает в себя представление исходной программы в машинных кодах и некоторую другую информацию, необходимую для отладки и компоновки его с другими модулями.
При использовании пакета TASM получение объектного модуля исходного файла производится программой (ассемблером) tasm.exe. Формат командной строки для запуска tasm.exe следующий:
TASM [ключи] имя_исходного_файла [, имя_объектного_файла] [, имя_файла_листинга] [, имя_файла_перекрестных_ссылок]
tasm.exe prg_6_l , , ,
tasm.exe prg_6_l , ,prg_list,
tasm.exe prg_6_l , , n u l ,
Ключ /z разрешает вывод на экран строк исходного текста программы, в которых ассемблер обнаружил ошибки.
Ключ /zi управляет включением в объектный файл номеров строк исходной программы и другой информации, не требуемой при выполнении программы, но используемой отладчиком.
Компоновка программы
Полный формат командной строки для запуска компоновщика:
TLINK [ключи] список объектных файлов [,имя загрузочного модуля] [,имя файла карты] [,имя файла библиотеки] [,имя файла определений] [,имя ресурсного файла]
Отладка программы
Запуск отладчика удобнее производить из командной строки с указанием исполняемого модуля отлаживаемой программы:
td имя_исполняемого_модуля
Запустить программу в отладчике можно в одном из четырех режимов:
Безусловное выполнение (F9).
Выполнение по шагам (F7, F8).
Выполнение до текущего положения курсора (F4).
Выполнение с установкой точек прерывания (F2, F9) .
Макросредства языка ассемблера
Макросредства – средства модификации текста программы во время ее трансляции. Предназначены для облегчения написания программ на языке ассемблера и для улучшения понимания исходного текста программы.
Программа, написанная на макроязыке, транслируется в два этапа.
Этап макрогенерации.
Этап ассемблирования.
Схема взаимодействия элементов макросредств
Макроопределения
Описание макроса, т.е. макроопределение, имеет следующий вид:
<имя макроса> MACRO <формальные параметры>
<тело макроса>
ENDM
Макрокоманды
Обращение к макросу осуществляется через макрокоманду, которая записывается следующим образом:
<имя макроса> <фактические параметры>
После выполнения макроподстановки формируется макрорасширение.
Пример:
Макроопределение
SUM MACRO S1, S2, REZ
PUSH AX
MOV AX, S1
ADD AX, S2
MOV REZ, AX
POP AX
ENDM
Макрокоманда
SUM 5, ALFA, BX
Макрорасширение
PUSH AX
MOV AX, 5
ADD AX, ALFA
MOV BX, AX
POP AX