Басқару тізгінін шартқа байланысты ауыстыру командалары.
Басқару тізгінін шартқа байланысты ауыстыру командаларының жалпы форматы келесі түрде болады:
Jx ауысу_таңбасы,
мұндағы х - модификатор, ол бір немесе бірнеше әріптерден тұрады, ол келесі мәндерді қабылдауы мүмкін:
E (equal) – тең,
N (not) – немесе,
G (greater) – үлкен,
L (less) – кіші,
A (above) – жоғары,
B (below) – төмен.
E, N модификаторлары кез-келген типтегі операндтар үшін қолданылады, G және L – таңбасыз сандар үшін, A және B – таңбалы сандар үшін.
Шартқа байланысты ауыстыру командаларын программаның орындалуы кезінде пайда болатын әртүрлі шарттарды тексеру үшін қолданған ыңғайлы. Көп командалар орындалу нәтижелерін flags (eflags) регистрінде қалыптастырады. Төменде шартқа байланысты ауысу командалары және олар орындалған кездегі белгілердің өзгерулері, сондай-ақ оларға сәйкес логикалық ауысулар көрсетілген.
Команда | Тексерілетін белгілер күйі | Ауысу шарты |
JA | CF = 0 и ZF = 0 | Егер жоғары болса |
JAE | CF = 0 | Егер жоғары немесе тең болса |
JB | CF = 1 | Егер төмен болса |
JBE | CF = 1 или ZF = 1 | Егер төмен немесе тең болса |
JC | CF = 1 | Егер тасымал болса |
JE | ZF = 1 | Егер тең болса |
JZ | ZF = 1 | Егер 0 болса |
JG | ZF = 0 и SF = OF | Егер үлкен болса |
JGE | SF = OF | Егер үлкен немесе тең болса |
JL | SF <> OF | Егер кіші болса |
JLE | ZF=1 или SF <> OF | Егер кіші немесе тең болса |
JNA | CF = 1 и ZF = 1 | Егер жоғары болмаса |
JNAE | CF = 1 | Егер жоғары емес немесе тең болса |
JNB | CF = 0 | Егер төмен болмаса |
JNBE | CF=0 и ZF=0 | Егер жоғары емес немесе тең болса |
JNC | CF = 0 | Егер тасымал болмаса |
JNE | ZF = 0 | Егер тең болмаса |
JNG | ZF = 1 или SF <> OF | Егер үлкен болмаса |
JNGE | SF <> OF | Егер үлкен емес немесе тең болса |
JNL | SF = OF | Егер кіші болмаса |
JNLE | ZF=0 и SF=OF | Егер кіші емес немесе тең болса |
JNO | OF=0 | Егер асатолу болмаса |
JNP | PF = 0 | Егер нәтиже биттерінің қосындысы тақ болса (тақтық паритет) |
JNS | SF = 0 | Егер таңба оң болса (таңбалық (үлкен) бит нәтижесі 0 тең) |
JNZ | ZF = 0 | Егер 0 болмаса |
JO | OF = 1 | Егер асатолу болса |
JP | PF = 1 | Егер нәтиже биттерінің қосындысы жұп болса (жұптық паритет) |
JPE | PF = 1 | JP сияқты, яғни жұптық паритет |
JPO | PF = 0 | JNP сияқты, яғни тақтық паритет |
JS | SF = 1 | Егер таңба теріс болса (таңбалық (үлкен) бит нәтижесі 1 тең) |
JCXZ | әсер етпейді | Егер регистр CX=0 болса |
JECXZ | әсер етпейді | Егер регистр ECX=0 болса |
"Үлкен" және "кіші" логикалық шарттары таңбалы бүтін сан мәндері салыстыру үшін, ал "жоғары" және "төмен" — логикалық шарттары таңбасыз бүтін сан мәндерін салыстыру үшін қолданылады. Бірінші кездегі і8086 микропроцессорларындағы шартқа байланысты ауысу командалары қысқа ауысуларды ғана жасай алатын, ал қазіргі і386 микропроцессорларына қойылған шарт жоқ, олар ағымдағы сегменттің кез-келген жерінен ауысу жасай береді. Ал сегмент аралық ауысулар жасау үшін шартты ауысу командалары мен jmp шартсыз ауысу командаларын қосып қолданған дұрыс.
Басқаруды шартқа байланысты ауыстыру командаларына кез-келген белгінің күйін өзгерте алатын командалар кедергі келтіре алады, олар әдетте СМР салыстыру командасымен бірге қолданылады.
Дата добавления: 2015-10-26; просмотров: 1402;