Al-Xorazmiy nomidagi Toshkent Axborot texnologiyalari universiteti Dasturiy inginering fakulteti 316-20 guruh talabasi Xaytboyev Jurabekning Kompyuterlarni tashkillashtirish fanidan
4-amaliy ishi
Tekshirdi: Hayitov Nasim. Topshirdi: Xaytboyev Jurabek. 28-variant
Assembler tili nima?
Tegishli maqolalar
Dastur kodi bo'yicha Fagan tekshiruvlari foydali bo'ladimi?
Assambleya tili
Assembler tili bir dasturlash tili ma'lum bir turdagi protsessor uchun mo'ljallangan past darajali. Biz uni ishlab chiqarishimiz mumkin manba kodi yuqori darajadagi dasturlash tilidan (masalan, C / C ++). Ammo biz ushbu tilda dasturlarni o'zimiz ham yozishimiz mumkin. Biz o'z navbatida assembler kodini assembler yordamida mashina kodiga aylantirishimiz mumkin.
Assembler - bu kompyuterni boshqaradigan va ko'rsatmalarni bitlar naqshiga o'zgartiradigan dastur. Protsessor undan asosiy operatsiyalarni bajarish uchun foydalanishi mumkin. Ba'zilar ushbu ko'rsatmalarni assembler tili deb atashadi, boshqalari esa bu atamadan foydalanadilar assambleya tili .
Biz qayerda assemblerdan foydalanamiz?
Har bir kompyuterda kompyuterning arifmetik, mantiqiy va nazorat ishlarini bajaradigan protsessor mavjud.
Har bir protsessor oilasi har xil operatsiyalarni bajarish uchun o'ziga xos ko'rsatmalarga ega, masalan, klaviatura kiritish, ma'lumotni ekranda aks ettirish va boshqa har xil vazifalarni bajarish. Ushbu ko'rsatmalar ketma-ketligini "mashina tiliga oid ko'rsatmalar" deymiz.
een protsessor faqat bitta va nol qatorlari bo'lgan mashina tili ko'rsatmalarini tushunadi. Biroq, mashina tili juda noaniq va murakkab, chunki dasturiy ta'minotni ishlab chiqish uchun foydalanish mumkin emas. Shunday qilib, assembler tili ramziy kodda va tushunarli shaklda turli xil ko'rsatmalarni ifodalovchi ma'lum bir protsessorlar oilasiga mo'ljallangan.
Assambleya tili - shakli va mazmuni bo'yicha mashina tiliga eng yaqin ramziy dasturlash tili. O'rnatish tili quyidagi hollarda foydalidir:
Biz dasturimiz bosqichlarini baytgacha va hatto bit darajasiga qadar ehtiyotkorlik bilan nazorat qilishimiz kerak.
COBOL, Java yoki C kabi boshqa ramziy dasturlash tillari bilan ta'minlanmagan funktsiyalar uchun kichik dasturlarni yozishimiz kerak.
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.