Mühazir Arxitektura anlayışı. Fon Neyman prinsipləri. Ehm-lərin inkişаf tаriхi və nəsilləri



Yüklə 3,92 Mb.
Pdf görüntüsü
səhifə11/15
tarix18.05.2020
ölçüsü3,92 Mb.
#31234
növüMühazirə
1   ...   7   8   9   10   11   12   13   14   15
komputer arxitekturasi pdf


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) seqmentiverilə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; 
DSESFSGS 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 AXBX 
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.  
Yüklə 3,92 Mb.

Dostları ilə paylaş:
1   ...   7   8   9   10   11   12   13   14   15




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin