Assemblerda - Muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti telekommunikatsiyalar fakulteti

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:
|