Структура программы на языке ассемблера. Трансляция, компоновка, исполнение программы. Использование библиотек

;-------------------------------------------------------------------------------------------------------------------------------------------

 

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, улучшающий синтаксис языка и расширяющий его функциональные возможности.

Трансляция

Процесс преобразования программы, написанной на одном языке программирования, в программу на другом языке.

Как правило, трансляция – это создание программы в машинных кодах, которую можно выполнять. Трансляция обеспечивает включение библиотечных подпрограмм, модулей, процедур в итоговую программу на машинном языке.

Различают два вида трансляции:

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

интерпретацию, при которой трансляция и выполнение программы происходит покомандно.