3. Xulosa; Foydalanilgan adaabiyotlar


Download 111.2 Kb.
bet2/2
Sana18.06.2023
Hajmi111.2 Kb.
#1560676
1   2
Bog'liq
2. Asosiy qism; avrstudio dasturi haqida ma’lumotlar

AVR-mikrokontrollerda adres­lash usullarini - UMR va kiritish-chiqarish registrlarini adreslash usuliga, OXQ adreslash usuliga va dastur xotirasini adreslash usuliga ajratish mumkin. Har xil turdagi adreslash usullarini qo‘llanilishi, dastuming hajmini va bajarilishi uchun ketadigan vaqtini qisqartirish imkonini beradi.
UMR va kiritish-chiqarish registrlarini adreslash uchun faqat bitta rejim ko‘zda tutilgan - to‘g‘ridan-to‘g‘ri registrli adreslash.
UMRni to‘g‘ridan-to‘g‘ri registrli adreslashda, ope­rand - komandada ko‘rsatilgan, UMR tarkibi hisoblanadi. To‘g‘ridan-to‘g‘ri registrli adreslash komandalari bitta ( Rd) yoki ikkita (Rr va Rd) UMR adreslashligi mumkin (4.20-chizma).
Ikkinchi holatda komandali bajarilishi natijalari Rd registrida saqlanadi. UMR to‘g‘ridan-to‘g‘ri registrli adreslash hamma arif- metik va logik komandalarda, hamda bitlar bilan ishlaydigan ba’zi bir komandalarda qo‘llaniladi. Chunki bu komandalar ALQda faqat UMR tarkibi ustida bajariladi. Ikkinchi operandasi konstanta (o‘z- garmas) boigan komandalarda, birinchi operandasida faqat UMR- ning katta qismidagi registrlaridan (R16 R31) ishlatilishi mumkin.
Kiritish-chiqarish registrini to‘g‘ridan-to‘g‘ri registrli adreslash­da, operand - komandada ko‘rsatilgan kiritish-chiqarish registirini tarkibida boiadi. Kiritish-chiqarish registirini adresi komandaning 6ta, razryadida saqlanadi (8-rasm).
Kiritish-chiqarish registrini to‘g‘ridan-to‘g‘ri registrli adreslash, kiritish-chiqarish registirining IN o‘qish va OUT yozish komanda- larida, hamda kiritish-chiqarish registri bilan ishlovchi bir qator boshqa komandalarda ishlatiladi.
To‘g‘ridan-to‘g‘ri registrli adreslashni qo‘llanilishiga misol:
; bitta UMRni to‘g‘ridan-to‘g‘ri registrli adreslash
CLR RI ; RI registrini hamma razryadlanni tozalash
; ikkita UMRni to‘g‘ridan-to‘g‘ri registrli adreslash
ADD RI 1, R12 ; RI 1 va R12 registrlarini tarkibini qo‘shish
Ma’lumotlar operativ xotirasini adreslash uchun 5ta adreslash usuli qoilaniladi: bevosita, qisman, qisman siljish, qisman predek- rementli va qisman postinkrementli.
Ma’lumotlar operativ xotirasini bevosita adreslashda, adresi komandada ko‘rsatilgan, OXQ yacheykasining tarkibi, operand hisoblanadi. Operandning adresi 32 razryadli komandaning 16 ta kichik razryadidajoylashgan boiadi (8-rasm).



8-rasm. Ma’lumotlar operativ xotirasini bevosita adreslash

Bevosita adreslash, LDS (Load Direct from Data Space) komandasida va STS (Store Direct to Data Space) komandasida ishlatiladi. OXQ da baytlami. byte direktivasi rezervga oladi. byte direktivasi bitta parametrga ega ajratiladigan baytlar soni - va faqatgina. dseg (data segment) direktivasi yordamida aniqlanadigan ma’lumotlar segmentida ishlatilishi mumkin. Dastuming boshlanish segmenti .cseg (code segment) direktivasi yordami bilan ko‘rsatiladi. .dseg i .cseg direktivalari parametrlarga ega emas.


Bevosita adreslashni qo‘llanilishiga misol:
; bevosita adreslash
dseg ; ma’lumotlar segmenti (ma’lumotlar operativ xotirasi)
.org $0065 ; $0065 adresi bo‘yicha
cntl: byte 1; 1 ta baytni cntl uchun rezervlash
cseg ; dastur segmenti (dastur xotirasi)
,…
LDS RIO, cntl ; cntl ni RIO ga yuklash
2. Ma’lumotlar operativ xotirasini qisman adreslashda, adresi X,
yoki Z registrlarida joylashgan (9-rasm), OXQ yacheyka- sining tarkibi, operand hisoblanadi.
Qisman adreslash LD (Load Indirect) komandasida va ST (Store Indirect) komandasida ishlatiladi. Misol uchun:
; qisman adreslash
.dseg ; ma’lumotlar segmenti (ma’lumotlar operativ xotirasi) cntl: .byte 1 ; 1 ta baytni cntl uchun rezervlash .cseg ; dastur segmenti (dastur xotirasi);...
LDI R30, low(cntl) ; R30 ga cntl adresining kichik baytini yuklash
LDI R31, high(cntl); R31 ga cntl adresining katta baytini yuklash
LD RI, Z ; RI ga cntl ni yuklash, ya’ni RI <- (R31 :R30)
Ma’lumotlar operativ xotirasini qisman siljishli adreslashda, komandada ko‘rsatilgan ma’lumotlar operativ xotirasidagi operanda adresi, Y yoki Z registrlarini tarkibiga siljishni qo‘shilish yoii bilan
hisoblanadi. Siljish komandaning 6 ta razryadida joylashadi (9-rasm).

9-rasm. Ma’lumotlar operativ xotirasini qisman siljishli adreslash

Qisman siljishli adresatsiya LDD (Load Indirect with Displa­cement) komandasida va STD (Store Indirect with Displacement) komandasida qo‘llaniladi. Misol uchun:


; qisman siljishli adreslash
dseg ; ma’lumotlar segmenti (ma’lumotlar operativ xotirasi) arr: .byte 5 ; arr massivi uchun 5 ta baytni rezervlash .cseg ; dastur segmenti (dastur xotirasi)
LDI R30, low(arr) ; R30 ga arr adresining kichik baytini yuklash LDI R31, high(arr); R31 ga arr adresining katta baytini yuklash
,…
LDD RIO, Z + 0 ; arr massivini birinchi elementini RIO ga yuklash LDD R11, Z + 1 ; arr massivini ikkinchi elementini RI 1 ga yuklash
Ma’lumotlar operativ xotirasini qisman predekrementli adres­lashda (lot. decrementum - kamayish) tarkibi X, Y yoki Z registr komandalarida ko‘rsatilgan komandani bajarilishidan oldin dekrementatsiyalanadi (bittaga kamayadi); dekrementatsiyalangan X, Y yoki Z registrining tarkibi, ma’lumotlar operativ xotirasini operand adresi hisoblanadi (10-rasm).



10-rasm. Ma’lumotlar operativ xotirasini qisman inkrementli adreslash


Qisman predekrementli adreslash, LD komandasida va ST komandasida qoilaniladi. Misol uchun:


; qisman predekrementli adreslash LD RIO,-Z ; Z <- Z - ], RI 0 <- (Z)
Ma’lumotlar operativ xotirasini qisman postinkrementli adres­lashda (lot. incrementum - ko‘payish, o‘sish) XL, Y yoki Z registrining tarkibi ma’lumotlar operativ xotirasini operand adresi hisoblanadi; X, yoki Z registr tarkibidagi komandalar bajarilganidan keyin inkrementatsiyalanadi, ya’ni bittaga ko‘payadi (2-jadval).
Qisman postinkrementli adreslash, LD komandasida va ST komandasida qoilaniladi. Misol uchun:
; qisman postinkrementli adreslash LD RI 0, Z+ ; R10 <- (Z), Z <- Z +-1
Dastur xotirasini qisman adreslashda dastumi bajarilishi, Z registri tarkibidagi adresdan davom ettiriladi, ya’ni dastur hisobla- gichiga Z registri tarkibidagi yuklanadi (10-rasm). Dastur xoti­rasini qisman adresatsiyalash IJMP va ICALL komandalarida qo‘llaniladi.
Dastur xotirasini nisbatan adreslashda dastumi bajarilishi, (PC + k + 1) adresidan davom ettiriladi (2-jadval). Dastur xotirasini rsata olish uchun, direktivadan oldin belgi bo‘lishi zarur. db direktivasi dastur segmentida joylashadi va .org direktivasi biLan qo‘llanilishi mumkin.
Dastur xotirasida konstantani adreslashga misol .
LDI R31, high(var«l) ; Z registrining katta bayti
LDI R30, low(var«l) ; Z registrining kichik bayti
LPM R16, Z; $50 sonini R16 ga yuklash
Yuqorida keltirilgan misol da operandani chapga, ko‘rsatilgan razryadlar soniga siljitadigan, « operator ishlatilgan.
Dastur xotirasida postinkrementli konstantani adresatsiyalashda konstantaning bayt adresi, Z registridajoylashadi. Z registridan jo‘na- tilgan bayt ko‘rsatilgan registrga yuklanadi, Z registri tarkibidagi ko- manda bajarilganidan keyin inkrementatsiyalanadi. Dastur xotirasida postinkrementli konstantani adresatsiyalash LPM va ELPM koman­dalarida qo‘llaniladi. Misol uchun:
LDI R31, high(var« 1); Z registrining katta bayti
LDI R30, low(var«l); Z registrining kichik bayti
LPM R16, Z+ ; $50 sonini R16 gayuklash, inkrement Z
LPM R17, Z; 137 sonini R17 gayuklash
var: .db $50,137 ; $50 va 137 konstantalar

AVRStudio dasturiy muhitida assembler dastur tilida ishlatiladigan massivlardan va arifmetik operatorlardan foydalanishni o‘rganish.Bu qismda dasturdagi ma’lumot strukturalari bilan tanishishni boshlaymiz. Dasturda ikki asosiy tur ma'lumot strukturalari mavjuddir. Birinchisi statik, ikkinchisi dinamikdir. Statik deganimizda hotirada egallagan joyi o‘zgarmas, dastur boshida beriladigan strukturalarni nazarda tutamiz. Dinamik ma’lumot tiplari dastur davomida o‘z hajmini, egallagan hotirasini o‘zgartirishi mumkin. Agar struktura bir hil kattalikdagi tiplardan tuzilgan bo‘lsa, uning nomi massiv (array) deyiladi. Massivlar dasturlashda eng ko‘p qo‘laniladigan ma’lumot tiplaridir. Massivlar hotirada ketma-ket joylashgan, bir tipdagi o‘zgaruvchilar guruhidir.


Qisman siljishli adresatsiya LDD (Load Indirect with Displacement) komandasida va STD (Store Indirect with Displacement) komandasida qo‘llaniladi. Misol uchun:
; qisman siljishli adreslash
.dseg ; ma’lumotlar segmenti (ma’lumotlar operativ xotirasi)
arr: .byte 5 ; arr massivi uchun 5 ta baytni rezervlash
.cseg ; dastur segmenti (dastur xotirasi)
LDI R30, low(arr); R30 ga arr adresining kichik baytini yuklash
LDI R31, high(arr) ; R31 ga arr adresining katta baytini yuklash;
LDD R10, Z + 0; arr massivini birinchi elementini R10 ga yuklash
LDD R11, Z + 1 ; arr massivini ikkinchi elementini R11 ga yuklash.
Massivlarni va jadvallarni qayta ishlashda sikilli dasturlarni qo‘llash maqsadga muvofiqdir.
Tsiklli dasturda 4 ta asosiy blokni ajratish mumkin.
1. Initsializatsiya bloki (lot. initium - boshlanish). Bunda o‘zgaruvchanlarga,hisoblagichlarga, indekslarga va ko‘rsatkichlarga boshlang’ich qiymatlar kiritiladi.
2. Qayti ishlash bloki. Bunda kerakli hisoblashlar amalga oshiriladi
3. Tsikllarni boshqarish bloki. Bunda keyingi qaytariladigan operatsiyadanoldin hisoblagichlarni va indekslarni (ko‘rsatkichlarni) qiymati o‘zgartiriladi,hamda tsikldan chiqish sharti tekshiriladi.
4. Yakunlovchi blok. Bunda olingan natijalarni saqlash amalga oshiriladi.
2 va 3-bloklar tsiklni jismini (loop body) tashkil qiladi. Tsiklik dasturlarni tez ishlash samaradorligini oshirish va hajmini qisqartirish uchun tsikl qismini operatsiyadan bo‘shatish kerak.
Tsiklik dasturlarni tashkillashtirish uchun, hamda tarmoqlashtirish uchun dasturlarda shartsiz va shartli komandalar ishlatiladi. Bundan tashqari, tsikllarni qurish uchun, bir vaqtda bir qancha ishni bajaradigan, tsikllarni maxsus komandalari qo‘llanilishi mumkin.
JMP, RJMP, IJMP va EIJMP shartsiz o‘tish komandalari boshqaruvni komandada ko‘rsatilgan dastur xotirasini adresiga uzatadi. JMP (Jump) komandasi boshqaruvni dastur xotirasini butun hajmi ichidan uzatishga imkon beradi. RJMP (Relative Jump) komandasi dastur hisoblagichi joriy tarkibiga nisbatan, ±2K so‘z (±4 Kbayt) me’yorda o‘tishlar bilan ta’minlaydi. IJMP (Indirect Jump) komandasi bo‘yicha Z registrida ko‘rsatilgan adres bo‘yicha nisbiy o‘tishlarni bajaradi; maksimal siljish 64 Kso‘z (128 Kbayt)ni tashkil qiladi. EIJMP (Extended Indirect Jump) komandasi dastur xotirasini butun hajmi bo‘yicha nisbiy o‘tishlar bilan ta’minlaydi; dastur hisoblagichini kengaytirish uchun EIND registri qo‘llaniladi.
Shartli o‘tishlar komandalari ba’zi bir shartlar bajarilganda dastur xotirasidagi ko‘rsatilgan adres bo‘yicha boshqaruvni uzatadi.
BRxx (Branch if ... - o‘tish, agar ...) komandalari, SREG holat registry razryadini tekshiruvi natijalari bo‘yicha, dastur hisoblagichining joriy tarkibiga nisbatan, -64.+63 so‘z oralig’ida o‘tishni bajaradi. SREG holat registry kiritish-chiqarish registrining adres muhitida bo‘ladi. Shartlar kodi (C, Z, N, V, S, H) arifmetik, logik komandalar va bitlar bilan ishlash komandalari bajarilganda, xolat registrida shakllanadi. Agar natijaning katta razryadidagi siljish komandasi bajarilganda, S (carry - siljish) razryadi o‘rnatiladi. Agar komandani bajarilish natijasi nolga teng bo‘lsa Z (zero - nol) razryadi o‘rnatiladi. Agar katta razryad natijasi 1 ga teng bo‘lsa, N (negative - salbiy natija) razryadi o‘rnatiladi. Agar komandani bajarilishida belgili sonni razryadli setkasi to‘lib qolishi sodir bo‘lgan bo‘sa, V (overflow - to‘lish) razryadi o‘rnatiladi. Belgili sonni razryadli setkasi to‘lib qolganda, S = N Ф V (sign - belgi) belgi natijasini to‘g’ri ko‘rsatadi. Agar komanda bajarilish paytida natijaning uchinchi razryadidan siljish sodir bo‘lgan bo‘lsa, H (half carry - yarimsiljish) o‘rnatiladi. Operandlarni solishtirishda tarmoqlanish uchun qo‘llaniladigan, shartli o‘tishlar komandalari 2-jadvalda keltirilgan.

