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