V bob Assembler tilida dasturlash


Download 0.51 Mb.
Pdf ko'rish
bet2/5
Sana22.04.2023
Hajmi0.51 Mb.
#1382060
1   2   3   4   5
Bog'liq
10-amaliy

5.2. Assembler tili
Assembler so'zi ingliz tilidan olingan bo'lib, yig'uvchi, jamlovchi ma'nolarini anglatadi. 
Assemblerda yoziladigan dasturlar hamma dasturlash tillarida bo'lgani kabi, oddiy matn sifatida 
matn muharrirlari orqali yoziladi. Aslini olganda assembler ham bir dastur bo'lib, u berilgan 
matndagi assembler buyruqlarini mashina buyruqlariga o'giradi. Bu til quyi darajali til deb 
atalishining sababi shuki, assembler tili mashina tiliga juda yaqin ko'rinishga ega. Undagi har bir 
1
Bu yerda protsessor little endian ekanligi nazarda tutilgan. To'liq ma'lumot uchun «O'zgaruvchilarni e'lon qilish» mavzusiga 
qarang.
45


vazifa, topshiriq, amal (amal deganda, arifmetik amallarni bajaradigan buyruqlar ko'zda tutiladi) 
yoki buyruq aniq bir mashina darajasidagi buyruqqa to'g'ri keladi, ya'ni assemblerdagi har bir 
buyruq mos ravishda o'z yagona mashina kodiga ega. Masalan, yuqori darajali dasturlash 
tillaridagi ma'lum bir ifoda yoki buyruq mashina tilidagi 10-15 ta yaqin mashina buyruqlari bilan 
ifodalanadi. Shuning uchun ham assembler boshqa dasturlash tillari kompilyatorlaridan 
soddaroqligi bilan ajralib turadi.
Eslatma
: Ushbu kitobda bundan buyon «Assembler tilida yozilgan dastur» va «Assembler 
dasturi» iboralari bir xil ma'noda ishlatiladi.
5.3. O'zgaruvchilarni e'lon qilish
O'zgaruvchilar dasturlashda katta ahamiyatga ega. Matematika kursidan ma'lumki, funksiya 
ma'lum bir o'zgaruvchilarga bog'liq bo'ladi. O'zgaruvchi esa har xil qiymatlarni qabul qilib, doim 
o'zgarib turadi. Unga bog'liq holda funksiya qiymati ham o'zgarib turadi. Masalan,
x=
x2
4
funksiyasini oladigan bo'lsak, uning o'zgaruvchisi hisoblanadi. Shu tariqa dasturni ham 
funksiya deb tushunsak, uning ham o'z o'zgaruvchilari mavjud. Lekin biz daftarda yechadigan 
tenglama yoki funksiya o'zgaruvchilaridan dasturdagi o'zgaruvchilarning farqi shundaki, ular 
uchun alohida qiymat saqlash maqsadida xotiradan joy ajratiladi. Qancha va qanday joy ajratish 
bu dasturchi vazifasiga kiradi. Demak, dasturdagi o'zgaruvchilar bu dasturchining kerakli 
qiymatlarini dasturning boshidan oxirigacha bo'lgan ish jarayonida saqlaydigan va xotirada 
ma'lum bir joyni ajratish yo'li bilan amalga oshiradigan obyektlardir. 
Yuqoridagi boblarda xotira haqida ma'lumot olgan bo'lsangiz, ravshanki, xotiraga murojaat 
etganda kerakli xotira sohasining manzili orqali aloqaga kirishiladi. O'zgaruvchilarda ham shu 
narsa yuz beradi. Biz ularni birinchi marta e'lon qilganimizda, ya'ni dasturga tanishtirganimizda, 
xotiradan keraklicha joy ajratiladi va bu joy manzili o'zgaruvchi sifatida dasturga jo'natiladi. Biz 
dasturda o'zgaruvchiga murojaat qilish uchun berilgan manzildan foydalanamiz. Manzilning o'zi 
ham bunday olib qaraganda qandaydir bir son bo'lib, unga keyinchalik murojaat qilish uchun 
dasturchi eslab qolishiga to'g'ri keladi. Dasturlash davomida ba'zida shunday o'zgaruvchilarning 
30-40 tasi kerak bo'lishi mumkin. Bu har bir o'zgaruvchidan foydalanish uchun uning manzilini 
eslab qolishi zarur deganidir. Inson ruhiyatidan ma'lumki, kishi katta-katta sonlardan ko'ra 
harflardan, belgilardan tashkil topgan nomlarni yoki hech bo'lmaganda bo'g'inlarni ancha yaxshi 
eslab qoladi. Shuni hisobga olgan holda dasturlashda ham matematikada bo'lgani kabi 
o'zgaruvchilarga ularni e'lon qilganda nom beriladi.
O'zgaruvchi nomi assembler tili nuqtai nazarida xotiradan ajratilgan joy manziliga qo'yilgan 
nishondir. Demak, nishon bu o'zgaruvchi uchun berilgan nom ekan. Dasturlash davomida 
o'zgaruvchiga murojaat qilish kerak bo'lgan joylarda nishonlar yoziladi. Nishonlar faqat dasturchi 
uchun ahamiyatga ega bo'lib, assembler dasturni yig'ish chog'ida ularni hammasini kerakli 
mantiqiy manzillarga almashtirib chiqadi.
O'zgaruvchi, ya'ni nishon nomlari harflardan, raqamlardan va _, $, #, @, ~, ., ? kabi 
maxsus belgilardan tashkil topishi mumkin. Nomlashda faqat lotin alifbosidagi harflar ishlatiladi. 
Nishon nomi harf bilan boshlanishi shart! Ammo ba'zi, maxsus hollarda nishon ., _ va ? 
belgilari bilan ham boshlanishi mumkin. Bu hollar haqida birozdan so'ng so'z yuritamiz. 
O'zgaruvchi nomi 4095 ta belgidan ortiq bo'lmasligi kerak.
Nishonga qanday nom berish dasturchiga havola. Asosiysi o'zgaruvchiga shunday nom 
berish kerakki, nom unda qanday qiymat saqlanayotgani haqida bildirib tursin. Masalan: x, y, 
abc, F7, eng_katta_b, EKUK va hokazo. NASM kompilyatori bosh harflarni kichik 
harflardan farqlaydi. Ya'ni o'zgaruvchilar nomi bir xil bo'lsada, faqat bosh yoki kichik harflarga 
46


farq qilsa ular boshqa-boshqa o'zgaruvchilar hisoblanadi. Masalan: hisob, Hisob, HISOB va 
hiSOB boshqa-boshqa o'zaruvchilar hisoblanadi.
Endi bevosita o'zgaruvchi uchun xotiradan joy ajratishga to'xtalsak. Buni biz dasturlash tilida 
o'zgaruvchini e'lon qilish deb ataymiz. Buning asosan ikki xil yo'li bor. Birinchisida faqat 
keraklicha joy ajratiladi va manzil nishonga o'zlashtiriladi. Ikkinchisida esa joy ajratilishi bilan 
birga o'zgaruvchiga boshlang'ich qiymat ham beriladi, ya'ni o'zgaruvchi e'lon qilinishi bilan birga 
u aniqlanadi ham. Birinchi usulda e'lon qilinadigan o'zgaruvchilar dasturning .bss bo'limida 
yoziladi. Yozish qoidasida esa biz RESX direktivasidan foydalanamiz. X o'rnida 6-jadvalda 
ko'rsatilgan harflardan biri bo'lishi mumkin. Bu harflar qancha xotira ajratilishini aniqlaydi. 
Direktiva iborasiga kelsak, bu faqat assembler tushunadigan va umuman mashina tiliga 
o'girilmaydigan maxsus buyruqlar. Assembler RESX ni ko'rganida o'zgaruvchi uchun joy 
ajratilishi kerakligini anglaydi.
6-jadval

Download 0.51 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5




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