Подпрограммы
Макрокоманды
Пременные
Определение символьного имени
Формат оператора
Каждый оператор языка ассемб заним отдельн строку и имеет формат
Поле_метки (:, )) поле_операции операнды коммент (Имя) (,) (;)
Операции делятся на 2 группы
1) машиннные команды вход в сост сист команд процессора
2) псевдокоманды ассемб (директивы) в общем случ псевдоком не имеют машиннного кода они использ для управл процес трансляции
Нужно различать символьные имена и цифры.
Если использ 16-ая СС в котор задейств буквы от A до F то перед этой цифрой надо постав 0 (01А8В)
Имена начин с букв и разреш символов.
Когда запис цел числа то в конце став условный знак СС: 12d – в 10СС принято по умолчанию(28о-в 8СС, 3Вh-в 16СС, 101b-2CC)
Для определ символ имен использ выраж:
Имя EQU выражение (число, строкасимволов, псевдоним)
В качестве выражен может использ такие выраж, кот на этопе трансляц выр в число
X equ 5
mes equ ‘сообщение’
Addr x equ dword ptr[bp+6]
Вместо equ можно использ = для числен выражен котор не измен.
Имена опред через equ можно переопределить.
-именованные области памяти для хранения данных.
Переменные имеют след атрибуты: сегмент, смещение, тип
Для опред псевдоимен: имя (db,dw,dd,…) выражение
Array x db 5,6,7,8,9
Messag db ‘error’
X db ? – резерв памяти под переменн
z db 10 dup (0)
y dw 1,2,3
0 рост адресов→
|1|0|2|0|3|0
Тип переменной можно изменит 2-мя способами
1) x dd 1234h
mov al, byte ptr x
2) x byte lable byte
x dd ?
для изменения сегмента использ префиксы замены сегмента
mov al, es:[bx] mov cx, ss[bp+4]
последовательность команд которая объявл специальн образом имеет имя и может иметь формальные парамет
объявление макроком машинного кода не имеет
в исх тексте прогр принеобход использ указ ее имя с фактич параметр. На этапе трансляции ассембл производ макрорасшир, т.е. вставляет вместо макрообращ последов команд и замен формальн парам фактич
имя macro формальные парам
local метки
последов команд
endm
– память ↑, + быстро работ
Если в макроком использ метки то они должны быть объявлены локальными. При объявл меток локальн ассембл созд новые метки
– хранятся в памяти только 1 раз в отлич от макроком. Вызов и возврат из подпрогр производ во время выполн программы
Имя proc тип (near, far)
Послед команд
Имя endp
Для передачи парам в подпрогр испрольз след способы
1) через регистр процессора (при выз MS DOS и BIOS) 2) через общую память 3)через стек (использ при выз функц Windows и в языках выс уровня)
Пример far(F+)
(a:byte,b:word, c:string): string
Тест проц:
push bp
mov bp sp…
pop bp
ret 8