RET buyrug'i pastki dasturlardan qaytish uchun ishlatiladi . Da RET buyrug'i bajarilganda, qaytish manzili stekdan dastur hisoblagichiga yuklanadi. Bunday holda, stek ko'rsatkichining mazmuni dastur hisoblagichining bit kengligiga qarab 2 yoki 3 ga oshiriladi.
(yuqoriga
qarang). Stack kontentni saqlash uchun ham ishlatilishi mumkin Kichik dasturlarni bajarish uchun RON. Stakka saqlash uchun va
RON tarkibini stekdan olish PUSH va POP buyruqlaridir. PUSH buyrug'i registr tarkibini stek ko'rsatkichi qiymati bilan stek ko'rsatgichida saqlangan manzildagi stekga suradi .
birga kamayadi (SPH:SPL = SPH:SPL - 1). POP jamoasi
107
Machine Translated by Google
teskarisini bajaradi: stek ko'rsatkichining qiymati bittaga oshiriladi (SPH:SPL = SPH:SPL + 1); stek ko'rsatgichida saqlangan manzildagi xotira joylashuvining mazmuni registrga yuklanadi. Subprogrammalardan foydalanadigan dasturlar odatda stekni inisializatsiya qiluvchi asosiy dasturga nisbatan sakrash bilan boshlanadi (33-
rasm).
Guruch. 33. Kichik dastur yordamida dastur misoli
Subprogrammalar bilan ishlashda parametrlarni chaqiruvchi dasturdan quyi dasturga o'tkazish va pastki dastur natijalarini chaqiruvchi dasturga qaytarishni ta'minlash kerak. AVR mikrokontrollerlarining assemblerida qo'ng'iroq qiluvchi dastur va pastki dastur o'rtasida ma'lumot almashish usullari mavjud emas.
108
Machine Translated by Google
lizislangan. Parametrlarni o'tkazish uchun registrlardan foydalanish mumkin umumiy maqsad, RAM hujayralari va stek.
Parametrlarni umumiy maqsadli registrlar orqali o'tkazish faqat oz sonli parametrlar uchun mos keladi, chunki RON soni
cheklangan va parametrlar egallagan registrlarni boshqa hisob-kitoblar va saqlashda ishtirok etish uchun endi quyi dasturda ishlatib bo'lmaydi.
boshqa ma'lumotlar. Biroq, bu parametrlarni o'tkazishning eng oddiy va shaffof usuli
bo'lib, uzatilayotgan parametrlarga eng tez kirishni ta'minlaydi. Parametrlarni o'tkazish uchun RAMdan foydalanish
ularni hal qilish qoidalarini qat'iy tartibga solishni talab qiladi. Masalan, o'tkazilgan parametrlarning qiymatlarini yoki ularning manzillarini bevosita saqlash uchun xotirada massiv (jadval) tashkil qilish mumkin; RONda massiv boshining manzilini kiriting. Massivning boshlang'ich manzilini hisobga olgan holda, qo'ng'iroq qiluvchi dastur va pastki dastur kirish imkoniyatiga ega bo'ladi
kerakli parametrlar.
Parametrlar stekga uzatilganda , quyi dastur chaqirilishidan oldin uzatilayotgan parametrlar stekga suriladi. Shuni esda tutish kerakki, stekdagi pastki dasturni chaqirish buyrug'i bajarilgandan so'ng,
qo'ng'iroq qilish dasturiga qaytish manzilini qo'shdi. Pastki dasturda stek ko'rsatkichining qiymatini asosiy manzil sifatida belgilash va ofset bilan bilvosita ma'lumotlar xotirasi manzilidan foydalanish orqali
stekdagi parametrlarga kirishingiz mumkin. Misol uchun, agar pastki dasturni chaqirishdan oldin asosiy dasturda bo'lsa
ba'zi parametrlarning qiymatini stekga suring:
LDI R16, $33; R16 <- $33
PUSH R16; R16 registrining mazmunini saqlash
stek ustida
keyin unga quyi dasturda kirishingiz mumkin:
IN R30, SPL; stek ko'rsatkichining past bayti
IN R31, SPH; stek ko'rsatkichining yuqori bayti
LDD R20, Z+3; $33 raqamini stekdan R20 registriga yuklash
( IN ko'rsatmasi kirish/chiqish registrining mazmunini RONga o'qish uchun ishlatiladi). Xuddi shunday, siz saqlash uchun stekdan foydalanishingiz mumkin
109
Machine Translated by Google
ma'lumotlarning operativ xotirasida joylashgan uzatilgan parametrlar massivining manzillari.
Amaliy qism
Kichik dasturni chaqirish uchun RCALL buyrug'idan foydalanadigan dastur yozing. Pastki dastur tomonidan bajariladigan funksiya
4-sonli laboratoriya ishining topshirig'idan (o'qituvchi ko'rsatmasi bo'yicha) oling. Parametrlarni quyi dasturga o'tkazish uchun umumiy maqsadli registrlardan foydalaning. Dasturni bir bosqichli rejimda bajaring, dastur hisoblagichi, stek ko'rsatkichi tarkibidagi o'zgarishlarni kuzatib boring va pastki dasturdan qaytish manzilini stekga suring. 2. Parametrlarni quyi dasturga o'tkazish uchun stek yordamida 1-topshiriqni bajaring. Simulyatorda o'tkazilgan
parametrlarning stekga o'tkazilishini kuzatib boring.
2-banddagi topshiriqni quyi dasturni chaqirish uchun ishlating
Do'stlaringiz bilan baham: |