Massivlar. Assemblerda tasvirlash va qayta ishlash
Mavzu: Massivlar. Assemblerda tasvirlash va qayta ishlash Assemblerda massivlarni tashkil qilish Reja: I.Kirish. II.Asosiy qism 2.1. Masivlar. 2.2. Dasturda massivning tavsifi va ishga tushirilishi . 2.3. Massiv elementlariga kirish. 2.4. Ikki o'lchovli massivlar. III. Xulosa. IV. Foydalanilgan adabiyotlar ro`yxati.
Kirish Massivlar, assembler dasturlash tilida katta ma'lumotlarni saqlash uchun foydalaniladigan turli elementlarni o'z ichiga olgan o'zgaruvchi to'plamlaridir. Assemblerda massivlar ko'rsatkich (index) orqali elementlarga murojaat qilish va ulardan ma'lumotlarni o'qish, yozish va qayta ishlash imkoniyatiga ega bo'lib, dasturlashda muhim asosiy qismni tashkil etadi. Assemblerda massivlar tasvirlanish tartibi va qayta ishlash jarayoni bir nechta qadamdan iborat bo'lishi mumkin: 1. Massivni tasvirlash: Massivni tasvirlash uchun quyidagi qadamalar amalga oshiriladi: a. Massivning nomi (identifier): Massiv nomi, massivning turi va o'lchami bilan belgilanadi. Masalan: myArray DW 10 dup(0) - bu 10 elementdan iborat 16-bitlik massiv. b. Elementlar soni: Massivning nechta elementdan iborat bo'lishi kerakligini belgilaydi. Bu son o'zgaruvchi turi bilan bog'liq bo'lishi mumkin. c. Boshlang'ich qiymatlar: Massiv elementlarining boshlang'ich qiymatlari belgilanadi. Misol uchun, myArray ning barcha elementlari 0 bilan boshlang'ichlangan. 2. Elementlarga murojaat: Massiv elementlariga murojaat qilish uchun indeks (ko'rsatkich) va tartib raqami (index) ishlatiladi. Indeks tartib raqamlarining 0 dan boshlanishi bilan belgilanadi. Murojaat uchun indeks ko'rsatkichining qiymati o'zgaruvchi turi bo'lishi kerak. Masalan, myArray[0] - massivning birinchi elementiga murojaat qilish. 3. Elementlardan ma'lumotlarni o'qish: Massiv elementlaridan ma'lumot o'qish uchun murojaat qilinadigan indeks bilan xonadon ma'lumot o'qiladi va unga qarab ishlanadi. Ma'lumotlarni o'qish uchun LOAD (yoki mov) komandasi yoki ularning variantlari ishlatiladi. 4. Elementlarga ma'lumotlarni yozish: Massiv elementlariga ma'lumot yozish uchun ham indeks bilan murojaat qilinadi va xonadagi ma'lumotga yangi qiymat yoziladi. Ma'lumotlarni yozish uchun STORE (yoki mov) komandasi yoki ularning variantlari ishlatiladi. 5. Qayta ishlash: Massivlar bilan qayta ishlash uchun sikl operatorlari (loop) yoki indeksni o'zgartirish imkonini beruvchi komandalar ishlatiladi. Sikl operatorlari yordamida massiv elementlarining barchasiga murojaat qilish, ma'lumotlarni o'qish va yozish amalga oshiriladi. Assemblerda massivlarni tasvirlash va qayta ishlash amaliyotlari assembler tilining sintaksisiga, dastur yozuvchisi va operatorlariga qarab o'zgarishi mumkin. Massivlarning to'g'ridan-to'g'ri adreslash rejimi, indekslar, tartib raqamlar va elementlar bilan ishlash uchun foydalaniladigan komandalar assembler dasturlash tilining asosiy qoidalaridan biridir.
2.1.Massivlar. Massiv -bir xil turdagi ba'zi elementlardan tashkil topgan tuzilgan ma'lumotlar turi. Assembler dasturlarida massivlarni qayta ishlashning imkoniyatlari va xususiyatlarini tushunish uchun siz quyidagi savollarga javob berishingiz kerak: Dasturda massivni qanday tasvirlash mumkin? Massivni qanday boshlash kerak, ya'ni uning elementlarining boshlang'ich qiymatlarini qanday belgilash kerak? Massiv elementlariga kirishni qanday tashkil qilish kerak? Bir nechta o'lchamdagi massivlarni qanday tashkil qilish kerak? Massivlar bilan standart operatsiyalarni qanday tashkil qilish kerak? 2.2.Dasturda massivning tavsifi va ishga tushirilishi Albatta, montaj dasturlarida massivlarni tavsiflash uchun maxsus vositalar mavjud emas. Agar dasturda massivdan foydalanish kerak bo'lsa, uni quyidagi usullardan biri bilan modellashtirish kerak: 1)ma'lumotlar tavsifi direktivalaridan birining operandlari maydonida massiv elementlarini sanab o'tish orqali. Ro'yxatlashda elementlar vergul bilan ajratiladi. Masalan,: ; 5 ta elementdan iborat massiv.Har bir elementning o'lchami 4 bayt: mas dd 1,2,3,4,5 2)dup takrorlash operatoridan foydalanish. Masalan,: ; 5 ta nol elementdan iborat massiv. ; Har bir elementning o'lchami 2 bayt: mas dw 5 dup (0) Ushbu aniqlash usuli massiv elementlarini joylashtirish va ishga tushirish uchun xotirani zaxiralash uchun ishlatiladi. 3) label va rep ko'rsatmalaridan foydalanish. Ushbu ko'rsatmalarning juftligi xotiradagi katta massivlarni tavsiflashni osonlashtirishi va bunday Tavsifning ko'rinishini oshirishi mumkin. Rep direktivasi assembler tilining so'l vositalarini nazarda tutadi va ko'rsatma va endm qatori o'rtasida tuzilgan qatorlarning belgilangan sonini takrorlashni keltirib chiqaradi. Masalan, mas_b identifikatori bilan belgilangan xotira maydonidagi baytlar qatorini aniqlaymiz.bunday holda, label direktivasi xotirani zaxiralash va ishga tushirish direktivalari kabi mas_b ramziy nomini belgilaydi. Yorliq direktivasining
afzalligi shundaki, u xotirani saqlamaydi, faqat ob'ektning xususiyatlarini aniqlaydi. Bunday holda, ob'ekt xotira hujayrasidir. Birin-ketin yozilgan bir nechta label ko'rsatmalaridan foydalanib, bir xil xotira maydoniga quyidagi fragmentda bo'lgani kabi turli nomlar va turli xil turlarni berish mumkin: ... n=0 ... mas_b label byte mas_w label word rept 4 dw 0f1f0h endm Natijada, xotirada to'rt so'zli f1f0 ketma-ketligi yaratiladi. Ushbu ketma — ketlikni dasturda qaysi maydon nomidan foydalanishimizga qarab baytlar yoki so'zlar qatori sifatida talqin qilish mumkin-mas_b yoki mas_w. 4)keyinchalik massiv sifatida talqin qilinishi mumkin bo'lgan xotira maydonining qiymatlari bilan boshlash uchun tsikldan foydalanish. Keling, bu qanday amalga oshirilganligi haqidagi misolni ko'rib chiqaylik. ;prg_12_1.asm MASM MODEL small STACK 256 .data mes db 0ah, 0dh, ' array -','$' mas db 10 dup (?); manba qatori i db 0 .code main: mov ax,@data mov ds,ax xor ax, ax; ax nolga teng mov cx,10 ;CX da pastadir hisoblagichining qiymati
mov si, 0; CX-dagi boshlang'ich element indeksi go:; ishga tushirish tsikli mov bh, i; i bh mov mas[si], bh; i qatorga yozish inc i; o'sish i inc si; keyingisiga o'tish ; massiv elementiga loop go; tsiklni takrorlang ; olingan massivni ekranga chiqarish mov cx,10 mov si,0 mov ah,09h lea dx,mes int 21h show: mov ah,02h ;qiymatni chiqarish funktsiyasi ; al dan ekranga mov dl,mas[si] dl, 30h qo'shing; raqamni belgiga aylantirish int 21h inc si loop show exit: mov ax ,4C00h; standart chiqish int 21h end main; dasturning oxiri 2.3.Massiv elementlariga kirish Massivlar bilan ishlashda massivning barcha elementlari kompyuter xotirasida ketma-ket joylashganligini aniq tasavvur qilish kerak. Ushbu tartibning o'zi ushbu elementlarning maqsadi va foydalanish tartibi haqida hech narsa aytmaydi. Va faqat dasturchi o'zi tuzgan ishlov berish