• FUNCTION
  • UCHUN
  • DASTURkroha_asm (KIRISh, OUTPUT); {“Krokha” oʻquv kompyuteri uchun demo assembler} CONST




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

    DASTURkroha_asm (KIRISh, OUTPUT); {“Krokha” oʻquv kompyuteri uchun demo assembler}


    CONSTkop:ARRAY [0..7] OF STRING[3]= {buyruqning mnemonikasi} ('MOV','ADD','DIV','SUB','JE','MUL','JG','HLT ')
    prg:ARRAY [0..7] OF STRING= {montaj dasturi!!!} ('B: MUL FK F',
    "KE K" ni qo'shish,
    "JG NK B",
    "HLT FF F",
    'K:DN 1',
    'F: DN 1',
    'N: DN 3',
    'E: DN 1');
    VARtab: ARRAY [0..15] OF RECORD sym:STRING[3]; son:BYTE END;
    {tab - barcha identifikatorlar (ularning nomi va kodi), shu jumladan operatsiyalar va teglar jadvali} i,Nid,k,e,c:INTEGER; {ishchi o'zgaruvchilar}


    FUNCTIONget_code(i:INTEGER; VAR k:INTEGER):BYTE;
    {k pozitsiyasidan boshlab i qator raqamidan keyingi identifikatorni tanlaydi va yorliqda uning kodini topadi}
    VARp,id:STRING; j,m,q:INTEGER; {ishchi o'zgaruvchilar}
    BOSHLANISHIp:=prg[i]+' '; {oxirgi belgini ta'kidlashni osonlashtirish uchun bo'sh joy qo'shing}
    WHILE(k{va endi keyingi bo'sh joygacha hamma narsani tanlaymiz, ya'ni. identifikator nomini oling} id:=''; WHILE p[k]<>' ' DO BEGIN id:=id+p[k]; k:=k+1 END;
    q:=255; {agar identifikator bo'lsa, jadvalda topamiz va uning kodini q ga joylashtiramiz}
    UCHUNj:=0 TO Nid QILING AGAR ID=tab[j].sym KEYIN q:=tab[j].num;
    get_code:=q {funksiya natijasi dasturga kiritilgan koddir}

    OXIRI




    BOSHLASH UCHUNi:=0 TO 7 QILISH {yorliqdagi operatsiya kodlarini kiriting}
    BOSHLANISHItab[i].sym:=kop[i];tab[i].num:=i
    OXIRI;
    tab[8].sym:='DN';tab[8].num:=8; Nid:=8; {shartli DN kodini qo'shing}
    UCHUNi:=0 TO 7 DO {o'tish I - dasturchining belgilarini jadvalga kiritish}
    AGARprg[i][2]=':' KEYIN {ko'p nuqta belgisidan keyin}
    BOSHLANISHIinc(Nid); {jadvalga yorliq qo'shish; uning manzili=satr raqami!} tab[Nid].sym:=prg[i][1];tab[Nid].num:=i;
    prg[i][1]:=' '; prg[i][2]:=' '; {matndan yorliqni olib tashlash}

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




    Download 65,57 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    DASTURkroha_asm (KIRISh, OUTPUT); {“Krokha” oʻquv kompyuteri uchun demo assembler} CONST

    Download 65,57 Kb.