Амалиёт машғулоти №1 микропроцессор тизимининг умумий тузилиш принциплари ва параметрларини таҳлил этиш


-chizma. Stekka yozish (a) vastekdan o'qish (b) operatsiyasi: ***- stekning navbatdagi bo ‘sh yacheykasi; Addr - adres


Download 3.7 Mb.
bet9/13
Sana27.08.2023
Hajmi3.7 Mb.
#1670537
1   ...   5   6   7   8   9   10   11   12   13
Bog'liq
МИКРОПРОЦЕССОР АМАЛИЁТ

1-chizma. Stekka yozish (a) vastekdan o'qish (b) operatsiyasi:
***- stekning navbatdagi bo ‘sh yacheykasi; Addr - adres.

Keyin dastur osti dastur komandasi bajariladi. Dastur osti das- turda qaytarish komandasi uchraganda, stek ko‘rsatkichining qiymati inkrementatsiyalanadi; stekda saqlangan qaytish ardesi dastur hisoblagichiga yuklanadi (2-chizma). Stekni dastur osti dastur bi­lan ishlatilishi, bitta dastur osti dastur keyingisini chaqirish imkonini beradi, ya’m dastur osti dastumi joylash imkonini beradi. Dastur osti dastumi joylanish chuqurligi, stek hajmi bilan chegaralanadi.



2-chizma. Dastur osti dasturni chaqirish va chaqirilgan dasturga
qaytish mexanizmi

Ko‘p AVR-mikrokontrollerlarda stek operativ xotirada joylasha- di. Mikrokontrollerlarda, hajmi 256 baytdan oshmaydigan operativ xotirada stek ko'rsatkichim saqlash uchun faqat bitta SPL (SP) registri qo‘llaniladi. Operativ xotirasi bo‘lmagan mikrokontrollerlarda uch bosqichli apparat steki bo‘ladi.

Ichki operativ xotirada stekni tashkillashtirish quyidagicha bolishi mumkin:


