13
Real rejimdə fiziki ünvanın təşkili
Real rejimdə fiziki ünvanın yaranmasını nəzərdən keçirək. Fiziki ünvan dedikdə verilənlər
şininə verilən yaddaş ünvanı nəzərdə tutulur. Buna xətti ünvan da deyilir.
Real rejimdə fiziki ünvanın təşkili şəkil 5-də göstərilmişdir.
Real ünvanlar rejimində fiziki ünvanlar mexanizminin aşağıdakı xarakteristikaları vardır:
Fiziki ünvan [0,1]Mb parçasında dəyişir. Bu MP İ8086 –nın ünvanlar şininin 20 xətli
olmasından irəli gəlir.
1. Seqmentin maksimal tutumu 64kb–dır. Bu da
İ8086 MP–nin 16 mərtəbəli arxitekturaya
malik olmasından irəli gəlir.
3. MP–nin əmrləri registrdə, yaddaşda və ya əmrin özündə yerləşən operandlar üzərində
əməliyyatlar apara bilər. Əmrlər sisteminə operandsız əmrlər və 1, 2, 3 operandlı əmrlər daxildir.
Əmrlər istifadə olunan operandların fiziki ünvanını təyin etmək üçün seqmentin baza ünvanı ilə
verilənin baza başlanğıcına nəzərən sürüşməsini (nisbi ünvanı) toplamaq lazımdır. Baza ünvanı 16
mərtəbəli seqment registrinin məzmunu ilə təyin olunur və MP –nin iş rejimindən asılıdır.
Əgər MP real ünvanlar rejimində işləyirsə, (İ8086) 20 mərtəbəli baza ünvanı almaq üçün 16
mərtəbəli seqment registrinin məzmununu 4 mərtəbə sola sürüşdürmək lazımdır.
15 0
+
Sürüşmə
15 0
Seqment
registri
0000 Baza (blokun
nömrəsi)
19
0
Fizik ünvan
2
36
–1 (2
32
–1)
Seqment
registrləri:
0
Müdafiə rejimində yaddaşın seqmentlənməsinin bütöv modeli
Selektor
Sürüşmə
Yaddaş
+
Deskriptorlar
cədvəli
Selektor
Şəkil 4. Seqmentləşmiş yaddaşın ünvanlaşmanın 3
modeli
14
MP mühafizə rejimində olduqda (32 mərtəbəli verilənlərin emalında), baza ünvanı seqment
registrinin məzmununa uyğun olaraq selektora görə deskriptorlar cədvəlindən 32 mərtəbəli ünvan
kimi təyin edilir. Aydındır ki, yaddaşa müraciətin tipindən asılı olaraq uyğun seqment registrini
və nisbi ünvanı təyin edən registr seçilir. Bu haqda Assembler dilinin öyrənilməsində geniş
danışacağıq. Burada isə hesabi verilənlərin ünvanlaşmasında istifadə edilən effektiv ünvanın (EÜ)
təyini müəyyənləşdirək. EÜ–də müraciət üsulundan asılıdır və üsusi halda aşağıdakı 3
komronentin toplanmasından alınır:
EBP və ya EBX baza registrlərinin məzmunu;
ESİ və ya EDİ indeks registrlərinin məzmunu;
əmrin özündə iştirak edən D8, D16, D32 sürüşməsinin qiyməti (1, 2, 4 baytlıq).
Bu əməliyyatlar cihaz vasitələrinin köməyi ilə (yəni, proqram təminatından istifadə etmədən)
alınır.
Dərs 4_Assembler dilinin əlifbası
Assembler dilinin əlifbası
İstənilən proqramlaşdırma dilində olduğu kimi Assembler dilinin əlifbasına,
translyator
tərəfindən qəbul oluna bilən, xüsusi simvollar yığımı daxildir. Bu simvollar yığımı
aşağıdakılardır:
1. Latın əlifbasının böyük (A- Z) və kiçik (a-z) hərfləri.
2. 0-dan 9 –a qədər ərəb rəqəmləri.
Əməli
yaddaş
Xətti
ünvan
qurğusu
Fiziki ünvan
HMQ
15 0
15 0
15 0
Əmrdə
olan
sürüşmə
BX və ya BP
baza registri
Sİ və ya Dİ
indeks
registri
4 bit sola
sürüşdürmə
Effektiv ünvan
Xətti ünvan
cs
ds
ss
es
fs
gs
Seqment
registrləri
Ünvan
şini
-cəmləyici
Şəkil 5. Real rejimdə fiziki ünvanın təşkili.
15
3. Xüsusi işarələr ? @ $ &
4. Boşluq işarəsi və alt xətt (_).
5. Ayırıcı işarələr ; : , . [ ] () < > { } + – / * % ! ” ' \ = # ^
Bunlardan başqa Assembler dilinə müəyyən açar sözləri daxildir ki, onlar da proqramda olduğu
kimi işlədilirlər.
Assembler dilinin konstantları
Assembler dilində müxtəlif tip konstantalardan (sabitlərdən) istifadə olunur:
1. Üç say sistemindən birində verilmiş tam ədədlər:
- İkilik konstantalar- bunlar B və b hərfləri ilə qurtaran 0 və ya 1 ikilik ədədlər
ardıcıllığıdır. Məsələn, 11000111b və ya 0001000B (ikilik sabitin təsviri).
- Onluq konstantalar-bunlar D və ya d hərfləri ilə qurtaran 0- dan 9–a qədər onluq
rəqəmlər ardıcıllığıdır. Məsələn: 234,234D, 546d. Sadəlik üçün D və ya d simvollarından
istifadə etməmək də olar.
- Onaltılıq konstantalar-bunlar H və ya h hərfləri ilə qurtaran 0-dan F–ə qədər onaltılıq
rəqəmlər ardıcıllığıdır (0123456789ABCDEF).
Məsələn: 0BAH, 06AEh.
Birinci simvol mütləq 0-dan 9–a qədər olan rəqəmlərdən birisi olmalıdır ki, o
identifikatordan fərqlənsin. Məsələn: 0BAH, 0A6AEh yazılışındakı birinci 0 simvolu
verilənlərin
identifikotor deyil, onaltılıq ədəd olduğunu göstərir.
Qeyd edək ki, mənfi onluq ədədlər proqramda adi qaydada (məsələn –56), mənfi ikilik və
onaltılıq ədədlər isə tamamlayıcı kodda göstərilir.
Məsələn: - 89 ədədi tamalayıcı kodda 10100111b və 0A7h kimi yazılır.
2. Simvol və ya sətr (literal və ya sətr) konstantları - apostrof və ya dırnaq işarələri arasında
yazılan istənilən simvollar ardıcıllığıdır.
3. Sürüşkən nöqtəli ədədlər. Intel prosessorlarında sürüşkən nöqtəli bütün əməliyyatlar,
özünün məxsusi registrləri və əmrləri olan xüsusi FPU (Floating Point Unit) qurğusunun köməyi
ilə aparılır. Bu qurğu əsas prosessor ilə aftonom işləyə bilir və sistemə (8087,80287,80387,80487)
həmprosessor kimi qoşulur. 80486DX – dən başlayaraq bütün modellərdə həmprosessorlar əsas
prosessorla birlikdə bir kristalda yerləşdirilirlər.
İdentifikatorlar