• Assembler dasturni kompilyatsiyalash usullari
  • Assemblerda makroslar yaratish




    Download 0,69 Mb.
    Pdf ko'rish
    bet4/5
    Sana31.05.2024
    Hajmi0,69 Mb.
    #258665
    1   2   3   4   5
    Bog'liq
    17-mavzu
    Majmua bolalarni makt tay 23- 24, [03.09.2023 10 41] МАРГИЛАН ДЖИЗАК, 8-lab, diskret sirtqi, yevklid, Quloq, BdfxMAGnaz8TEzEFJhc8, 4-amaliy mashg\'ulot
    Assemblerda makroslar yaratish 
    Makroslar. Dasturlarda ba’zi buyruqlar ketma-ketligi, bir-necha marta 
    qaytarilish hollari ko‘p uchraydi. Assembler tilida bunday ketma- ketliklarni biron-
    bir nom bilan belgilab, ularni keyingi qaytarilish joylarida, o‘sha nom bilan yana 
    ishlatish mumkin bo‘ladi. Ana shunday nomlangan buyruqlar ketma-ketligi - 
    makros
    deb ataladi. Quyida Pentium 4 protsessori uchun yozilgan assembler 
    dasturi keltirilgan. Unda 
    P va Q 
    o‘zgarnvchilar qiymatlari joylarini o‘zaro, ikki 
    marotaba almashtirish talab etiladi. Bunda buyruqlaming asosiy ketma-ketligi 
    quyidagicha bo'ladi: 
    MOV EAX.P
    MOV EBX.Q


    MOV Q.EAX
    MOV P.EBX
    P va Q
    o‘zgaruvchilar qiymatlari joylarini o‘zaro, makrossiz ikki marotaba 
    almashtirish quyidagicha amalga oshiriladi: 
    MOV EAX.P 
    MOV EBX.Q
    MOV Q.EAX
    MOV P.EBX
    MOV EAX.P
    MOV EBX.Q
    MOV Q,EAX
    MO.V P. EBX 
    Ushbu ketma-ketlikni 
    SWAP
    nomli makros deb belgilasak, 
    P va Q 
    o‘zgaruvchilar qiymatlari joylarini o‘zaro, ikki marotaba almashtirish dasturini 
    quyidagicha yozish mumkin: 
    SWAP MACRO 
    MOV EAX.P
    MOV EBX.Q
    MOV Q.EAX
    MOV P.EBX
    ENDM 
    SWAP 
    SWAP 
    Makroslar - makrosning nomi, makros tarkibiga kirgan buyruqlar va 
    makrosning tugash joyini bildiruvchi 
    ENDM,
    direktivasidan iborat. 
    Assembler dasturni kompilyatsiyalash usullari 
    Assemblerda tuziladigan dasturlar mikroprotsessor imkoniyati va resurslarini 
    to‘liq hisobga olgan holda amalga oshiriladi, masalan, 16-bit, 32-bit va hk. 
    Dasturlarning tabiatiga bog‘liq ravishda ularni assemblerlash va bog‘lanish 
    muharrirlari yordamida exe-faylga yig‘ish uchun turli kompilyatorlar ishlab 
    chiqilgan. Masalan: 
    MASM (Macro Assembler) - Microsoft firmasining paketi. DOS bilan bir 
    vaqtda Windows 9x/NT uchun assembler dasturlarini kompilyatsilashda ishlatiladi. 
    Yangi versiyasi paketi MASM32 deb nomlanadi;
    TASM (Turbo Assembler) - Borland firmasining mahsuloti. DOS dasturlarini 
    kompilyatsiya qilishda qo‘llaniladi. Yangi versiyasi TASM5 yoki TASM5+ 
    (TASM5Plus) deb ataladi;


    WASM (Watcom Assembler) - Watcom firmasi tomonidan ishlab chiqilgan. 
    DOS va Windows uchun tuzilgan dasturlarni kompilyatsiyalashda juda sodda 
    interfeysga ega; Lazy Assembler - TASM ning rivojlantirilgan versiyasi, yangi 
    buyruq protsessorini o‘zida mujassamlashtirgan;
    FASM (Flat Assembler) - MSDOS, Windows, Linux kabi operatsion 
    tizimlarda ishlay oladigan, 16-, 32- hatto 64-razryadli protsessorlar uchun ham 
    qulay ish muhitiga ega bo‘lgan kompilyator.
    NASM (Netwide Assembler) - bu ham LINUX/BSD asosida ishlaydi;
    YASM (Yet another assembler) – bu kompilyator ham NASM ning 
    takomillashtirilgan versiyasi sanaladi. 
    Yuqoridagi paketlar ichida eng ko‘p tarqalgani va foydalanishda qulay 
    interfeysni taqdim etuvchi kompilyatorlardan asosiylari TASM, WASM hamda 
    MASM lar sanaladi. Hamma kompilyatorlarning ham deyarli o‘ziga xos 
    kamchiliklari mavjud. Shunday bo‘lsa-da, biz ushbu laboratoriya ishida TASM va 
    MASM32 paketlari bilan ish yiritishni o‘rganamiz. Chunki, ular dasturga ilova 
    qilinadigan kutubxona fayllarining boyligi, ishlashda ravon va tezlik 
    samaradorligining yuqoriligi, turli modullardan foydalanish imkonoyatining 
    mavjudligi bilan boshqalaridan ajralib turadi. 
    Demak, quyida berilgan dastur matnini biror matn muharriri orqali 
    kompyuterga kiritib, unga add16.asm deb nom beramiz va TASM katalogida 
    saqlaymiz.
    Dastur matni quyidagicha:

    Download 0,69 Mb.
    1   2   3   4   5




    Download 0,69 Mb.
    Pdf ko'rish