Example.asm

Assume CS:code, DS:data, SS:stk

; Простая программа на ассемблере

data segment para public "data" ; Сегмент данных

data8 db 7,0dh,0ah,'Привет!',0dh,0ah,'$' ;Код

;консольного писка + сообщение

Data16 dw 65535

Data ends

stk segment para stack "stack" ; Сегмент стека

Db 256 dup (?) ; Буфер для стека

Stk ends

code segment para public "code" ; Сегмент кода

Start:

Mov ax,data ; Адрес сегмента данных в регистр AX

Mov ds,ax ; Запись AX в DS

Mov ax,0 ; Обнуление аккумулятора AX

Inc ax ; Увеличение AX на 1

mov bx,ax ; Пересылка <AX> в BX

Mov ch,data8 ; Пересылка переменной data8 в CH

Mov bp,data16 ; Пересылка переменной data16 в BP

Dec word ptr data16

Call mes

Mov ax,4C00h ; Функция завершения программы

Int 21h ; Функция Dos

Mes proc near ; Процедуры вывода сообщения на экран

Lea dx,data8 ; Загрузка смещения data8 в DX

Mov ah,9 ; Функция вывода строки на экран

Int 21h ; Функция DOS

Ret

Mes endp

Code ends