duminică, 10 iulie 2016

Instrucţiuni de salt condiţionat in asamblare.

Instrucţiuni de salt condiţionat
Instrucţiunile din această categorie implementează salturi condiţionate de valoarea unor bistabili (FLAGS).
Dacă condiţia nu este îndeplinită, saltul nu are loc, deci execuţia continuă cu instrucţiunea următoare. Toate
instrucţiunile de salt condiţionat sunt de tip SHORT, ceea ce înseamnă că adresa ţintă trebuie să fie la o
distanţă cuprinsă între -127 şi +127 de octeţi faţă de instrucţiunea de salt. În tabelul următor se prezintă
instrucţiunile de salt condiţionat:
Instrucţiune Condiţie de salt Interpretare
JE, JZ ZF = 1 Zero, Equal
JL, JNGE SF ≠ OF Less, Not Greater or Equal
JLE, JNG SF ≠ OF sau ZF = 1 Less or Equal, Not Greater
JB, JNAE, JC CF = 1 Below, Not Above or Equal, Carry
JBE, JNA CF = 1 sau ZF = 1 Below or Equal, Not Above
JP, JPE PF = 1 Parity, Parity Even
JO OF = 1 Overflow
JS SF = 1 Sign
JNE, JNZ ZF = 0 Not Zero, Not Equal
JNL, JGE SF = OF Not Less, Greater or Equal
JNLE, JG SF = OF şi ZF = 0 Not Less or Equal, Greater
JNB, JAE, JNC CF = 0 Not Below, Above or Equal, Not Carry
JNBE, JA CF = 0 şi ZF = 0 Not Below or Equal, Above
JNP, JPO PF = 0 Not Parity, Parity Odd
JNO OF = 0 Not Overflow
JNS SF = 0 Not Sign
La comparaţiile cu semn folosim GREATER şi LESS, iar la comparaţiile fără semn folosim ABOVE şi
BELOW.
 Uneori este necesar să folosim instrucţiuni de salt condiţionat la etichete care ies în afara
domeniului [-127, +127] faţă de instrucţiunea curentă. În această situaţie înlocuim saltul pe o condiţie
directă “departe” cu un salt pe condiţia negată “aproape” şi cu un salt necondiţionat “departe”. În următorul
exemplu, eticheta et1 se află în afara domeniului, astfel instrucţiunea:
 JE et1
se înlocuieşte cu:
 JNE et2
 JMP et1
et2:

Niciun comentariu:

Trimiteți un comentariu