
Архитектура компьютеров / Учебные пособия / Примеры программирования assembler IA-16 / Пример для оформления и отладки программ
.docTASM – Турбоассемблер
Для разработки программы нужно сделать несколько шагов:
-
Создать исходный текст программы (текстовый файл с расширением «asm»)
-
Провести компиляцию исходного файла
Запуск в командной строке: TASM /z /zi /l filename.asm,
где filename – любое имя файла
В результате компиляции создается файл filename.lst и, если нет грубых ошибок,
файл filename.obj (объектный файл, где все команды и данные в компьютерных кодах)
Опция /L - Создать листинг программы.
Опция /Z - выводить исходный текст вместе с сообщением об ошибках
Опция /ZI – дополнительная информация для дебагера (отладчика).
-
Отредактировать объектный файл для получения исполнимого файла (filename. еxe)
Запуск в командной строке: TLINK /v filename.obj
Опция /V – дополнительная информация для дебагера.
Создает файл: filename л.exe и filename.map
-
Если при выполнении компиляции был включен флаг ZI, то «файл.exe» можно загрузить турбодебагер для DOS (TD.EXE) для тестирования программы и для поиска ошибок, не выявленных компилятором.
Для этого нужно в командной строке выполнить команду: TD filename.exe.
Или запустить просто TD.EXE и в открывшемся браузере открыть нужный «exe» файл (Закладка «Файл, открыть»), а в закладке «Вид» открыть нужные вам окна (просмотр содержимого регистров, переменных , …).
Пример программы типа EXE
MODEL TINY или SMALL ; используем только двух байтовые и однобайтовые регистры
.stack 100h ; размер stack 256 байт
.data ; data segment
n1 dw 53 ; описываете переменные в зависимости от условия задачи
x dd 0
и т.д.
.code ; code segment
start:
mov ax,@data ; две обязательных команды для актуализации сегмента данных
mov ds,ax ; set segment register (регистр ds – базовый для сегмента данных)
; *** любые команды, требуемые для решения задачи
mov ax,2344h
mov bx,0EF22h
add ax,bx
add n1,ax
mov ah,4Ch ; Обязательные две команды, для корректного выхода из программы
int 21h ; terminate program (выход из программы в DOS)
end start