In limbajul de asamblare nu avem instructiuni conditionale sau bucle structurate. Acestea trebuie deci simulate folosind instructiuni gen goto sau if ... goto.
Saltul neconditionat se face prin instructiunea jmp. Sintaxa este jmp eticheta. Efectul este ca urmatoarea instructiune executata este cea care urmeaza punctului marcat prin eticheta. Eticheta are sintaxa: eticheta: (numele urmat de caracterul doua-puncte).
Exista instructiuni de salt conditionat. Conditia este intotdeauna formulata in termeni de valorile bistabililor de conditie (flags).
Flagurile se comporta ca niste registrii de un bit. De regula, instructiunile aritmetice si logice le modifica; celelalte instructiuni nu le modifica. Atentie: instructiunile inc si dec, desi aritmetice, nu modifica flagurile.
Astfel, o instructiune de salt conditionat trebuie in principiu sa urmeze dupa o instructiune aritmetica sau logica care seteaza flag-urile.
Tipuri de teste:
Pentru operanzi fara semn, instructiunile de salt conditionat folosite sunt jb, ja, je, jne, jbe, jae
Pentru operanzi cu semn, instructiunile de salt conditionat folosite sunt jl, jg, je, jne, jle, jge.
Exercitii
Rezolvare
Codul:
mov ax, a add ax, b jc depasire sub ax, c jc depasire mov r, ax mov al, 0 mov dep, 0 jmp final depasire: mov al, 1 mov dep, al final: