Direktivlər
Direktivlər Assembler translyatorunun işini idarə edən vasitələrdən biridir.
Onların köməyi ilə seqmentlər və prosedurlar təyin olunur, əmr və verilənlərə ad verilir,
ehtiyyat yaddaş sahəsi ayrılır və s.
Direktivin yazılışı assembler əmrinin yazılışına uyğundur:
[ad] direktiv [operand] [,operand] ... [;şərh]
Ad–identifikator olub, bu direktivi başqa eyni adlı direktivdən fərqləndirir.
Nöqtələr göstərilən elementlərin bir neçə dəfə təkrarlana bilməsini göstərir.
İdentifikatorları, verilənlərı, seqmentləri təyin edən və translyasiyanı idarə edən
direktivlər əsas direktivlər sayılır.
Mühazirə 16.
Assembler dilində proqramın strukturu
Assembler proqramı bir və ya bir neçə seqmentdən ibarət olur. Əmrlərin olduğu
sahə yaddaşda kodlar (əmrlər) seqmenti, verilənlər yerləşdirilən yaddaş sahəsi verilənlər
seqmentivə stek üçün ayırılmış yaddaş sahəsi - stek seqmenti adlanır. Mikroprosessorda
hər bir seqment üçün uyğun seqment registrləri mövcudur. Bildiyimiz kimi
informasiyanın emalı üçün aşağıdakı 6 seqment registlərindən istifadə edə bilərik:
CS – əmrlər seqmenti;
SS – stek seqmenti;
DS, ES, FS, GS verilənlər seqmentləri.
Ümumiyyətlə, assemblerdə proqramın həcmindən asılı olaraq proqramlar bir və
ya bir neçə seqmentdə təşkil edilə bilər. Hər bir seqment ‘SEGMENT’ sözü ilə
başlayaraq ‘ENDS’ sözü ilə qurtara bilər. Bu halda seqmenti aşağıdakı kimi təyin edə
bilərik:
Segmentin_ adı SEGMENT [K] [N] [M] [L] …
Direktivlər, əmrlər, makroəmrlər, kommetariyalar
…
Segmentin_ adı ENDS
downloaded from KitabYurdu.org
109
Burada Segmentin_ adı – məcburi parametr olub seqmentin ünvanını almaq və
həmçinin seqmentlər qrupunda seqmentləri kombina etmək üçün istifadə edilən
nişandır. Ondan həm də seqmentlərin bir qrupda birləşdirilməsi zamanı istifadə edirlər.
SEGMENT-in başqa parametrləri məcburi deyil. Burada
K – düzlənmə tipini ;
N –əlaqə tipini;
M –seqmentin sinfini;
L –seqmentin ölçüsünü təyin edən tipi göstərir.
Əvvəlcə verilənlər seqmentinə aid sadə misal göstərək:
Data_seg SEGMENT
A DB 56
BB DB ?
MAS DB 9,7,5,4,5DUP(3)
Data_seg ENDS
Qeyd etmək lazımdır ki, seqment təkcə proqramı kodlar, verilənlər və steklərə
bölmək üçün deyil, o, daha geniş funksional təyinatlara malikdir. Seqment (bölüm)
modul proqramlaşdırması konsepsiyası ilə bağlı olan ümumi mexanizmin əsas
hissəsidir. O müxtəlif proqramlaşdırma dillərinin kompilyatorları tərəfindən yaradılan
obyekt modullarının unikal təşkilinə imkan verir. Bu isə müxtəlif proqramlaşdırma
dillərində yazılmış proqramları birləşdirməyə imkan yaradır. Müxtəlif varianların belə
birləşdirilməsi üçün SEGMENT direktivində bir sıra operandlar nəzərdə tutulub.
Proqramın sonu
END təlimatı istənilən Assembler proqramını sona çatdırır və aşağıdakı kimi
yazılır:
END [ giriş_nöqtəsinin_nişanı].
Turbo Debugger sazlayıcı proqramı və onunla işin təşkili
Proqramda sintaksis səhvlərin aradan qaldırılması hələ heçdə onun düzgün
işləməsinin qarantı deyil. Bunun üçün də proqramın işlənməsi prosesinin əsas mərhələsi
onun sazlanmasıdır.
downloaded from KitabYurdu.org
110
Assemblerin bu dildə yazılmış proqramın sazlanması üçün sazlayıcı vasitəsi
olmadığından aftonom sazlayıcılardan istifadə olunur. Hal-hazırda çoxlu sayda sazlayıcı
proqramlar işlənib hazırlanmışdır. Ümumi halda avtonom sazlayıcıların köməyi ilə
(ilkin modulun hansı dildə tərtib olunmasından asılı olmayaraq) yaradılmış icra modu-
lunu araşdırmaq olar. Turbo Debugger (TD) sazlayıcısının işinin əsas momentlərini
nəzərdən keçirək
Turbo Debugger, Borland International firması tərəfindən işlənilmiş sazlayıcı
proqram olub, Pascal, C, Assembler dilində yazılmış proqramların pəncərə mühitində
sazlaması prosesini yerinə yetirir. O, məntiqi səhvlərin yerini və səbəbini aşkar etməyə
imkan verir.
Turbo Debuggerin əsas fuksiyasına aşağıdakılar daxildir;
1. Mətndə məntiqi səhvlərin yerini təyin etmək;
2. Məntiqi səhvlərin səbəblərini təyin etmək.
TD aşağıda göstərilən bir neçə əsas imkanlara malikdir:
1) Proqramı düz istiqamətdə icra (tarsirovka) edir. Yəni, proqramı ardıcıl olaraq
addım-addım icra edir. Bu zaman hər addımda bir maşın əmri icra olunur;
2) Əks istiqamətdə proqramı addım-addım icra edir;
3) Proqramın addım-addım icrasında MP-nin aparat vasitələrinin vəziyyətinin
dəyişilməsini müəyyənləşdirir.
TD ilkin modulda səhvlərin düzəldilməsi imkanına malik deyil. Ancaq o,
proqramda səhvlərin mənbəyini və yerini təyin edir. Səhv vəziyyətlərin səbəbləri təyin
olunduqdan sonra sazlayıcı proqramın işini bitirmədən, birbaşa səhvləri maşın kodunda
aradan qaldırmağa imkan verir və proqramı icra olunmaq üçün işə salır. Sazlayıcı işini
başa çatdırdıqdan sonra bu dəyişikliklər saxlanılmır. Bu səbəbdən də onları təkrar ilkin
modulda qeyd edərək onun təkrar yükləmə modulunu yaratmaq lazımdır.
Yükləmə modulunun alınması prosesinin düzgün təşkilində aşağıdakı əsas
anlarını nəzərə almaq lazımdır:
1) İlkin proqramda proqramın icraya başladığı birinci əmrin nişanı mütləq təyin
olunmalıdır. Belə nişan kimi xüsusi nişan və ya prosedurun adı ola bilər. Bu nişanın adı
proqramın sonundakı END direktivində də operand kimi göstərilməlidir:
downloaded from KitabYurdu.org
111
END nişanın_adı
Məsələn: nişan kimi main prosedurasının adını götürmək olar;
1) İlkin modulu /zi parametrini göstərməklə translyasiya etmək:
TASM /zi ilkin _modulun _adı , , ,
2) Yükləyici modulun alınması zamanı /v opsiyasından istifadə etmək:
TLINK /v obyekt_ modulunun_adı
Bu əməliyyat sazlama informasiyasının icra faylında saxlanmasının lazım
olduğunu göstərir;
3) Sazlayıcını işə saldıqda əmrlər sətrini
TD icra_ modulunun_ adı
kimi yazmaq daha əlverişlidir.
TD.EXE sazlayıcı faylının özünü, məntiqi olaraq, ilkin faylın və TASM.EXE,
TLİNK.EXE, RTM.EXE fayllarının yerləşdirildiyi kataloqda yerləşdirmək məqsədə
uyğundur.
Bizim proqram üçünTD.EXE proqramını işə saldıqda əmr sətrini
TD TEST1
↵
kimi göstərmək olar.
Yuxarıdakı göstərişləri düzgün yerinə yetirdikdən sonra ekranda TD
sazlayıcısının Module adlanan pəncərəsi açılacaqdır. Bu pəncərədə, sazlanacaq proqram
mətninə uyğun TEST1.ASM ilkin proqram mətinini görmək olar (bu TASM və TLINK
proqramlarının icrası zamanı uyğun olaraq /zi və /v opsiyalarını istifadə etməklə alınır).
Onların tətbiqi Assembler kodunda istifadə olunan simvolik adlar haqqındakı
informasiyanın saxlanmasına imkan yaradır.
Module pəncərəsində icra kursoru adlanan üçbucaq (►) şəkilində kursor olur və
o, birinci icra olunacaq əmri göstərir. Odur ki, proqramın birinci icra olunan əmrin
nişanı (və ya prosedur adı) olmalıdır. Bu proqrama giriş nöqtəsi adlanır. Həmin nişan
proqramın sonunda End operatorunda operand kimi göstərilməlidir. Mürəkkəb
proqramlarda əsasən başlanğıcda prosedur və ya makroəmr yazılır. Belə halda da birinci
icra olunan əmrin nişanını mütləq göstərmək lazımdır.
downloaded from KitabYurdu.org
112
Sazlayıcının ekranında bir və ya bir neçə pəncərə olur. İstənilən anda bunlardan
yalnız biri aktiv ola bilər. İxtiyari pəncərəni aktivləşdirmək üçün, tələb olunan
pəncərənin istənilən nöqtəsində mausun düyməsini sıxmaq lazımdır. Sazlayıcının işi
sistem menyusunun köməyi ilə idarə olunur.
İki tip belə menyu var:
1) Qlobal menyu – ekranın yuxarı hissəsində yerləşir və ona həmişə müraciət
etmək olar. Bunun üçün F10 düyməsini sıxmaq sonra isə bu menyunun lazımı
altmenyusunu seçmək olar.
2) Lokal menyu – sazlyıcının hər bir pəncərənin, onun xüsusiyyətini nəzərə alan,
özünün xüsusi menyusu olur. Həmin menyunu çağırmaq üçün, pəncərədə mausun sağ
düyməsini (yaxud pəncərəni aktivləşdirib, Alt+F10) sıxmaq lazımdır.
Bu əməliyyatları yerinə yetirdikdən sonra, bizim proqramın düzgünlüyünü yoxlamaq
olar.
Aydındır ki, Assembler proqramının düzgünlüyü mikroprosessor səviyyəsində
yoxlanılır. Bu halda proqramçını proqramın mikroprosessor tərəfindən necə istifadə
etməsi və mikroprosessorun resurslarının vəziyyətinin necə dəyişilməsi maraqlandırır.
Sazlayıcıda proqramı aşağıdakı dörd movcud rejimləridən birindən istifadə
etməklə icra edə bilərik:
- Şərtsiz icra rejimi (F9 düyməsini sıxmaqla aktivləşdirmək olar);
- Addım-addım icra rejimi (F7 və ya F8 düyməsini sıxmaqla aktivləşdirmək olar);
- Kursorun cari vəziyyətinə qədər icra rejimi (F4 düyməsini sıxmaqla
aktivləşdirmək olar );
- Kəsilmə nöqtəsini təyin etməklə icra rejimi (və ya nəzarət nöqtələrinə görə icra
rejimi) F2 (dayandırmaq üçün Ctrl+F2);
Bu rejimləri ətraflı nəzərdən keçirək.
- Şərtsiz icra rejimindən proqramın tam işləməsinə (xırda detalları nəzərə
almadan) baxmaq tələbi yarandıqda istifadə olunur. Bu rejimdə proqramı işə buraxmaq
üçün F9 düyməsini sıxmaq lazımdır. Alınan nəticəyə baxmaq üçün istifadəçi
pənçərəsində (Window> User Screen) və ya klaviaturadan Alt+F5 düyməsini sıxmaqla
downloaded from KitabYurdu.org
113
açmaq olar. Hər hansı problem yarandıqda və ya proqramın işini tam araşdırmaq tələbi
yarandıqda, sazlayıcının aşağıdakı üç rejimindən istifadə olunur.
- Addım-adım icra rejimində proqramın işini addım-addım izləmək mümkündür.
Bu rejimdə, proqramın əmrlərini ardıcıl olaraq bir-bir icra etmək və hər bir icra olunan
əmrin nəticəsini müşahidə etmək mümkündür. Bu rejimi aktivləşdirmək üçün F7
(Run>Trace into) və ya F8 (Run>Step over) düymələrini sıxmaq lazımdır. Hər iki
düymə addım-addım icra rejimini aktivləşdirir. F7 düyməsini sıxdıqda sazlayıcı bütün
əmrləri bir-bir icra edir (prosedur və ya kəsilmələrin əmrlərini də daxil olmaqla). F8 –
də prosedur və ya kəsilmələrə bir əmr kimi baxılaraq icra olunur və sonra idarə
proqramın
növbəti
əmrinə
ötürülür.
Qeyd
edək
ki,
bu
rejimdə
işlədikdə Module pəncərəsindən başqa, daha bir səmərəli CPU (MP-nin vəziyyəti)
pəncərəsindən
istifadə
etmək
daha
əlverişlidir. CPU pəncərəsini
əsas
menyudan View>CPU əmri ilə açmaq olar.
Bu pəncərə mikroprosessorun vəziyyətinin təsvirini verir və 5 tabelli
altpəncərədən ibarətdir(aşağıdakı şəkilə bax);
1) Bu pəncərədə ilkin proqram mətni maşın əmrləri (dizassembləşdirilmiş
formada) şəklində verilir. Bu proqramın Module pəncərəsindəki maşın formatıdır.
Addım-addım sazlanmanı birbaşa bu pəncərədə aparmaq olar və burada cari əmr sətri
işıqlandırılır;
2) Registers pəncərəsi – mikroprosessorun registrlər pəncərəsi olub, burada cari
registrlərin məzmunun təsviri göstərilir. (Susmaya görə yalnız i 8086 registrlərinin məz-
munu göstərilir). i486 və ya Pentium registrlərinin məzmununa baxmaq üçün onların
təsvir rejimini vermək lazımdır. Bu məqsədlə Mausun sağ düyməsini registrlər alt pən-
cərəsi sahəsində sıxıb, lokal menyunu çağırıb, menyudakı Registers 32-
bit göstərişindən əmrini vermək lazımdır;
3) Bayraqlar pəncərəsi. Bu pəncərədə, mikroprosessorun bayraqlarının mnemonik
adları və bayraqların cari vəziyyətinin təsviri verilir;
4) Stack (stek) pəncərəsi. Bu pəncərədə Stek üçün ayrılmış yaddaşın
məzmununun təsviri göstərilir. Stek sahəsinin ünvanı SS və SP registrlərinin
məzmununa əsəsən təyin olunur.
downloaded from KitabYurdu.org
114
Əməli yaddaşın Dump (yaddaşda verilənlələrin yerləşməsi) pəncərəsi. Pəncərənin
sol tərəfində göstərilən komponentlərin köməyi ilə təyin olunan ünvana görə yaddaş
sahəsinin məzmununu göstərir. Pəncərədə yaddaşın ixtiyarı sahəsinin məzmununu
görmək olar. Bunun üçün Mausun sağ düyməsini sıxmaqla açılan lokal menyudan
lazımı əmri seçmək lazımdır (GO TO DS: 0000 ↵).
Bu altpəncərələrdən bəzilərini ayrıca pəncərə kimi ekrana çıxarmaq olar. Demək
olar ki, ilkin mətnlə Module pəncərəsində işləmək CPU pəncərəsində dizassemb-
lerləşdirilmiş formada işləməkdən daha məqsədə uyğundur. Qeyd edək ki, bu
pəncərələrin köməyilə aşağıdakı əməliyyatları yerinə yetirmək mümkündür:
- Kursorun cari vəziyyətinə qədər icra rejimində, proqramın istənilən yerindən
proqramı addım-addım icra etmək olar. Bu rejimdən proqramın hər hansı hissəsinin fəa-
liyyətinin düzgünlüyünü yoxlamaq lazım gəldikdə istifadə olunur. Bu rejimi
aktivləşdirmək üçün proqramın tələb olunan sətrində kursoru qeyd edib, F4 düyməsini
sıxmaq lazımdır. Onda proqram həmin nöqtəyə qədər işləyərək dayanacaq. Sonra isə
lazım gələrsə addım-addım sazlama rejiminə keçmək olar.
-Kəsilmə nöqtəsini əvvəlcədən təyin etməklə icra rejimində – proqramı dəqiq
təyin olunmuş kəsilmə nöqtələrində icrasını dayandırmaq mümkündür. Proqramın
icrasından əvvəl bu nöqtələri proqramda təyin etmək lazımdır. Bunun üçün tələb olunan
sətrə keçib, F2 düyməsini sıxmaq lazımdır. Bu zaman seçilmiş sətr başqa rənglə
işıqlanır. Əvvəlcədən təyin olunmuş kəsilmə nöqtələrini ləğv etmək olar. Ona görə
lazım olmayan sətri seçib, F2 düyməsini təkrar sıxmaq lazımdır. Kəsilmə nöqtəsi qeyd
olunduqda sonra proqramı icra etmək üçün F9 düyməsini sıxmaq lazımdır. Proqramın
icrası birinci kəsilmə nöqtəsində dayanacaqdır. Bu vaxt mikroprosessorun və yaddaşın
cari vəziyyətinə baxmaq və proqramı addım-addım sazlama rejimində və ya yeni
kəsilmə nöqtəsinə qədər icrasını yenidən davam etdirmək olar. İstənilən rejimlərdə
CTRL+F2 düyməsini sıxmaqla proqramın icrasını dayandırmaq (kəsmək) olar.
downloaded from KitabYurdu.org
115
Mühazirə 17.
Assembler: əməliyyatlar və əmrlərin formatı
.
Ə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əliyyatlar yalnız translyasiya zamanı icra olunur. Əsasən beş cür əməliyyat
var:
1) hesabi;
2) məntiqi;
3) münasibət;
4) qiymətləri qaytaran;
5) mənsubetmə əməliyyatları.
Əməliyyatların qısa xarakteristikasını verək.
downloaded from KitabYurdu.org
116
Hesab əməlliyatları
Hesab əməliyyatlarına: “+” və “ – “ ünar əməliyyatları, “+”, “–“, “*” (vurma), “/”
tamqiymətli bölmə, “MOD” bölmədə qalığın qiymətləndirilməsi kimi binar
əməlliyyatları daxildir.
Misallar:
a) a1 EQU 7/3 ; Nəticə 2
b) a2 EQU 7 mod 3 ; Nəticə 1
v) tab_size EQU 10 ; Massivin baytlarla ölçüsü
size_el EQU 2 ; Elementlərin ölçüsü
mov cx, tab_size/size_el ; cx reqistrinə massivin elementlərinin sayını yükləyir.
Sürüşdürmə əməliyyatları
Sürüşdürmə əməliyyatları əməliyyatda göstərilən qiymət-i, ifadə-nin qiyməti
sayda mərtəbələr qədər sola və sağa sürüşdürür və yazılış formatları aşağıdakı kimidir:
Qiymət SHL ifadə
Qiymət SHR ifadə
Bu əməliyyatlar, veriləni ifadənin verilmiş qiymətinə bərabər bit qədər sola
(SHL) və ya sağa (SHR) sürüşdürür. Əməliyyat zamanı boşalan bitlər sıfrlarla
doldurulur.
Misallar:
a) mask_b EQU 10111011b
10111011b ədədini mask_b adına mənimsədir.
MOV al, mask_b shr 3
mask_b qiymətini 3 bit sağa sürüşdürür. Sürüşdürmədən sonra al = 00010111b
olacaq
b) mask_b EQU 00110010b
mask_left EQU mask_b shL 2
Sürüşdürmədən sonra mask_left = 11001000b olacaq
Məntiq əməliyyatları
Məntiq əməliyyatları, ifadənin bitləri üzərində əməliyyatlar aparır. Bunlara NOT
(inkar), AND (məntiqi vurma (və)), OR (məntiqi toplama (və ya)), XOR (məntiqi
downloaded from KitabYurdu.org
117
toplamanın inkarı) məntiq əməliyyatları daxildir. BunlardanAND, OR, XOR
əməliyyatları iki operand, NOT əməliyyatı isə bir operand üzərində əməliyyat aparır və
bunlara, uyğun olaraq, iki və bir operandlı əməliyyatlar deyilir. AND, OR, XOR və
NOT əməliyyatlarının icrasının nəticəsi aşağıdakı cədvəldə verilmişdir:
Registrli və bilavasitə ünvanlaşdırma
Ünvanlaşdırma rejimindən ən sürətlisi registrli və bilavasitə ünvanllaşdırma
rejimidir (çünkü bu regimdə yaddaş xanalarına müraciət olunmur). Registrli
ünvanlaşdırma rejimində hər iki operand ümumi təyinatlı registrlərdə yerləşir. Məsələn:
MOV AX, BX
Burada AX –qəbuledici, BX –isə mənbə registrini təyin edir. Bu əmrin icrasından
sonra BX registrinin
məzmunu
oxunaraq AX registrinin
məzmunu
dəyişir. BX registrinin məzmunu isə dəyişməz qalır. Göründüyü kimi hər iki operand
registrdə yerləşdiyi üçün nə seqment registrindən, nə də yaddaş xanasından istifadə
olunur.
PUSH və POP əmrləri
PUSH və POP əmləri stekə yazma və ya stekdən oxuma əməliyyatlarında
istifadə edilir. Stek, proqram verilənlərinin müvəqqəti saxlandığı yaddaş sahəsidir. Bu
zaman SP registri ilə stekin zirvəsinin ünvanı təyin edilir. Əmrlərin ümumi yazılışı
aşağıdakı kimidir:
PUSH mənbə
POP qəbuledici
PUSH əmri ilə 1, 2, və ya 4 bayt uzunluqlu registrlərin məzmunu və ya yaddaş
ünvanındakı məzmunu stek yaddaşın zirvəsinə yazılır. Mənbə kimi ümumi təyinatlı
registr, seqment registri, bilavasitə operand (ədəd) və ya dəyişəni götürmək olar.
Məsələn:
PUSH DS ; DS məzmununu stekin zirvəsinə yazılır.
PUSH K1 ; K1 ünvanındakı məlumat stekin zirvəsinə yazılır.
POP K1;stekin zirvəsindəki məlumat K1 yaddaşına yazılır.
POP DS ; stekin zirvəsindəki məlumatı ; DS registrinə yazılır.
downloaded from KitabYurdu.org
118
Proqram verilənlərini müvəqqəti saxlamaq üçün üç registrdən: SS - stek
seqmenti, ESP/SP- stek göstəricisi və EBP/BP –stek baza göstəricisi registrlərindən
istifadə olunur. Stekin ölçüsü mikroprosessorun iş rejimindən asılı olaraq 64 kb (və ya
mühafizə rejimində 4 qb) qədər ola bilər. İstənilən anda yalnız bir stekə müraciət etmək
olar ki, onun da ünvanı SS stek seqment registrində yerləşdirilir. Bu cari stek adlanır.
Başqa stekə müraciət etmək üçün SS stek seqment registrinə tələb olunan stekin
ünvanını yükləmək lazımdır. Mikroprosessor steklə işləyən bütün əmrləri icra edərkən
avtomatik olaraq SS stek seqment registrindən istifadə edir.
Giriş-çıxış əmrləri
Hər bir giriş - çıxış qurğusu və hər bir sistem qurğusu giriş-çıxışın ünvan fəzası
vasitəsi ilə müraciət oluna bilən bir və ya bir neçə 8, 16 və ya 32 mərtəbəli registrə
malikdir. Giriş-çıxışın ünvan fəzası fiziki olaraq əməli yaddaşdan asılı deyil və onun
ölçüsü məhdud olub, 2
16
və ya 65536 qədər giriş- çıxış ünvanından ibarətdir.
Beləliklə,
giriş-çıxış
portları anlayışını giriş-çıxışın
ünvanlar fəzasında müəyyən
ünvanı olan 8, 16 və ya 32 mər-
təbəli aparat registri kimi təyin
edə
bilərik.
Kompüter
qurğularının idarə olunmasının
ən
sadələşdirilmiş
sxemi
aşağıdakı şəkildə verilmişdir. Şəkildən görundüyü kimi, BIOS səviyyəsi ən aşağı sə-
viyyədir.
O, kompüter qurğularından asılı olmayaraq, qurğular ilə birbaşa portlar vasitəsilə
işləyir. Qurğuların dəyişdirilməsi zamanı, BIOS–un ancaq uyğun funksiyalarında
düzəlişlər aparlır ki, onlar portların yeni ünvanlarına və işləmə məntiqinə istiqamətlənə
bilsinlər.
Portların nömrəsi və onların mərtəbələri haqqında məlumatlar qurğunun texniki
sənədlərində idarəedici informasiya formatında göstərilir. İstifadə ediləcək qurğuda
yerinə yetriləcək işin sona çatması üçün əməliyyatların və qurğunun portlarının
downloaded from KitabYurdu.org
119
proqramlaşdırılması ardıcıllığını bilmək lazımdır. Yəni, faktiki olaraq nəyi və hansı
ardıcıllıqda porta ötürməni (ona yazma zamanı) və ya ondan götürməni (oxuma zamanı)
müəyyən etmək lazımdır. Bu məqsədlə mikroprosessorun əmrlər sistemindəki cəmi iki
əmrdən istifadə etmək kifayətdir. Bunlara giriş-çıxış əmrləri deyilir və onlar xarici
qurğularla əlaqə yaradırlar.
1) IN əmri verilənləri portdan qəbulediciyə oxuyur və ümumi yazılışı aşağıdakı
kimidir:
IN qəbuledici, port
Bu əmr nömrəsi port operandında göstərilən portdan veriləni (ədədi) qəbulediciyə
köçürür. Qəbuledici kimi yalnız AL, AX və ya EAX registrlərindən uyğun olaraq baytı,
sözü və ya ikiqat sözü qəbuletmək üçün istifadə etmək olar. Port kimi isə ya bilavasitə
operand, ya da DX registri götürülür. Bilavasitə operandan istifadə etdikdə qiymət 255-
dən (port 0-dan 255 kimi nömrələnir) böyük ola bilməz.
Dostları ilə paylaş: |