Dasturlash uslublari va paradigmalari fanidan oraliq nazorat savollari


Download 37.01 Kb.
bet3/7
Sana24.12.2022
Hajmi37.01 Kb.
#1053836
1   2   3   4   5   6   7
Bog'liq
Shuhrat Hamroyev 5

ADD dst, src; dst: = (dst) + (src).
SUB buyrug'i birinchi operanddan ikkinchi operandni ayiradi va natijani birinchi operand o'rniga qo'yadi, ya'ni.
SUB dst, src; ; dst: = (dst) - (src)
INC (o'sish) buyrug'i operandga 1 qo'shadi, bu registr (segmentdan tashqari) yoki bayt yoki so'z hajmning xotira joyi bo'lishi mumkin:
INC op; op:= (op) + 1.
DEC (kamaytirish) buyrug'i INC ko'rsatmasiga o'xshaydi, faqat operanddan bittasini ayiradi:
DEC op; op:= (op) – 1.

  1. Qaysi holatlarda dastur assembler tilida yaratilishi boshqa dasturlash tiliga nisbatan samaradorligi yuqori bo’ladi?(drayver, komyuter viruslari, foydalanuvchi dasturlari qatlami, operatsion tizim qatlami,qurilmalarni boshqarish dasturlari qatlami)

  2. Assembler dasturlash tili uchun kompilyatorlar. (FASM, NASM, TASM, MASM,GAS, AS, obyekt fayl, yuklanuvchi fayl).

  • FASM - bepul ko'p o'tishli assembler, Tomas Grishtar tomonidan yozilgan fasm mustaqil bo'lib, dastlab TASM tomonidan tuzilgan va 1999 yil 4 maydan boshlab o'z manbalaridan 0.90 versiyasida yaratilishi mumkin bo'ldi. fasm kichik o'lchamli va juda yuqori kompilyatsiya tezligiga ega, ko'plab muntazam vazifalarni avtomatlashtirishga imkon beruvchi boy va sig'imli sintaksisga ega.

  • NASM - Intel x86 arxitekturasi uchun bepul (LGPL va BSD litsenziyasi) assembler. 16, 32 va 64 bitli dasturlarni yozish uchun foydalaniladi. NASM Simon Tatham tomonidan Julian Hall bilan yaratilgan va hozirda SourceForge.net saytida kichik ishlab chiqish guruhi tomonidan ishlab chiqilgan. U dastlab o'z litsenziyasi bo'yicha chiqarilgan edi, lekin keyinchalik litsenziya tanlash bilan bog'liq ko'plab muammolardan so'ng ushbu litsenziya GNU LGPL ga o'zgartirildi. 2.07 versiyasidan boshlab litsenziya "soddalashtirilgan BSD" ga o'zgartirildi.

  • TASM - Borlandning x86 arxitekturasi uchun assembler tili dasturlarini ishlab chiqish uchun dasturiy paketi. Bundan tashqari, TASM Turbo C va Turbo Pascal kabi Borlandning yuqori darajali tillaridan kompilyatorlar bilan ishlashi mumkin. Turbo seriyasidagi boshqa dasturiy paketlar singari, TASM endi qo'llab-quvvatlanmaydi. TASM paketi Turbo Linker bilan birga keladi va ob'ekt .obj faylini yaratadi, uni bog'lovchi bajariladigan faylga aylantiradi. Olingan bajariladigan fayllarni Turbo Debugger yordamida tuzatish mumkin.

  • MASM- x86 oilasi protsessorlari uchun assembler. U dastlab Microsoft tomonidan MS-DOS operatsion tizimida dasturlar yozish uchun ishlab chiqarilgan va bir muncha vaqt u uchun mavjud bo'lgan eng mashhur assembler bo'lgan. MASM turli xil so'l moslamalarni va tuzilgan dasturlash idiomalarini, jumladan takrorlash, protsedura chaqiruvi va interleaves uchun yuqori darajadagi konstruktsiyalarni qo'llab-quvvatladi. Keyinchalik Windows uchun dasturlar yozish imkoniyati qo'shildi. MASM Microsoft-ning 16-bitli va 32-bitli alohida versiyalariga ega bo'lmagan bir nechta ishlab chiqish vositalaridan biridir.

  • GAS - GNU loyihasining assembleri; GCC kompilyatori tomonidan foydalaniladi. GNU Binutils paketiga kiritilgan. Bir nechta protsessor arxitekturalari uchun kodni boshqaradigan va kompilyatsiya qiladigan o'zaro faoliyat platforma dasturi. GPL 3 bepul litsenziyasi ostida tarqatiladi. GAS sintaksisi va direktivalari barcha platformalarda deyarli bir xil. Direktivlar nuqta bilan boshlanadi. Ko'p qatorli izohlar C (/* … */) kabi belgilanadi. Bir qatorli sharhlar turli platformalarda turlicha belgilanadi; masalan, GAS da x86 va x86-64 uchun ular C++ da (// ...) yoki sh (# ...) da, ARM uchun GASda esa @ belgisi bilan belgilanadi.

  1. Assembler tilida yozilgan dasturni kompilyatsiya qilish bosqichlarini bayon qiling (NASM,*.asm fayl,obyekt fayl,GCC,*.exe fayl)

  • Windows operatsion tizimlari uchun assembler tilida dasturlarni kompilyatsiya qilish va bog'lash jarayonlarini ko'rib chiqamiz.

Windows ostida kompilyatsiya qilish uchun MASM32 va TASM32 kompilyatorlaridan foydalaniladi. *.exe fayllarini TASM32 bilan kompilyatsiya qilish va ulash:
\tasm32\bin\tasm32.exe test.asm, test.obj, test.lst /zi /t /ml /m3 /q
\tasm32\bin\tlink32 /x /Tpe /ap /c /V4.0 test.obj, test.exe, , user32.lib

MASM32 yordamida *.exe fayllarini kompilyatsiya qilish:


\masm32\bin\ml.exe /c /coff test.asm
\masm32\bin\link.exe /SUBSYSTEM:WINDOWS test.obj
Kompilyatsiya qilish va bog'lashdan so'ng, kompilyatorga qanday parametrlarni o'rnatganingizga qarab, *.exe yoki *.com formatida bajariladigan faylni olishingiz kerak.

  1. Assembler tilida boshqaruv buyruqlarini bayon qiling(shartli o’tish,shartsiz o’tish,taqqoslash buyrug’i, nishon, loop)

  • Shartli o'tish - bu protsessorga shunday buyruq bo'lib, unda bayroq registrining holatiga qarab boshqaruv ma'lum bir manzilga o'tkaziladi, boshqacha aytganda, sakrash. Bu manzil yaqin yoki uzoq bo'lishi mumkin. Agar o'tilayotgan manzil 128 bayt orqaga va keyingi ko'rsatmadan 127 bayt oldinda bo'lsa, sakrash yaqin hisoblanadi.

vOdatda, o'tish buyrug'idan oldin taqqoslash buyrug'i bo'lib, natijaga qarab bayroqlarning registrini o'zgartiradi. Ikkita taqqoslash buyrug'i mavjud: cmp va test. Eng ko'p qirrali cmp. Cmp ko'rsatmasi ikkita operandni taqqoslaydi. U ikkita qiymatni (registr, xotira, tezkor qiymat) taqqoslaydi va agar ular teng bo'lsa, Z nol bayrog'ini (zoflag) o'rnatadi.

  • JMP ko'rsatmasi Assemblerda shartsiz o'tish ko'rsatmasi. Belgilangan joyga shartsiz sakrashni mos ravishda bajaradi. Nomidan ko'rinib turibdiki, bu shartsiz o'tish. Bu shuni anglatadiki, agar manba kodida JMP buyrug'i topilsa, u holda bu buyruq hech qanday shartlarsiz LABELda ko'rsatilgan manzilga o'tadi - har qanday holatda.

JMP buyrug'i sintaksisi:
JMP YORLIQ
Yorliq – bu identifikator, identifikatordan keyin ikki nuqtadan iborat. Identifikator ma'lum bir dasturlash tili uchun identifikatorlarni kompilyatsiya qilish qoidalariga muvofiq tuzilishi kerak.

  • CMP yo'riqnomasi ikkita operandni solishtirish uchun ishlatiladi. Oddiy qilib aytganda, bu buyruq ikkita raqamni solishtiradi, ya'ni bu ikki raqam teng yoki teng emasligini tekshiradi. CMP ko'rsatmasi yordamida assemblerda raqamlarni taqqoslash quyidagi algoritm bo'yicha amalga oshiriladi:

  1. NUMBER1 dan NUMBER2 ayiriladi (NUMBER1 - NUMBER2)

  2. Agar natija nolga teng bo'lsa, NUMBER1 = NUMBER2

  3. Agar raqamlar teng bo'lsa, ya'ni natija 0 bo'lsa, ZF bayrog'i o'rnatiladi

  1. Imperativ protseduraviy dasturlash paradigmasi haqida bayon qiling(protsedura, funksional dekompozitsiya, funksiyaga murojaat, qism masala, qism dastur, struktura).

  • Bu eng qadimgi dasturlash paradigmalaridan biridir. Mashinaning arxitekturasi bilan yaqin aloqada. U fon Neyman arxitekturasiga asoslangan bo’lib topshiriq bosqichlari yordamida dasturning holatini o'zgartirish orqali ishlaydi. U holatni o'zgartirish orqali bosqichma-bosqich vazifani bajaradi. Maqsadga qanday erishish mumkinligiga e'tibor qaratiladi. Paradigma bir nechta bosqichlardan iborat bo'lib, ularning barchasi bajarilgandan so'ng, natija saqlanadi.

Protsessual dasturlash paradigmasi
Ushbu paradigma asosiy mashina modeli nuqtai nazaridan protseduraga urg'u beradi. Protsessual va imperativ yondashuv o'rtasida farq yo'q. U kodni qayta ishlatish qobiliyatiga ega va foydalanish mumkinligi bilan farq qiladi.

  1. Obyektga yo’naltirilgan dasturlash paradigmasi haqida bayon qiling (sinf, obyekt, ochiq, yopiq, himoylangan, inkapsulayatsiya, polimorfizm,merosxo’rlik).

  • Ob'ektga yo'naltirilgan dasturlash (OOP) - o'zaro bog'langan mavhum ob'ektlar tizimi va ularni amalga oshirish tizimi sifatida mavzu sohasini (va/yoki muammoli sohani) ko'rsatishga asoslangan dasturlash paradigmasi.

Protsessual dasturlashning asosiy muammosi shundaki, ma'lumotlar va ishlov berish funktsiyalari bog'lanmagan. Bu dasturni ishlab chiqishda biroz murakkablikni keltirib chiqardi. OOP kontseptsiyasining paydo bo'lishi bilan yangi ma'lumotlar strukturasi - Class paydo bo'ldi. Bu mohiyatan strukturaga (S tilida) yoki yozuvga (Paskalda) oʻxshagan maʼlumotlar turi boʻlib, unda maʼlumotlardan (xususiyatlardan) tashqari, ularni qayta ishlash funksiyalari (usullari) ham mavjud edi. Shu bilan birga, irsiylik, polimorfizm va inkapsulyatsiya kabi xususiyatlar paydo bo'ladi.

Download 37.01 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




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