152
5. Rozkazy mikroprocesorów 8086/8088
next SP+-SP + datahighodatalow 11001011 datajow datahigh
Liczba taktów - 17. Porównaj przykłady dla poprzednich opcji.
5.52. Skoki warunkowe
JA/JNBE (ang.jump if above/if not below oreÄ…ual)
skok względny gdy powyżej, skok względny gdy nie poniżej lub równo
Operacja: (CF = 0 A ZF = 0) => IP«-IP + disp Wskaźniki: bez zmian
Jeżeli wskaźniki CF = 0 i ZF = 0, to sterowanie jest przekazywane pod żądany adres, który jednak nie może być odległy od offsetu następnego rozkazu o więcej niż -128 i + 127. Jeżeli warunki nie są spełnione, to skok nie jest realizowany i jest wykonywany kolejny rozkaz w programie. Powyżej i poniżej odnosi się do liczb bez znaku.
Liczba taktów -16 dla skoku wykonanego, 4 dla skoku nie wykonanego.
Przykład
JA KONTYNUUJ
5.5. Rozkazy sterowania skokami
Mi Å›^ol
powered by
JB/JNAE/JC (ang.jump if below/if not above or equal/if carry)
skok względny gdy poniżej, skok względny gdy nie powyżej lub równo, skok względny gdy jest przeniesienie
Operacja: CF = 1 => IP«-IP + disp Wskaźniki: bez zmian
Jeżeli wskaźnik CF=1, to sterowanie jest przekazywane pod żądany adres, który jednak nic może być odległy od offsetu następnego rozkazu o więcej niż -128 i +127. Jeżeli warunek nie jest spełniony, to skok nie jest realizowany i jest wykonywany kolejny rozkaz w programie. Powyżej i poniżej odnosi się do liczb bez znaku.
01110010 disp
Liczba taktów -16 dla skoku wykonanego, 4 dla skoku nie wykonanego.
Przykład
SUB CL, ZMIENNA JB KONTYNUUJ CMP AL, 55H JNAE DALEJ ADD AL,5
JC ZA DUŻO +
JBE/JNA (ang. jump if below oreÄ…ualUf not above)
skok względny gdy poniżej lub równo, skok względny gdy nie powyżej
Operacja: (CF = 1 v ZF = 1) => IP«-lP + disp Wskaźniki: bez zmian
Jeżeli wskaźniki CF = 1 lub ZF = 1, to sterowanie jest przekazywane pod żądany adres, który jednak nie może być odległy od offsetu następnego rozkazu o więcej niż -128 i +127. Jeżeli warunki nie są spełnione, to skok nie jest realizowany i jest wykonywany kolejny rozkaz w programie. Powyżej i poniżej odnosi się do liczb bez
znaku.
Liczba taktów -16 dla skoku wykonanego, 4 dla skoku nie wykonanego.
Przykład
♦
SUB CH, ZMIENNA JBE KONTYNUUJ CMP DX, 5555H JNA DALEJ
JE/JZ (ang.jump if eÄ…uaUif zero )
skok względny gdy równość, skok względny gdy zero)
Operacja: ZF = 1 => IP*-IP + disp
JAE/JNB (ang.jump if above oreÄ…ualtif not below)
skok względny gdy powyżej lub równo, skok względny gdy nie poniżej ___JJ
Operacja: CF = 0 => IP IP + disp Wskaźniki: bez zmian
Jeżeli wskaźnik CF = 0, to sterowanie jest przekazywane pod żądany adres, który jednak nie może być odległy od offsetu następnego rozkazu o więcej niż -128
+127. Jeżeli warunek nie jest spełniony, to skok nie jest realizowany i jest wykonywany kolejny rozkaz w programie. Powyżej i poniżej odnosi się do liczb bez znaku.
01110011 disp
Liczba taktów -16 dla skoku wykonanego, 4 dla skoku nie wykonanego.
Przykład
SUB BX,DX JAE KONTYNUUJ CMP DH, OFFH
JNB DALEJ ♦