Assembler operatorlari to‘rtta qismdan iborat yozuvlar qatori ko‘rinishida bo‘ladi: metkalar, amallar, operandalar va izohlar. Metkalar asosiy xotira adreslarini simvollarda ifodalangan nomlari sifatida ishlatiladi. Ular yordamida buyruqlar va ma’lumotlarga o‘tish amalga oshirladi, ya’ni asosiy xotiraning buyruqlar va ma’lumotlar saqlandigan joyiga (adresiga) murojaat qilish mumkin bo‘ladi. Agar operatorga ham metka qo‘yiladigan bo‘lsa, u qatorning boshlanishida yoziladi. Keltirilgan misollarning mohiyatini, ulardan birinchisi asosida ko‘rib chiqamiz. Ushbu va keyingi misollarda ham, birinchi qatorda yozilgan FORMULA, I, J va N lar – metkalar hisoblanadi. Keyingi qatorda buyruqlar - MOV, ADD va direktivalar – DD joylashgan. Uchinchi qatorda protsessorning ichki registrlari va o‘zgaruvchilarning nomlari, to‘rtinchi qatorda esa izohlar keltirilgan. Ko‘rilayotgan birinchi misolda Pentium 4 protsessorining asosiy ichki registri hisoblangan EAX registridan foydalanilgan (3.13-rasmga qaralsin). Bunda avval I o‘zgaruvchini EAX registriga yozib olish buyrug‘i – MOV EAX, I , keyin esa EAX registri qiymatiga J o‘zgaruvchini qo‘shish buyrug‘i - ADD EAX, J va EAX registrida hosil bo‘lgan natija N ning qiymatini xotiraga qaytib yozish buyruqlari - MOV N, EAX lar keltirilgan. Oxirigi uchta qatorda I, J va N lar uchun asosiy xotiradan 32-razryadli 66 so‘z uzunligidagi joylar ajratish direktivalari keltirilgan. Direktiva deganda – assemblerning o‘zi uchun mo‘ljallangan buyruqlar tushuniladi. Quyidagi 4.1- jadvalda Pentium 4 protsessori assembleri deriktivalarining ba’zilari keltirilgan. Assembler tilida yozilgan dasturlarni mashina kodlariga o‘tkazish – translyasiya qilish ikki o‘tishda (rus tilida – proxod) 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 – schetchik adresov komand) yozib boriladi. Quyida 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.
Do'stlaringiz bilan baham: |