120
Makroslar – makrosning nomi, makros tarkibiga kirgan buyruqlar va
makrosning tugash joyini bildiruvchi
ENDM, direktivasidan iborat
bo‘ladi. Quyidagi misollarda makroslarda ishtirok etadigan o‘zgaruvchilar
har-xil bo‘lganda, qanday yo‘l tutilishi ko‘rsatilgan.
Bunday makroslar
parametrlarga ega makroslar deb ataladi.
Assembler tilida yozilgan dasturlarni mashina kodlariga o‘tkazish –
translyasiya qilish ikki o‘tishda (rus tilida – проход) amalga oshiriladi.
Birinchi o‘tishda dasturda ishtirok etadigan barcha simvollar ketma-
ketliklariga – metkalar va o‘zgaruvchilarning nomlariga mos keladigan
simvollar jadvali tuzib olinadi. Simvollar
jadvalini tuzish jarayonida,
dastur bajarilayotgan paytda metkalarga to‘g‘ri keladigan asosiy xotira
adreslarini aniqlab olish amalga oshiriladi. Dastur bajarilayotgan paytda bu
adreslar buyruqlar adresi sanagichiga -
ILCga (Instruction Location
Counter, rus tilida – счетчик адресов команд) yozib boriladi. Quyida
121
keltirilgan misolda, izohlar yoziladigan qismining oxirigi qatorida aynan
buyruqlar adresi sanagichining qiymatlari ko‘rsatilgan.
Ushbu qatordan
chapda joylashgan raqamlar qatori esa, har bir buyruq asosiy xotiraning
nechtadan baytini egallayotganligi ko‘rsatilan.
Keltirilgan dastur uchun hosil qilingan simvolli nomlar jadvali.
Ikkinchi o‘tishda esa
ob’ektli dasturni (rus tilida – объектная
программа) hosil qilish va
assembler protokolini bosmaga chiqarish
amalga oshiriladi.
Ko‘pgina dasturlar bittadan ortiq
muolajalardan (rus tilida –
процедуры) iborat bo‘ladi. Alohida-alohida
translyasiya qilingan
dasturlarni birlashtirib, bitta butun bajariladigan ikkilik kodga aylantirish
vazifasini
joylashtiruvchi dastur (rus tilida – компоновщик)
amalga
oshiradi (4.8-rasm).
122
4.8-rasm. Dasturni translyasiya qilish va joylashtirish.