1 / 21

Skokové inštrukcie

Skokové inštrukcie. Inštrukcie pre vetvenie programu Delia sa na: -podmienené -nepodmienené. Skokové inštrukcie. LJMP addr 16 PC  addr 16 Program skočí na adresu uvedenú v poli operandov. Adresa je 16 bitová, tak môže pracovať s celou programovou pamäťou (64kB). Skokové inštrukcie.

dixon
Download Presentation

Skokové inštrukcie

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. Skokové inštrukcie Inštrukcie pre vetvenie programu Delia sa na: -podmienené -nepodmienené

  2. Skokové inštrukcie LJMP addr 16 PC  addr 16 Program skočí na adresu uvedenú v poli operandov. Adresaje 16 bitová, tak môže pracovať s celou programovou pamäťou (64kB).

  3. Skokové inštrukcie AJMP addr 11 PC  addr 11 Program skočí na adresu uvedenú v poli operandov. Adresa je len 11 bitová, preto cieľ skoku sa musí nachádzať vo vnútri toho istého 2kB bloku programovej pamäte ako prvý bajt inštrukcie nasledujúcej za inštrukciou AJMP.

  4. Skokové inštrukcie SJMP addr 8 PC  addr 8 Program vykoná nepodmienený skok na adresu reprezentovanú návestím. Adresa je len 8-bitová, preto môže táto inštrukcia skákať len v rámci jednej pamäťovej stránky. Tieto 3 inštrukcie sa dajú nahradiť inštrukciou JMP

  5. Skokové inštrukcie JMP @A+DPTR PC  A+DPTR Nepodmienený skok - Skočí na adresu, ktorú získa ako súčet obsahu akumulátora a registra DPTR

  6. Skokové inštrukcie Podmienené skoky: JZ addr 8 Ak A = 0 PC  addr 8 Ak A ≠ 0 PC = PC+2 Ak je obsah akumulátora nulový skočí na návestie. Ak nie je obsah akumulátora nulový program pokračuje ďalej. Napr. : JZ BBB

  7. Skokové inštrukcie JNZ addr 8 Ak A = 0 PC = PC+2 Ak A ≠ 0 PC  addr 8 Ak je obsah akumulátora nulový program pokračuje ďalej. Ak nie je obsah akumulátora nulový skočí na návestie. Napr. : JNZ BBB

  8. Skokové inštrukcie JC addr 8 Ak C = 0 PC = PC+2 Ak C = 1 PC  addr 8 Ak je obsah carry bitu nulový program pokračuje ďalej. Ak je obsah carry bitu 1 skočí na návestie. Napr. : JC BBB

  9. Skokové inštrukcie JNC addr 8 Ak C = 1 PC = PC+2 Ak C = 0 PC  addr 8 Ak je obsah carry bitu 1 program pokračuje ďalej. Ak je obsah carry bitu nulový skočí na návestie. Napr. : JNC BBB

  10. Skokové inštrukcie JB bit addr,addr 8 Ak bit vo v.p.d. = 1 PC  addr 8 Ak bit vo v.p.d. = 0 PC = PC+3 Ak je obsah bitu vo v.p.d. 1 skočí na návestie. Ak je obsah bitu vo v.p.d. nulový program pokračuje ďalej. Napr. : JB 30,BBB

  11. Skokové inštrukcie JBC bit addr,addr 8 Ak bit vo v.p.d. = 1 PC  addr 8 bit vo v.p.d. = 0 Ak bit vo v.p.d. = 0 PC = PC+3 Ak je obsah bitu vo v.p.d. 1 skočí na návestie a bit vo ;v.p.d. sa vynuluje. Ak je obsah bitu vo v.p.d. nulový program pokračuje ďalej. Napr. : JBC 50,BBB

  12. Skokové inštrukcie JNB bit addr,addr 8 Ak bit vo v.p.d. = 0 PC  addr 8 Ak bit vo v.p.d. = 1 PC = PC+3 Ak je obsah bitu vo v.p.d. nulový program skočí na návestie. Ak je obsah bitu vo v.p.d. rovný 1 program pokračuje ďalej. Napr. : JNB 80,BBB

  13. Skokové inštrukcie CJNE A,data addr,addr 8 Ak A ≠ číslo vo v.p.d. PC  addr 8 Ak A = čislo vo v.p.d. PC = PC+3 Ak A < čislo vo v.p.d. C = 1(inak C=0) Napr. : CJNE A,30,BBB Ak sa nerovnajú hodnoty v akumulátore a vo v.p.d. tak program skočí na návestie BBB. Ak sa rovnajú hodnoty v akumulátore a vo v.p.d. tak program pokračuje ďalej. Ak je hodnota v akumulátore menšia ako hodnota vo v.p.d. tak carry bit sa nastaví na 1 inak je nulový.

  14. Skokové inštrukcie CJNE A,#data,addr 8 Ak A ≠ číslo PC  addr 8 Ak A = čislo PC = PC+3 Ak A < čislo C = 1 ( inak C = 0 ) Napr. CJNE A,#30,BBB Ak sa nerovnajú hodnoty v akumulátore a čísla tak program skočí na návestie BBB. Ak sa rovnajú hodnoty v akumulátore a čísla tak program pokračuje ďalej. Ak je hodnota v akumulátore menšia ako číslo tak carry bit sa nastaví na 1 inak je nulový.

  15. Skokové inštrukcie CJNE Rr,#data,addr 8 Ak Rr ≠ číslo PC  addr 8 Ak Rr = čislo PC = PC+3 Ak Rr < čislo C = 1 ( inak C = 0 ) Napr. CJNE R4,#30,BBB Ak sa nerovnajú hodnoty v registry R4 a čísla tak program skočí na návestie BBB. Ak sa rovnajú hodnoty v registry R4 a čísla tak program pokračuje ďalej. Ak je hodnota v registry R4 menšia ako číslo tak carry bit sa nastaví na 1 inak je nulový.

  16. Skokové inštrukcie CJNE @Ri,#data,addr 8 Ak číslo vo v.p.d. ≠ číslo PC  addr 8 Ak číslo vo v.p.d. = čislo PC = PC+3 Ak číslo vo v.p.d. < čislo C=1(inak C= 0 ) Napr. CJNE @R1,#30,BBB Ak sa nerovnajú hodnoty vo v.p.d. a čísla tak program skočí na návestie. Ak sa rovnajú hodnoty vo v.p.d. a čísla tak program pokračuje ďalej. Ak je hodnota vo v.p.d. menšia ako číslo tak carry bit sa nastaví na 1 inak je nulový.

  17. Skokové inštrukcie DJNZ Rr,addr 8 Rr = Rr – 1 Ak Rr ≠ 0 PC  addr 8 Ak Rr = 0 PC = PC+2 Napr. DJNZ R5,BBB Dekrementuje obsah registra R5 a ak sa nerovná nule tak skočí na návestie BBB, ak je nulový tak program pokračuje ďalej.

  18. Skokové inštrukcie DJNZ data addr,addr 8 Čislo vo v.p.d. = čislo vo v.p.d. – 1 Ak čislo vo v.p.d. ≠ 0 PC  addr 8 Ak čslo vo v.p.d. = 0 PC = PC+3 Napr. DJNZ 20,BBB Dekrementuje číslo vo v.p.d. ak sa nerovná nule tak skočí na návestie BBB ak je nulové tak program pokračuje ďalej

  19. Skokové inštrukcie CALL addr 16 Volanie podprogramu Napr. CALL BBB Program skočí do podprogramu BBB.

  20. Skokové inštrukcie RET Návrat z podprogramu Program pokračuje na inštrukcii, ktorá nasleduje za inštrukciou CALL.

  21. Skokové inštrukcie RETI Návrat z podprogramu pre prerušenie Program pokračuje na tej adrese, na ktorej došlo k prerušeniu.

More Related