Структура программы на языке ассемблера. Трансляция, компоновка, исполнение программы. Использование библиотек
;-------------------------------------------------------------------------------------------------------------------------------------------
data segment ; сегмент данных
message db ‘Hello, world!$’ ; определение строки текста,
; символ ‘$’ – признак конца
; печати при выводе на экран
data ends
stk segment stack ; сегмент стека
db 256 dup (?) ; отводим место под стек
stk ends
code segment ; сегмент кода
main: ; метка начала программы
assume cs:code,ds:data,ss:stk
mov ax,data ; заносим в регистр ax сегментную компоненту
; адреса сегмента data
mov ds,ax ; копируем содержимое регистра ax в регистр
; ds, напрямую загрузить информацию в ds в
; данном случае невозможно – это следует из
; режимов адресации
lea dx,message ; загружаем в dx смещение переменной
; message, это делает команда lea
mov ah,09h ; заносим в ah число 9 – для прерывания 21h в
; этом регистре хранится номер функции,
; которую необходимо выполнить; девятая
; функция означает вывод строки, смещение
; которой хранится в регистре dx
int 21h ; вызывается прерывание, происходит вывод
; строки текста
mov ah,4ch ; функция 4ch означает завершение работы
; программы и возврат в систему DOS
int 21h ; вызов прерывания с номером 21h
code ends
end main
;-------------------------------------------------------------------------------------------------------------------------------------------
.model small ; модель памяти small
.data ; сегмент данных
message db ‘Hello, world!$’
.stack 256 ; сегмент стек занимает 256 байтов
.code ; сегмент кода
main:
mov ax,@data ; занесение адреса сегмента данных в
; регистр ax
mov ds,ax
lea dx,message
mov ah,09h
int 21h
mov ah,4ch
int 21h
end main ;конец программы с точкой входа main
;-------------------------------------------------------------------------------------------------------------------------------------------
Turbo Assembler (TASM) — программный пакет компании Borland, предназначенный для разработки программ на языке ассемблера для архитектуры x86. По умолчанию TASM работает в режиме совместимости с другим распространённым ассемблером — Microsoft Macro Assembler, то есть TASM умеет транслировать исходники, разработанные под MASM. Кроме того, TASM имеет режим IDEAL, улучшающий синтаксис языка и расширяющий его функциональные возможности.
Трансляция
Процесс преобразования программы, написанной на одном языке программирования, в программу на другом языке.
Как правило, трансляция – это создание программы в машинных кодах, которую можно выполнять. Трансляция обеспечивает включение библиотечных подпрограмм, модулей, процедур в итоговую программу на машинном языке.
Различают два вида трансляции:
компиляцию, при которой результат получается в виде готовой программы, выполняемой независимо от исходного текста программы;
интерпретацию, при которой трансляция и выполнение программы происходит покомандно.