LDI RI 6, low(RAN4END); RAMEND adresining kichik qismi
OUT SPL, RI6 ; initsializatsiya SPL
LDI RI6, high(RAMEND); RAMEND adresining katta qismi
OUT SPH, RIS ; initsializatsiya SPH
OUT komandasi LJMR. tarkibini kiritish-chiqarish registriga yo- zadi; RAMEND -ichki operativ xotiraning so‘ngi yacheykasi adre- sining ramziy nomi. Dasturda AVR-mikrokontrollerlarini periferik qurilmalan adresida ramziy nomlarni ishlatish uchun, include direk­tivasi yordamida periferik qurilmalaming adresini aniqlash faylini (inc-fayl) qo‘shish kerak. Misol uchun, Atmega 8535 mikrokon- trolleri uchun m8535def.inc faylini qo‘shish lozim:
.include "m8535def.inc"
Qo'shilgan inc-faylga AVR Assembler oynasidagi Include Path joyiga yo'l ko‘rsatiiishi kerak. Bu oynani chaqirish Project menyu- sidagi AVR Assembler Setup komandasi orqali amalga oshiriladi. include direktivasi qo'llanilayotganda, dasturga device direktivasini qo'shish shart emas, chunki u inc-faylida joylashgan bo'ladi.
Translyatsiya listingida inc-faylini matnini pay do bo‘lishini oldi- ni olishda, listingni o‘chiradigan .nolist direktivasi yordam beradi. .nolist direktivasi list (listingni yoqish) direktivasi bilan birga ishlatiladi. inc-faylini translyatsiya listingidan chiqarish quyidagicha bo‘lishi mumkin:
.nolist ; listing generatsiyasini o‘chirish
include "m8535def.inc" ; inc-faylini qo‘shish list ; listing generatsiyasini yoqish
Assembler tilida dastur osti dastumi chaqirish RCALL, ICAJLL, CALL va EIC ALL komandalari orqali amalga oshiriladi. RCALL (Relative Call - nisbiy chaqiruv) komandasi dastur osti dastumi cha- qishni ta’minlaydi (boshlang'ich adresni dastur hisoblagichigini joriy qiymatiga nisbatan siljishi - ±2 Kso‘z (±4 Kbayt) atrofida). IC ALL (Indirect Call - qisman chaqiruv) komandasi dastur osti dastumi, dastur xotirasidagi adresdan qisman chaqiruvli an.algaoshiradi (dastur osti dastumi adresini maksimal siIjishi 64 Kso‘z (128 Kbayt) ni tashkil 20
etadi). CALL (Call - chaqiruv) komandasi dastur osti dastumi, 4 Mso‘z (8 Mbayt) gacha hajmga ega dastur xotirasidan chaqirishni ta’minlaydi. EICALL (Extended Indirect Call - kengaytirilgan qisman chaqiruv) dastur osti dasturni, 4 Mso‘z (8 Mbayt) gacha hajmga ega dastur xotirasidan qisman chaqirishni ta’minlaydi. Ko‘rsatgich stekini (SPH.SPL) tarkibi tegishli ravishda 2 yoki 3 taga kamayadi.
Dastur osti dastumi chaqiruv komandasini qo‘llash misoli:
RCALL subrl ; subrl dastur osti dastumi nisbiy chaqiruvi
; subr 2 dastur osti dastumi qisman chaqiruv
LDT R30, low(subr2)
LDT R31,high(subr2)
IC AXL ; icall komandasi operandalarga ega emas
Dastur osti dasturdan qaytish uchun RET komandasi qo'llaniladi. RET komandasi bajarilayotganda, qaytarish adresi stekdan dastur hisoblagichiga yuklanadi.
Stek yana UMR. tarkibini dastur osti dasturi bajarilayotgan vaqtida saqlash uchun ham qo'llanilishi mumkin. UMR tarkibini stekda saqlash uchun va chiqarish uchun PUSh va POP komandalan xizmat qiladi. PUSh komandasi registr tarkibidagini, stekka, stek ko‘rsatgichida saqlanayotgan adres bo’yicha kintadi (shunda, stek ko‘rsatkichi qiymati bittaga kamayadi (SPELSPL = SPH SPL - 1)). POP komandasi teskari ishni bajaradi: stek ko‘rsatkichi qiymati bit­taga ko‘payadi (SPHSPL = SPHSPL + 1); stek ko rsatgichida saq- lanilayotgan xotira yacheykasining tarkibi adres bo‘yicha registrga yuklanadi
Dastur osti dastur qo‘llanilgan dasturlar, odatda asosiy dasturga nisbatan o‘tish komandasidan boshlanadi. Bunda birinchi navbatta stekni initsializatsiyaqilish bajariladi (3 -chizma).
Dastur osti dasturlar bilan ishlanilayotganda, chaqirilayotgan dasturdan dastur osti dasturga parametrlami uzatishga va dastur osti dastumi bajarilish natijalarini chaqirayotgan dasturga qaytarishga imkon berish muhimrol o‘ynaydi. Assemblerda chaqirayotgan dastur bilan dastur osti dastumi o'rtasida ma’lumot almashishga imkon berish format!ashtiriImagan. Parametrlami uzatish uchun UMR, operativ xotira yacheykalari va stek ishlatilishi mumkin.

.nolist

; listing generatsiyasini ©‘chirish

.include "m8535def.inc

" ; inc-faylini kiritish

.list

; listing generatsiyasini yoqish

RJMP RESET

; asosiy dasturga o‘tish

PODPR:

; PODPR dastur osti dasturi

* * * *
RET



; asosiy dasturga qaytish

RESET:

; asosiy dastur

LDI R16, low(RAMEND)

OUT SPL, RI6

; initsializatsiya SPL

LDI R16, high(RAMEND)

OUT SPH, RI6

; initsializatsiya SPH

RCALL PODPR ;

PODPR dastur osti dasturini chaqirish

} •••





Download 3.7 Mb.

Do'stlaringiz bilan baham:
1   ...   5   6   7   8   9   10   11   12   13




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling