• OXIRI
  • Amaliy ish № Mashina kodlarida kompyuterning ishlash tamoyillarini o'rganish




    Download 65,57 Kb.
    bet8/9
    Sana16.01.2024
    Hajmi65,57 Kb.
    #138870
    1   2   3   4   5   6   7   8   9
    Bog'liq
    2-Amaliy ish

      Bu sahifa navigatsiya:
    • OXIRI
    OXIRI;
    UCHUNi:=0 TO Nid DO {nazorat qilish uchun, yorliqni ko'rsatish}
    YOZISH(tab[i].sym:4, tab[i].num:4);
    UCHUNi:=0 TO 7 DO {2-o'tish - ekranda kodni "generatsiya qilish"}
    BOSHLANISHIk:=1; c:=kodni olish(i,k); {operatsiya kodi} CASE c OF {tanlash buyruqlari yoki DN} 0..7: BEGIN WRITE(c); {WHILEk<=LENGTH(prg[i]) QILISH {3 ta manzil}
    YOZING(' ', get_code(i,k))

    OXIRI


    OXIRI;
    8:{DN}BEGIN {10-raqamni belgilang va uni 8 s/s tezlikda torting}
    VAL(COPY(prg[i],k,255),k,e); WRITE(' '); e:=512; REPEAT WRITE (k DIV e);
    k:=k MOD e; e:=e DIV 8;
    QAYTAe=0

    END END;


    YOZISH{buyruqning oxiri}
    OXIRI;

    Dastur ishlaydi Keyingisi yo'l. Yadro uni ma'lumotlar xizmat qiladi stol



    identifikatorlar, ular sim maydonida ularning nomlarini va bu nomlar o'rniga dasturda almashtirilishi kerak bo'lgan kodlarni o'z ichiga oladi (son maydoni). Misol uchun, QO'SHISH operatsiyasi 1-kodga ega (4-jadvalga qarang), shuning uchun tab[1].sym='Qo'shish' va tab[1].num=1. Assemblerning asosiy g'oyasi jadval yordamida har bir ramziy nomni tegishli raqamli kod bilan almashtirish ekanligi ayon bo'ladi.
    "Crumbs" buyruqlarining mnemonikasini 0 dan 7 gacha raqamlar bilan jadval qatorlariga kiritgandan so'ng, biz doimiy DNni va foydalanuvchi matnga kiritgan dasturda topilgan barcha teglarni aniqlash uchun operatorni qo'shamiz. Foydalanuvchi teglari ulardan keyin ikki nuqta mavjudligi bilan tan olinadi; qayta ishlangan belgilar kelajakda assemblerga xalaqit bermasligi uchun dastur ularni shunchaki o'chiradi. Adabiyotda yorliqlarni qayta ishlash birinchi o'tish deb ataladi, chunki siz avval butun dasturni "o'tishingiz" va identifikatorlarning to'liq jadvalini tayyorlashingiz kerak va shundan keyingina matnni qayta ko'rib chiqing (ikkinchi o'tish), barchasini almashtirish uchun jadvaldan foydalaning. ularning kodlari bilan identifikatorlar.
    Ikkinchi o'tishni amalga oshirayotganda, bizning assemblerimiz dastur matnidan keyingi identifikatorni chiqaradigan "kuchli" get_code funktsiyasiga tayanadi. Murakkab ko'rinishiga qaramay, funktsiya g'oyasi juda oddiy: berilgan satrda ma'lum bir pozitsiyadan boshlab, u bo'shliqlarni o'tkazib yuboradi va aksincha, bo'sh joydan tashqari barcha belgilarni "yig'adi" va shu bilan hosil qiladi. keyingi identifikatorning nomi. Nom ajratib ko'rsatilganda, u jadvalda qidiriladi va natija sifatida uning kodi qaytariladi (yoki ism jadvalda bo'lmasa 255).
    Eslatma. Ayniqsa, funktsiya algoritmi ushbu qatordagi keyingi identifikatorni ajratish uchun k o'zgaruvchining qiymatini yangi chaqiruv uchun avtomatik ravishda tayyorlashga mo'ljallanganligini alohida ta'kidlaymiz.
    Ta'riflangan funktsiyadan foydalanib, assembler dasturning joriy qatorining birinchi identifikatorini chiqaradi va uning kodini aniqlaydi. Agar u 0 dan 7 gacha bo'lgan oraliqda bo'lsa, bu mashina buyrug'i va jadval yordamida unda quyidagi 3 ta o'zgaruvchi teg (3 ta manzil) kodlangan. Agar kod 8 ekanligi aniqlansa, bu raqamning ta'rifi. Ikkinchisi satrdan chiqariladi va sakkizlik sanoq tizimiga o'tkaziladi. Boshqa barcha holatlar xatodir va ularni assemblerimiz e'tiborsiz qoldiradi.
    E'tibor bering, dasturning oxirgi sakkizlik kodi oddiygina displey ekranida ko'rsatiladi va hech qanday joyda saqlanmaydi.
    Demo assemblerni sinab ko'rish uchun an'anaviy vazifa amalga oshiriladi - hisoblash

    n omili. Faktorial uchun joriy ko'paytuvchi bo'lgan va 1 dan n gacha o'zgarib turadigan ishchi o'zgaruvchini k bilan belgilaymiz. Keyin yakuniy dastur jadvalda ko'rsatilgan shaklni oladi. 5.
    5-jadval


    Download 65,57 Kb.
    1   2   3   4   5   6   7   8   9




    Download 65,57 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Amaliy ish № Mashina kodlarida kompyuterning ishlash tamoyillarini o'rganish

    Download 65,57 Kb.