1 / 10

Druhy inštrukcií

Druhy inštrukcií. Mikropočítač I8051 má k dispozícii sadu inštrukcií, obsahujúcu 255 inštrukcií Inštrukcie sú rozdelené do niekoľkých skupín podľa toho, aký druh operácií uskutočňujú Aritmetické Logické 1- bitové Presunové Logické 8 - bitové Skokové a vetviace. Syntax inštrukcie. OP.KÓD.

norina
Download Presentation

Druhy inštrukcií

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Druhy inštrukcií • Mikropočítač I8051 má k dispozícii sadu inštrukcií, obsahujúcu 255 inštrukcií • Inštrukcie sú rozdelené do niekoľkých skupín podľa toho, aký druh operácií uskutočňujú • Aritmetické • Logické 1- bitové • Presunové • Logické 8 - bitové • Skokové a vetviace

  2. Syntax inštrukcie OP.KÓD operand jednobajtová • Prvý bajt každej inštrukcie obsahuje operačný kód inštrukcie, ktorý určuje funkciu inštrukcie, t.j. čo má inštrukcia vykonať. • Druhý, resp. tretí bajt inštrukcie obsahuje operand, ktorým môže byť: • Rn, @Ri, DPTR, @DPTR A, C ( zahrnutý v kóde inštrukcie ) • direct, #data8, bit, rel, addr11 ( zaberá ďalší jeden bajt ) • direct,direct direct,rel bit,rel direct,#data8 #data8,rel #data16 addr16( zaberajú ďalšie dva bajty ) OP.KÓD operand dvojbajtová OP.KÓD trojbajtová operand operand

  3. Príklady inštrukcií Rn, @Ri, DPTR, @DPTR A, C mov A,R5 mov @R1,A jmp @A,DPTR movx A,@DPTR clr C jednobajtová OP.KÓD operand direct, #data8, bit, rel, addr11 add A,63h mov R3,#25h setb 31h jz 55h ajmp 52h OP.KÓD dvojbajtová operand direct,direct direct,rel bit,rel direct,#data8 #data8,rel #data16 addr16 mov 43h,25h cjne A,28h,13h jnb 25h,20h mov 55h,#17d cjne A,#20h,40h mov DPTR,#0521h lcall 2410h OP.KÓD trojbajtová operand operand

  4. Skupiny inštrukcií • Aritmetické – pracujú s ALU a vykonávajú jednoduché matematické operácie ako sčítanie, odčítanie, násobenie a delenie. Patria k nim inštrukcie inkrementácie ( +1) a dekrementácie ( - 1 ). • Register A ( akumulátor, Acc ) vždy obsahuje jeden operand • Výsledok operácie sa vždy zapisuje do akumulátora, takže sa prepíše predošlý obsah akumulátora add A,R5 subb A,@R1 mul AB div AB inc 45h dec A

  5. Skupiny inštrukcií • Logické 1- bitové – pracujú so samostatnými bitmi v rámci bitovo adresovateľnej časti internej dátovej pamäti ( 0020h – 002Fh ), s príznakovým bitom C ako aj s niektorými bitmi SFR ( špeciálnych funkčných registrov ) • Umožňujú nastavenie, nulovanie a negáciu priamo adresovaného bitu, príznakového bitu C • Logický súčet, súčin bitu C a priamo adresovaného bitu • Presun adresovaného bitu do príznakového bitu C a opačne setb 25h cpl C anl C,35h orl C,47h mov C,51h mov 22h,C

  6. Skupiny inštrukcií • Presunové – prenášajú hodnotu zo zdrojového operandu do cieľového, pričom sa zdrojový operand nemení • Vzájomne si vymieňajú hodnoty cieľového a zdrojového operandu • Vedia zapisovať do a čítať zo zásobníka. Po resetovaní je automaticky zvolená banka registrov 0 a ukazateľ zásobníka SP je nastavený na hodnotu 07h • Majú inštrukcie pre čítanie z pamäti programu ( movc ... • Majú inštrukcie pre zápis a čítanie inštrukcií a dát z externej pamäti ( movx ... mov A,R2xch A,56h push 48h pop 55h movc A,@A+DPTR movx @R0,A movx A,@DPTR

  7. Skupiny inštrukcií • Logické – vykonávajú operácie logického súčtu (OR), súčinu (AND), výhradne logického súčtu (XOR) s 8 - bitovými operandami • Uskutočňujú rotácie registra A ( akumulátora ) vpravo a vľavo bez príznaku C, aj s príznakom C • Umožňujú nulovanie a negáciu obsahu registra A • Je možné vykonať vzájomnú výmenu hornej a dolnej štvorice bitov registra A ORL A,R7 ANL A,#45h XRL A,@R1 CLR A CPL A RL A RRC A SWAP A

  8. Skupiny inštrukcií • Skokové –umožňujú programátorovi rozhodovať, ktorou cestou bude program vykonávaný • Vykonanie nepodmieneného skoku • Vykonanie podmieneného skoku na základe splnenia podmienky, ktorou môže byť : • Nulový, nenulový obsah akumulátoraJump if Zero, Jump if Not Zero • Nulový, nenulový stav adresovaného bitu Jump if Bit, Jump if Not Bit • Nulový, nenulový stav príznakového bitu C Jump if C, Jump if Not C • Nenulový stav registra Rn alebo pamäťového miesta direct Decrement & Jump if Not Zero • Nerovnosť obsahu akumulátora s obsahom direct, #data8 Compare & Jump if Not Equal • Nerovnosť obsahu registra s #data8 • Nerovnosť nepriamo adresovanej pamäte s #data8 ajmp addr11 sjmp 25h LJMP 2144h jz 3F jmp @A+DPTR jnz 52h jnb 22h,50h jb 28h,45h djnz R6,44h cjne R4,#20h,55h jc start

  9. Skupiny inštrukcií • Vetviace – umožňujú programátorovi pracovať s podprogramami a to : • Volanie podprogramu • Volanie podprogramu na obsluhu prerušenia • Návrat z podprogramu do hlavného programu acall addr11 LCALL addr16 ret reti

  10. Syntax zápisu inštrukcií v programe Adresa začiatku programu komentár org 0023h ; obsluha prerusenia ser.kanalu mov R4,#PocZnakov ; pocet znakov prijimaneho slova Dalsi: mov A,SBUF ; presun prijateho znaku z bufra do Acc mov @R0,A ; ulozenie znaku do pamate inc R0 ; adresa nasledujuceho znaku clr RI ; povolenie prijmu dalsieho znaku djnz R4,Pokrac ; skok, ak nebolo prijate cele slovo mov R4,#PocZnakov ; pocet znakov celeho slova mov R0,#Zaznam ; adresa zaciatku slova v pamati Este: mov P1,@R0 ; zobrazenie znaku slova na P1 acall Delay ; podrzanie znaku na displeji 1sec inc R0 ; dalsi znak djnz R4,Este ; skok, ak nebolo zobrazene cele slovo mov P1,#0ffh ; zhasnutie displeja reti ; ukoncenie obsluhy prerusenia Pokrac: jbc RI,Dalsi ; skok, ak bol prijaty dalsi znak sjmp Pokrac ; cakacia slucka na prijem znaku inštrukcia návestie

More Related