|
3.5.2.4 Naredbe grananja tijeka programaNaredbe grananja tijeka programa mijenjanjem sadržaja programskog brojila na adrese koje nisu neposredno u slijedu, na uvjetan ili bezuvjetan način mijenjaju tijek normalnog slijednog izvođenja programa.Postoje tri vrste naredbi bezuvjetnog grananja: naredba skoka, naredba poziva i naredba vraćanja. Naredba skoka (JMP - jump) mijenja normalni slijedni tijek programa zamijenjujući sadržaj programskog brojila adresom koja se nalazi u naredbi. Naredba skoka ima format JMP adr. Naredba poziva (CALL) mijenja normalni slijedni tijek izvođenja programa tako da se prvo trenutni sadržaj programskog brojila pohrani u složnik, a zatim programsko brojilo napuni adresom koja se nalazi u polju operanda naredbe. Naredba poziva služi za ulaz u potprogram, a oblik formata je CALL adr. Naredba vraćanja (RET - return) mijenja normalni slijedni tijek izvođenja programa zamijenjujući sadržaj programskog brojila sa sadržajem koji se nalazi u dvije susjedne memorijske lokacije čija adresa predstavlja sadržaj kazala složnika. Duljina naredbe vraćanja je 1 bajt i nema operanda. Služi za vraćanje nadzora tijeka programa na kraju potprograma na glavni program.Kod uvjetnog grananja tijeka programa, do preusmjeravanja nadzora programa dolazi samo u slučaju zadovoljenja posebnih uvjeta. Posebni uvjeti se ostvaruju poslije izvođenja naredbe postavljanjem ili brisanjem zastavica u registru stanja. Ako uvjet nije zadovoljen, izvođenje programa se nastavlja naredbom koja slijedi iza naredbe grananja. Naredbe uvjetnog grananja mikroprocesoru pružaju mogućnost odlučivanja o daljnjem tijeku izvođenja programa na temelju prethodnih rezultata.Opći formati naredbi za uvjetni skok, poziv i vraćanje jesu:
pri čemu <uvjet> predstavlja jedan od osam mogućih uvjeta prikazanih u Tablici 3.5-5. Npr., naredba JC adr preusmjerava tijek izvođenja programa na naredbu koja se nalazi u memorijskoj lokaciji na adresi adr samo ako je zastavica prijenosa postavljena (CY = 1). Slično naredba CNZ adr uvjetuje pohranu trenutne vrijednosti programskog brojila i skok na naredbu pohranjenu u memorijskoj lokaciji na adresi adr samo ako zastavica nule nije postavljena (Z = 0). Naredbe uvjetnog i bezuvjetnog grananja se često koriste kao elementi odluke pri oblikovanju temeljnih logičkih zakonitosti.
|