þekking Discovery
/ Knowledge Discovery >> þekking Discovery >> tækni >> tölva >> tölva vélbúnaður >>

Hvernig örgjörvi Work

, ef minna en, að takast
  • JLE Athugasemd - Jump, ef minna en eða jafnt og, að takast
  • STOP - Stöðva keyrslu

    Ef þú hefur lesið Hvernig C Programming Works, þá veistu að þetta einfalt stykki af C kóða reiknar aðfeldi 5 (þar sem þáttatilraun af 5 = 5! = 5 * 4 * 3 * 2 * 1 = 120):
    a = 1, f = 1, á meðan (að < = 5) {f = f * a; a = a + 1;}

    Í lok framkvæmd áætlunarinnar, breytu f inniheldur aðfeldi 5.
    Assembly Language

    AC þýðanda þýðir þetta C kóða inn tungumáli samkoma. Að því gefnu að RAM byrjar á netfangið 128 í þessum örgjörva og ROM (sem inniheldur samkoma tungumálanám) byrjar á netfangið 0, þá til einfaldra örgjörvi okkar smalamál gæti litið svona út:
    //Segjum a er heimilisfang 128 //Segjum F er heimilisfang 1290 CONB 1 //a = 1; 1 SAVEB 1282 CONB 1 //F = 1; 3 SAVEB 1294 LOADA 128 //ef a > 5 stökk 175 CONB 56 COM7 JG 178 LOADA 129 //f = f * a; 9 LOADB 12.810 MUL11 SAVEC 12912 LOADA 128 //a = a + 1; 13 CONB 114 ADD15 SAVEC 12.816 JUMP 4 //lykkja til baka til if17 STOP ROM

    Svo nú er spurningin, " Hvernig gera alla þessa leiðbeiningum líta í ROM " Hver af þessum tungumáli samkoma leiðbeiningum skal táknað með tvöfaldur fjöldi. Fyrir the sök af einfaldleika, við skulum gera ráð fyrir á hverjum samkoma Tungumálakennsla er gefið sérstakt númer, svona:

  • LOADA - 1
  • LOADB - 2
  • CONB - 3
  • SAVEB - 4
  • SAVEC stofn - 5
  • Setja - 6
  • Sub - 7
  • marg - 8
  • DIV - 9
  • COM - 10
  • JUMP Athugasemd - 11
  • JEQ Athugasemd - 12
  • JNEQ Athugasemd - 13
  • JG veffang - 14
  • JGE Athugasemd - 15
  • JL Athugasemd - 16
  • JLE Athugasemd - 17
  • STOP - 18

    Tölurnar eru þekkt sem opcodes. Í ROM, lítið forrit okkar myndi líta svona út:
    //Segjum a er heimilisfang 128 //Segjum F er heimilisfangi 129Addr opcode /value0 3 //CONB 11 12 4 //SAVEB 1283 1284 3 //CONB 15 16 4 //SAVEB 1297 1298 1 //LOADA 1289 12.810 3 //CONB 511 512 10 //COM13 14 //JG 1714 3115 1 //LOADA 12916 12917 2 //LOADB 12.818 12.819 8 //MUL20 5 //SAVEC 12921 12.922 1 //LOADA 12.823 12.824 3 //CONB 125 126 6 //ADD27 5 //SAVEC 12828 12829 11 //hoppa 430 831 18 //STOP

    Hægt er að sjá að sjö línur af C kóða varð 18 línur af samsetningu tungumál, og sem varð 32 bæti í ROM.
    Umskráningu

    The kennsla tengd þarf að snúa hvert opcodes inn í hóp af merki sem fá mismunandi hluti inni örgjörvi. Við skulum

    Page [1] [2] [3] [4] [5] [6] [7] [8]