Программирование на Ассемблере


Пример программы на ассемблере для 16 битного приложения (DOS приложение)


ideal

MODEL SMALL

DATASEG

; Распределение памяти

X                      DW      5; Исходные данные

Y                      DW      6

Z                      DW      ?; Результат

CODESEG

; Программа

begin:

; Связь с данными

mov     ax,  @data

mov     ds,  ax



; Выполнение требуемых операций

mov     ax, [x]

add      ax,[y]

mov     [z], ax

; Выход из  программы

mov     ax, 4c00h

int        21h

;Конец программы

end      begin

Трансляция, компоновка и загрузка в отладчик программы выполняется с помощью команд:

TASM                   /zi   <Имя>.asm

TLINK        /v    < Имя >.obj

TD                        < Имя >

При написании командного файла предполагается, что программы для обработки файла (tasm, tlink, td) находятся в доступном каталоге. Недостатки приведенного командного файла:

·        несмотря на наличие ошибок, все этапы выполняются;

·        командный файл можно использовать только для работы с заданным файлом (с заданным именем).

Для исправления этих недостатков рекомендуем использовать командный файл:

TASM         /zi   %1

IF ERRORLEVEL 1 GOTO m1

TLINK        /v    %1

IF ERRORLEVEL 1 GOTO m1

TD     %1

:m1

Оператор IF ERRORLEVEL 1 GOTO m1 означает, что выполняется переход на метку m1, если код возврата исполняемой программы равен 1 или выше. Все системные программы возвращают 0 при успешном завершения и число, не равное 0 для завершения с ошибками[1]. Поэтому данная проверка позволяет проверить наличие ошибок при компиляции и компоновке. Обратите внимание на синтаксис записи метки на языке команд операционной системы!



Содержание раздела