Assembler tilida o'nli kasr shaklidagi sonlar bilan ishlash


Download 179.41 Kb.
bet1/2
Sana15.01.2023
Hajmi179.41 Kb.
#1094264
  1   2
Bog'liq
3-mustaqil ish paradigma


O`ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI

MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI
UNIVERSITETI SAMARQAND FILIALI

"Kompyuter injiniring" fakulteti


"Dasturiy injiniring" kafedrasi
"Dasturlash uslublari va paradigmalar” fanidan


R E FERAT

Bajardi: DI20-10 Halimov Abdumannon


Qabul qildi: KARIMOV M. M


SAMARQAND – 2023


Mavzu:Assembler tilida o'nli kasr shaklidagi sonlar bilan ishlash;


Reja;


1. Assembler tilida haqida;


2. Assembler tilida o'nli kasrlar bilan ishlash;

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 sababl shuki, assembler tili mashina tiliga juda yaqin ko'rinishga ega. Undagi har bir vazifa, topshiriq, amal (amal deganda, arifmetik amallami 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 ¡foda yoki buyruq mashina tilidagi 10-15 ta yaqin mashina buyruqlari bilan ifodalanadi. Shuning uchun ham assembler boshqa dasturlash tillari kompilyatorlaridan soddaroqligi bilan ajralib turadi.
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 qiymâtiami qabul qilib, doinri _l_ 2 o'zgarib turadi. Unga bog'liq holda funksiya qiymati ham o'zgarib turadi. Masalan, / (* )= —— funksiyasini oladigan bo'lsak, uning o'zgaruvchisi x hisoblanadi. Shu tariqa dastumi ham funksiya deb tushunsak, uning ham o'z o'zgaruvchilari mayjud. 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 oigan bo'lsangiz, ravshanki, xotiraga murojaat etganda kerakli xotira sohasining manzili orqali aloqaga kirishiladi. O'zgaruvchilarda ham shu narsa yuz beradi. Biz ularni bïrinchi marta e'Ion 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 nomlami yoki hech bo'lmaganda bo'g'inlami ancha yaxshi eslab qoladi. Shuni hisobga oigan holda dasturlashda ham matematikada bo'lgani kabi o'zgaruvchilarga ularni e'Ion qilganda nom beriiadi. 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 dastumi yig'ish chog'ida ularni hammasini kerakli mantiqiy manzillarga almashtirib chiqadi. O'zgaruvchi, ya'ni nishon nomlari harflardan, raqamlardan va $, #, 0, ~, ., ? kabi maxsus belgilardan tashkil topishi mumkin. Nomlashda faqat lotin alifbosidagi harflar ishlatiladi. Nishon nomi harf bilan boshlanishi shartl 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 harflami kichik harflardan farqlaydi. Ya'ni o'zgaruvchilar nomi bir xil bo'lsada, faqat bosh yoki kichik harflarga farq qilsa_ular_boshqa-boshqa o 'z g a r u v ch ila rh iso b Ia n a d i._ M a sa la n :h iso b ,_ H iso b ,_ H iso B _ v a h is o B 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' manzii 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'zgamvchilar dasturning .b ss bo'limida yoziladi. Yozish qoidasida esa biz r esx direktivasidan foydalanamiz. x o'mida 6-jadvalda ko'rsatilgan harflardan bin bo'lishi mumkin. Bu harflar qancha xotira ajratilishini aniqlaydi. Direktive iborasiga kelsak, bu faqat assembler tushunadigan va umuman mashina tiliga o'girilmaydigan maxsus buyruqlar. Assembler r esx ni ko'rganida o'zgaruvchi uchun joy ajratilishi kerakligini anglaydi.

1-Rasm:1-Jadival
Qoidasi: nishon_nomi • resx n Bu yerda nishon_nomi bu dasturchi o'zgaruvchiga beradigan nom, r e sx - o'zgaruvchi o'lchami, n - natural son bo'lib, nechta x kattaligida joy ajratilishi kerakligini ko'rsatadi, ya'ni x*n bayt joy ajratiladi. O'quvchiga yanada tushunarli bo'lishi uchun shuni eslatib o'tamizki, masalan, xotiradan bir bayt joy ajratsangiz u yerda 0 dan 28 gacha, ya'ni 255 sonigacha bo'lgan sonlami sig'dira olasiz. Misollar:
x ' resb ,1
Bir bayt joy ajratib uning manzilini x o'zgaruvchisida (nishonida) saqlaymiz.
y resb 2
y o'zgaruvchisi uchun ikki bayt joy ajratamiz, ya'ni u yerda 0 dan 216-1 gacha bo'lgan sonlami sig'dira olamiz.
y2 resw 1
y2 o'zgaruvchisining o'lchami bu yerda y bilan teng. x, y va y2 o'zgaruvchilarida harfli va sonli qiymatlami saqlashingiz mumkin. Shuni aytish lozimki, bitta harf yoki bitta belgi uchun bir bayt joy kerak bo'ladi.
kasr resq 1 ;; o 'n li kasr son uchun 8 bayt ajratiladi
q2 reso 2 ;; q2 uchun 8 baytdan 1 6 bayt ajratiladi
katta_kasr r e st :-l • ;; katta_kasr uchun 10 bayt ajratiladi

Download 179.41 Kb.

Do'stlaringiz bilan baham:
  1   2




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