КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Басқару тізгінін шартқа байланысты ауыстыру командаларыБұл командалар тобында басқару тізгінін беру туралы шешім белгілі бір шарттың орындалуына байланысты жүзеге асырылады. Шағынпроцессордың шартты өту (көшу) командалары мынадай тексеру жүргізе алады: § таңбасы бар операндтар арасындағы қарым-қатынасты, яғни үлкен (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. Қиғаш сызық арқылы команданың баламасы берілген.
Егер CMP командасындағы шарт орындалса және өту (көшу) командасының екінші символы N болмаса, онда программаның тамға тұрған командасына басқару тізгіні беріледі. Басқаша жағдайда программаның өту (көшу) командасынан кейінгі командасы орындалады. Мысалы: M1: … CMP BX,N ; егер BX=N болса, онда М1 тамғалы JE M1 ; командаға басқару тізгінін беру Белгілі бір жалаушаның қалып-күйі бойынша өту (көшу) Бұл командалардың атауы J символынан басталады, екіншісі – жалауша атының (CF, PF, ZF, SF, OF) бірінші әрпі (C, P, Z, S, O) немесе N символы (9-кесте).
Егер өту (көшу) командасының екінші символы 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) ұйымдастыру және символдар қатарымен жұмыс істеу кезінде пайдаланған ыңғайлы.
|