2-jadval. Operandlarni solishtirishda tarmoqlanish uchun qo‘llaniladigan, shartli o‘tishlar komandalari



Shartli o‘tishlar komandalariga yana CPSE (Compare and Skip if Equal -solishtirish va o‘tkazib yuborish, agar teng bo‘lsa) komandasi kiradi. Bu komanda ikkita UMR tarkibini solishtaradi va, agar tarkibi bir xil bo‘lsa keying komandadan keyin o‘tkazib yuboradi.


Muvofiq shart bajarilsa, SBRC, SBIS, SBIC (Skip if Bit in Register [I/O Register] is Set [Cleared]) komandalari keyingi komandani o‘tkazib yuboradi.
Massivlarni qayta ishlashda tsiklik dasturlarda ma’lumotlar xotirasini predekrementli va postinkrementli nisbiy adreslashni, hamda ma’lumotlar xotirasini siljishli nisbiy adreslashni qo‘llash foydali bo‘ladi.

Xulosa



Bizning dasturimizda biz faqat registrlar holatini o‘zgartiramiz, keyin ularni kuzatib boramiz, shuning uchun biz dasturning bajarilishini nazorat qila olamiz va agar biror narsa noto‘g'ri bo‘lsa, xatoni tezda bartaraf eta olamiz.
Dasturni ro‘yxatga olish dasturida ishlatiladigan kontent o‘zgarishini kuzatish orqali bosqichma-bosqich rejimda bajardik. Belgilangan o‘chirish kuzatuv nuqtalari soat oynasidan bo‘lishi mumkin.AVR Studio atrof-muhit tuzatuvchisi ham quyidagilarni ta'minlaydi vazifalar: kursorni bajarish va ularning orasidagi pauza bilan buyruqlarni ketma-ket bajardik.Nazorat nuqtalari bilan ishlash. Dasturni amalga oshirishda nazorat nuqtalari ro‘yxatida ko‘rsatilgan manzillar bilan buyruqlar bajarilgandan so‘ng, otladka qilish nazoratini to‘xtatish va o‘tkazish amalga oshirildi. AVR Studio dasturi otladka qilish rejimida AVR studiyasining asosiy funktsiyalari kompaniyaning mikrokontrollerlari uchun dasturiy ta'minotni ishlab chiqish funktsiyasi va otladka qilish funktsiyasidir. AVRStudio dasturiy muhitida assembler dastur tilida ishlatiladigan massivlardan va arifmetik operatorlardan foydalanishni o‘rganish.Bu qismda dasturdagi ma’lumot strukturalari bilan tanishishni boshlaymiz. Dasturda ikki asosiy tur ma'lumot strukturalari mavjuddir. Birinchisi statik, ikkinchisi dinamikdir. Statik deganimizda hotirada egallagan joyi o‘zgarmas, dastur boshida beriladigan strukturalarni nazarda tutamiz. Dinamik ma’lumot tiplari dastur davomida o‘z hajmini, egallagan hotirasini o‘zgartirishi mumkin.

Foydalanilgan adabiyotlar ro’yxati;
Download 111.2 Kb.

Do'stlaringiz bilan baham:
1   2




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