22
Model direktivinin formatı aşağıdakı kimidir:
MODEL [modelin_modifikatoru] model [, dil]
[, əlaqənin_modifikatoru]
Göründüyü kimi Model direktivinin məcburi parametri yaddaş modelidir.
Bu parametr proqram modulu üçün yaddaşın seqmentləşmə modelini təyin
edir. Aşağıdakı cədvəldə yaddaş modeli üçün Model direktivinin operandları
verilmişdir. Bu operandlar proqramın seqmentlər yığımını, kodlar və verilənlər
seqmentlərinin ölçüsü və seqmentlərin seqment registrləri ilə əlaqəsini təyin
edir.
Seqmentlərin sadələşdirilmiş modelindən istifadə olunmasına aid
məsələnin proqramına baxaq:
MASM ; TASM iş rejimi: ideal və ya tasm
MODEL SMALL ; yaddaş modeli
. STACK 100h ; stek seqmenti (və ya növbəti iki sətr
; eyni mənalıdır)
; STACK
; DB 256 DUP (?)
.DATA ;verilənlər seqmenti
message DB “ Bu proqramı TD.exe sazlayıcısı ilə yoxla”,’$’
Perem_1 DB 0FFh
Perem_2 DW 3A7Fh
Perem_3 DD 0F54D567Ah
Mas DB 10 DUP (“ “)
Adr DW Perem_3
Adr_full DD Perem_3
Fin DB “proqramın verilənlər seqmentinin sonu $”
.CODE ;kodlar seqmenti
START:
MOV AX, @DATA ; verilənlər seqmentinin
; ünvanını AX yükləmək
MOV DS, AX ; AX->DS
MOV AH, 09h
MOV DX, OFFSET message
INT 21h
MOV AX,4C00h ; 4C00h ->AX
INT 21h ; 21h nömrəli kəsilmənin çağrılması
END START
Dərs_6_ Xarici göstərişlərin direktivləri
Xarici göstərişlərin direktivləri
Bu direktivlər başqa proqram modullarında yerləşən verilənlərdən istifadə etməyə imkan
verir. Əgər hər hansı bir verilənə bu proqram ilə eyni vaxtda yüklənən bütün
proqram
23
modullarından müraciət olunmasını istəyiriksə onda onu
Public direktivində aşağıdakı kimi
təyin etməliyik:
Public < ad > [ ,... ]
Burada
ad – dəyişənin adı, nişan və ya EQU direktivləri ilə təyin edilmiş
identifikatordur.
Bu proqram ilə eyni vaxtda yüklənmiş bütün proqram modullarında
Public
direktivlərində təyin edilmiş verilənlərə müraciət üçün onlar
Extrn direktivində aşağıdakı
kimi təyin edilməlidirlər:
Extrn : tip [ ,... ]
Burada
ad - başqa proqram modulunda Public direktivi ilə təyin olunmuş
identifikatordur.
tip- aşağıdakı kimi təyin olunur:
1. Əgər
verilənlər seqmentində və ya əlavə verilənlər seqmentində təyin edilmiş
identifikatordırsa onda
BYTE, WORD, DWORD, PWORD, FWORD, QWORD və
TBYTE– dən biri kimi təyin edilə bilər.
2. Əgər prosedurun adı isə onda NEAR və ya FAR atributlarından bir ilə təyin
oluna bilər.
3. Əgər EQU və ya ‘ = ’ ilə təyin olunmuş sabitin adıdırsa, onda ABS kimi təyin
olunur.
Məsələn:
PUBLİC A
...
A DB 5
kimi təyin olunubsa, onda başqa kod seqmentində onu
EXTRN A:BYTE
kimi elan etməliyik.
İNCLUDE direktivi translyasiya zamanı ilə təyin edilən proqramın
mətnini verilən proqramın mətninə İNCLUDE direktivi dayanan yerdən birləşdirir. Məsələn:
İNCLUDE a:\f1.asm
göstərişi imkan verir ki, Assembler proqramının mətninə İNCLUDE direktivi dayandığı
yerdən f1.asm adlı faylının mətnini birləşdirsin.
Əməliyyatlar
Assembler əmrlərinin operandları bilavasitə ədəd, registr və ya yaddaş sahəsinin məzmunundan
və həmçinin ifadələrdən təşkil oluna bilər. İfadə operand və əməliyyatların kombinasiyası kimi
təsvir oluna bilər. İfadənin hesablanmasının nəticəsi, hər hansı yaddaş xanasının ünvanı və ya sabit
(mütləq) qiymət ola bilər.
İfadənin hesablanmasında əməliyyatlar prioritetə uyğun icra olunur. Bu ardıcıllığı mötərizələrin
vasitəsi ilə dəyişdirmək olar. Eyni prioritetli əməliyyatlar soldan sağa ardıcıl yerinə yetirilir
.
Əməliyyatların prioritet cədvəli aşağıda göstərilmişdir:
Əməliyatlar
Prioritetləri