Mavzu: Assembler tilida dasturlash

COBOL, Java yoki C kabi boshqa ramziy dasturlash tillari bilan ta'minlanmagan
funktsiyalar uchun kichik dasturlarni yozishimiz kerak.
Assambleyer shunday ishlaydi
Kompyuterlar ma'lum bir asosiy ko'rsatmalar to'plami bilan ta'minlanadi, ular
kompyuter bajarishi mumkin bo'lgan asosiy operatsiyalarga mos keladi. Masalan,
"Load" iborasi protsessorning ketma-ket bitlarini protsessor xotirasidagi joydan
registr deb ataladigan maxsus omborga ko'chirilishiga olib keladi.
Dasturchi ushbu assembler ko'rsatmalaridan foydalangan holda dastur yozishi
mumkin.
Deb nomlanuvchi assambleyerlarning ushbu ketma-ketligi
manba kodi
yoki manba
dastur, keyinchalik dasturni boshlaganimizda assembler dasturida ko'rsatiladi.
Assembler dasturi har bir dastur yo'riqnomasini manba
dasturida oladi va tegishli
bitli oqim yoki naqsh hosil qiladi (nollar qatori va ma'lum uzunlikdagi birliklar).
Assambleyer dasturining chiqishi kirish manbai dasturiga nisbatan ob'ekt kodi yoki
ob'ekt dasturi deb ataladi. Ob'ekt dasturini tashkil etadigan nollar va bir qatorlar
qatori mashina kodi deb ham ataladi.
Keyin biz ob'ekt dasturini istalgan vaqtda ishga tushirishimiz mumkin.
Assambleya tili ko'rsatmalar yoki izohlarni ifodalovchi bayonotlardan iborat.
Yo'riqnomalar tilning ishchi qismi bo'lib, quyidagi uch guruhga bo'linadi:
Mashina uchun ko'rsatmalar.
Montajchi uchun ko'rsatmalar.
Ibratli ko'rsatmalar.
O'rnatish kodini qanday qo'llaymiz?
Ko'pgina kompilyatorlar manba kodini to'g'ridan-to'g'ri mashina kodiga o'zgartirganligi
sababli yarating
dasturiy ta'minotni ishlab chiquvchilar
ko'pincha assembler tilidan
foydalanmasdan dasturlar. Ammo ba'zi hollarda biz dasturni aniq sozlash uchun
assembler kodidan foydalanishimiz mumkin. Masalan, dasturchi ma'lum bir
jarayonni
iloji boricha samarali ishlashiga ishonch hosil qilish uchun uni assembler tilida yozishi
mumkin.
Assembler tillari protsessor arxitekturasiga qarab turlicha bo'lishiga qaramay, ular
ko'pincha tegishli ko'rsatmalar va operatorlarga ega. Quyida x86 protsessorlarini qo'llab-
quvvatlaydigan ko'rsatmalarga ba'zi misollar keltirilgan.
MOV - ma'lumotlarni bir joydan boshqasiga ko'chirish.
ADD - ikkita qiymatni birga qo'shish.
SUB - bitta qiymatni boshqa qiymatdan ayirish.
PUSH - ma'lumotlarni to'plamga surish.
POP - to'plamdan olingan ma'lumotlar.
JMP - boshqa joyga o'tish.
INT - jarayonni to'xtatish.
3 va 4 raqamlarini qo'shish uchun quyidagi oddiy yig'ish kodidan foydalanishimiz
mumkin:
mov eax, 3 - "eax" registriga 3 yuklaydi.
mov ebx, 4 - "ebx" registrga 4 yuklaydi.
eax, ebx, ecx qo'shing - "eax" va "ebx" ni qo'shing va natijani (7) "ecx" da saqlang.
Biroq, assemblerda dastur yozish juda mashaqqatli jarayondir. Buning sababi shundaki,
har bir operatsiya juda oddiy darajada bajarilishi kerak. Kompyuter dasturini yaratish
uchun hech qachon assembler kodidan foydalanishning hojati bo'lmasligi mumkin, ammo
assambleyer tilini o'rganish ko'pincha informatika o'quv dasturining bir
qismidir, chunki
u protsessorlarning ishlash uslubi to'g'risida foydali ma'lumot beradi.
Assembler tilining afzalliklari
Ushbu asosiy tilni bilish sizni quyidagilar haqida xabardor qiladi:
Dasturlar OS, protsessor va BIOS bilan birgalikda ishlaydi.
Ma'lumotlar xotirada ko'rsatiladi.
Protsessor ko'rsatmalarni bajaradi.
Ma'lumotlarga ishlov berish.
Dastur tashqi qurilmalarga kirish huquqiga ega bo'ladi.
Assembler tilidan foydalanishning afzalliklari:
Kamroq xotira va bajarilish vaqtini talab qiladi.
Assembler apparatga tegishli murakkab vazifalarni sodda usulda iloji boricha
osonlashtiradi.
Vaqt tanqidiy ishlariga mos keladi.
Interfaol tartiblarini va boshqa xotira dasturlarini yozish uchun eng mos keladi.
Assembler tilini o'rganishimiz kerakmi?
Assambler tilini o'rganishimiz kerakmi, bizning ishimizga bog'liq. Ko'pgina ishlab
chiquvchilar uchun javob "yo'q".
Assembler tilini o'rganishning ikkita asosiy sababi bor: biz uni o'zimiz
ishlatishimiz
kerakligi yoki kompyuterlarni fundamental darajada tushunishni istaganimiz uchun.
Amaliy nuqtai nazardan, faqat bir nechta muhandislar va kompyuter olimlari
assemblerlardan foydalanadilar.
Dasturiy ta'minot ishlab chiqaruvchilarning aksariyat qismi, shu jumladan deyarli barcha
dasturlarni ishlab chiquvchilar yuqori darajadagi dasturlash tillaridan foydalanadilar va
assembler kodisiz. Ammo biz assambler tilidan foydalanadigan ba'zi bir aniq yo'nalishlar
quyidagilardir:
Operatsion tizimlar.
Mikrodastur.
Uskunalar dasturlari.
Dasturlash tillarini loyihalash.
Kompilyatorlarni loyihalash.
O'rnatilgan tizimlar
.
Uskuna dizayni.
Ilg'or
kriptografiya
.
Nazariy informatika.
Assamblerni o'rganishning yana bir sababi bu kompyuterning tubida nima borligini
yaxshiroq anglashdir. (Shuning uchun deyarli barcha IT mutaxassislari ushbu tilni o'quv
jarayonida o'rgatishadi.)
Agar siz kompyuterlarga sho'ng'ishni yaxshi ko'radigan va texnologiyaga qiziqsangiz,
past darajadagi tizimlarni rivojlantirishda martaba haqida o'ylashingiz mumkin.
Assembler
tili kodini yaratish
Kod generatori sintaksis analizatori va/yoki semantik analizatorning chiqishini quyi
darajadagi kodga, masalan, assembler tiliga o'giradi.
Kompilyatorning birinchi qismi