Nazariy malumot
Mavzu: Maʼlumotlar massivlariga ishlov berish Ishning maqsadi:
Sikllar yordamida massiv maʼlumotlarini oʼrganish va ularning
algoritmini yaratish.
Ishning mazmuni:
Sikl maxsus algoritmik tuzilma boʼlib, usiz hech bir dasturlash tili bajarilmaydi. Boshqaruvni uzatish komandalari yordamida dastur kodining bir qismini siklik bajarilishini tashkil qilish mumkin.
Hisoblagichli sikl hisoblagich sifatida istalgan bepul registrni olish bilan oʼsha bir shartli komandalar yordamida tashkil etilishi mumkin. Аmmo mikroprotsessorda bunday sikllarni tashkil qilish uchun maxsus komandalar - loop/loope/loopne koʼzda tutilgan. Bu komandalar hisoblagich sifatida sx registridan foydalanadi, ularning oʼzi har bir sikl iteratsiyasidan soʼng uning qiymatini kamaytiradi va kamaytirilgandan keyin uni nolga solishtiradi (2.1).
Loop - sx registrni kamaytiradi;
- sx ni nol bilan taqqoslaydi, agar sx>0 boʼlsa, u holda boshqaruv oʼtish belgisiga oʼtkaziladi (tsiklni davom ettiradi).
Loope/loopne komandalari qoʼshimcha shart boʼyicha sikldan chiqish .
Аlgoritm muammoni yechishga olib keladigan qadamlar ketma-ketligi
hisoblanadi
Blok-sxema natijaga erishish uchun bajarilishi kerak boʼlgan operatorlar ketma-ketligini koʼrsatadigan sxematik tasvirdan iborat. Blok-sxemalar dasturlarni yozishda keng qoʼllaniladi, chunki ular:
- Komandalar shaklida yozishga qaraganda tushunish ancha oson.
- Sozlash jarayonini soddalashtiradi.
- Samarali dasturiy hujjatlarni yaratish imkonini beradi.
Dasturni namoyish qilish Va muhokama qilish jarayonini
yengillashtiradi.
section .data
massiv1 resd 10 ; 10 elementli 1-massiv
massiv2 resd 10 ; 10 elementli 2-massiv
section .text
global _start
_start:
mov ecx, 0A01 ; Boshlang'ich manzil (1-massiv)
mov edi, 0A00 ; 2-massivga yozish uchun manzil
copy_and_reverse:
cmp ecx, 0A0A ; Oxirgi manzil (0A0A + 1)
jae end_copy ; Agar manzil tugagan bo'lsa, to'xta
mov eax, [ecx] ; 1-massivdan qiymatni o'qish
mov [edi], eax ; 2-massivga qiymatni yozish
add ecx, 4 ; 1-massivdagi indeksni o'zgartirish (4 baytning o'lchamida, ya'ni resd)
sub edi, 4 ; 2-massivdagi indeksni kamaytirish (4 baytning o'lchamida, ya'ni resd)
jmp copy_and_reverse ; Keyingi qiymatni olish uchun siklga qaytish
end_copy:
; Dastur tugadi
; Bu joyda dastur tugadi va boshqa narsalar qo'shishingiz mumkin
Xulosa 4- amaliy mashg’ulotdan bizga berilgan massiv ustida amallar bajarishni ular ustida ishlashni o’rganib chiqdik.