Студопедия

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника



Басқару тізгінін шартқа байланысты ауыстыру командалары




Бұл командалар тобында басқару тізгінін беру туралы шешім белгілі бір шарттың орындалуына байланысты жүзеге асырылады. Шағынпроцессордың шартты өту (көшу) командалары мынадай тексеру жүргізе алады:

§ таңбасы бар операндтар арасындағы қарым-қатынасты, яғни үлкен (greater) - кіші (less);

§ таңбасыз операндтар арасындағы қарым-қатынасты, яғни жоғары (above) - төмен (below);

§ ZF, SF, CF, OF және PF арифметикалық жалаушаларының қалып-күйін.

Шартты өту (көшу) командаларының пішімі:

Jcc өткел_тамғасы

Бұл жерде, J әрпі jump (өту,көшу) сөзінен алынған, ал cc – команда талдау жүргізетін белгілі бір шарт, өткел_тамғасы – ағымдағы кода сегментінің ішінде жатқан тамға (мұнда сегментаралық басқару тізгінін беру көзделмеген).

Командада тексерілетін шартты СС арқылы белгілеу командалар белгісін жаттауды және оларды программа жазу кезінде пайдалануды жеңілдетеді.

Басқару тізгінін шартқа байланысты ауыстыру командаларын былайша бөлуге болады:

- салыстыру командасының нәтижесі бойынша өту командалары;

- белгілі бір жалаушаның қалып-күйі бойынша өту командалары;

- ECX/CX регистрінің мәні бойынша өту командалары.

Салыстыру командасының нәтижесі бойынша өту (көшу)

Бұл командалардың алдында міндетті түрде CMP салыстыру командасы орындалады. CMP командасы екі операндты салыстырады, операндтардың мәнін өзгертпейді, тек салыстыру нәтижесі бойынша жалаушаларды орнатады.

Өту (көшу) командалар атауының құрамына кіретін (СС әріптеріне сәйкес келетін) саластыру нәтижесінің қысқартулары 8-кестеде келтірілген.

CMP командасы орындалған кезде орнатылатын жалаушаларға мынадай шартты өту (көшу) командалары талдау жасайды (10-кесте): JE, JNE, JL/JNGE, JLE/JNG, JG/JNLE, JGE/JNL, JB/JNAE, JBE/JNA, JA/JNBE және JAE/JNB. Қиғаш сызық арқылы команданың баламасы берілген.

5-кесте
Шартты белгі Ағылшын Қазақ Операнд түрі
E Equal Тең Кез келген
N Not Жоқ Кез келген
G Greater Үлкен Таңбасы бар сан
L Less Кіші Таңбасы бар сан
A Above Жоғары Таңбасыз сан
B Below Төмен Таңбасыз сан

 

Егер CMP командасындағы шарт орындалса және өту (көшу) командасының екінші символы N болмаса, онда программаның тамға тұрған командасына басқару тізгіні беріледі. Басқаша жағдайда программаның өту (көшу) командасынан кейінгі командасы орындалады.

Мысалы: M1: …

CMP BX,N ; егер BX=N болса, онда М1 тамғалы

JE M1 ; командаға басқару тізгінін беру

Белгілі бір жалаушаның қалып-күйі бойынша өту (көшу)

Бұл командалардың атауы J символынан басталады, екіншісі – жалауша атының (CF, PF, ZF, SF, OF) бірінші әрпі (C, P, Z, S, O) немесе N символы (9-кесте).

  6-кесте
Жалауша Шартты белгі Жалауша аты eflags/flags регистріндегі биттің нөмірі
CF C Тасымал жалаушасы
PF P Жұптық жалауша
ZF Z Нөлдік жалауша
SF S Таңбалық жалауша
OF O Толып кету жалаушасы

 

Егер өту (көшу) командасының екінші символы N болмаса, онда жалаушаның мәні тексеріледі және егер ол 1-ге тең болса, онда программаның тамға тұрған командасына басқару тізгіні беріледі. Егер өту (көшу) командасының екінші символы N болса, онда жалаушаның мәні тексеріледі және егер ол 0-ге тең болса, онда программаның тамға тұрған командасына басқару тізгіні беріледі. Басқаша жағдайларда программаның өту (көшу) командасынан кейін тұрған командасы орындалады.

Жалаушаның қалып-күйі бойынша өту (көшу) командаларына мына­лар жатады (10-кесте): JC, JP, JZ, JS, JO, JNC, JNP, JNZ, JNS және JNO.

Басқару тізгінін шартқа байланысты ауыстыру командаларының алдында жалаушалар регистрінің разрядтарының мәнін өзгертетін кез келген команда болуы мүмкін, бірақ әдетте CMP командасы қолданылады. Мысалы:

ZERO: …

CMP AL,BL

JZ ZERO

ECX/CX регистрінің мәні бойынша өту (көшу)

Шағынпроцессорда ECX/CX регистрі санауыш міндетін атқарады. Бұл регистрді өту (көшу) командаларында да пайдалануға болады. ECX/CX регистрінің мәні бойынша өту (көшу) командаларының пішімі:

JCXZ өткел_тамғасы

JECXZ өткел_тамғасы

JCXZ (jump іf cx іs zero) –егер CX нөл болса, онда өту (көшу) операциясы орындалады (10-кесте).

JECXZ (jump equal ecx zero) – егер ECX нөл болса, онда өту (көшу) операциясы орындалады.

Бұл командаларды қайталама (cycle) ұйымдастыру және символдар қатарымен жұмыс істеу кезінде пайдаланған ыңғайлы.

7-кесте – Басқару тізгінін шарттың орындалуына байланысты ауыстыру командалары
Команда Сипаттамасы (өту/көшу керек, егер …) Көшу шарттары
CMP командасының нәтижесіне байланысты
JE 1_операнд = 2_операнд болса ZF=1
JNE 1_операнд ¹ 2_операнд болса ZF=0
JL/JNGE 1_операнд < 2_операнд болса SF¹OF
JLE/JNG 1_операнд £ 2_операнд болса SF¹OF немесе ZF=1
JG/JNLE 1_операнд > 2_операнд болса SF=OF немесе ZF=0
JGE/JNL 1_операнд ³ 2_операнд болса SF=OF
JB/JNAE 1_операнд < 2_операнд болса CF=1
JBE/JNA 1_операнд £ 2_операнд болса CF=1 немесе ZF=1
JA/JNBE 1_операнд > 2_операнд болса CF=0 және ZF=0
JAE/JNB 1_операнд ³ 2_операнд болса CF=0
Жалаушалардың мәніне байланысты
JC тасымал болса CF=1
JP нәтижеде мәні 1-ге тең разрядтардың саны жұп болса PF=1
JZ нәтиже 0 болса ZF=1
JS таңбалық разряд 1 болса SF=1
JO толып кету болса OF=1
JNC тасымал жоқ болса CF=0
JNP нәтижеде мәні 1-ге тең разрядтардың саны тақ болса PF=0
JNZ нәтиже 0 болмаса ZF=0
JNS таңбалық разряд 0 болса SF=0
JNO толып кету болмаса OF=0
ECX/CX регистрінің мәніне байланысты
JCXZ СХ регистрінің мәні 0 болса CX=0
JECXZ EСХ регистрінің мәні 0 болса ECX=0

Дата добавления: 2015-01-05; просмотров: 27; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2022 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты