Работ №05. Программирование ветвлений и циклов 1



Pdf көрінісі
бет1/6
Дата15.10.2023
өлшемі427.25 Kb.
#480816
түріРешение
  1   2   3   4   5   6
Р05 Ветвления и циклы



Работ № 05. Программирование ветвлений и циклов 
 
1 ЦЕЛЬ РАБОТЫ: закрепление знаний по командам 
условного и безусловного переходов и циклов в 
программах на языке ассемблера, а также приобретение 
навыков написания программ с циклами. 
2 ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ 
2.1. Команды условного перехода 
Команды передачи управления изменяют естественный 
порядок выполнения команд программы. Их можно 
разделить на 3 подгруппы (см. приложение 1). В 
мнемонические обозначения команд условного перехода 
входят буквы, определяющие условие в соответствии с 
таблицей 1.
Таблица 1. Мнемокоды команд условного перехода 
Мнемокод 
Условие 
Тип операндов 

равно 
любые 

не равно 
любые 


знак. числа 


знак. числа 


беззнак. числа 


беззнак. числа 
В ней «метка перехода» / «близкая метка» отражает тот 
факт, что метка помеченной команды должна находиться 
в пределах текущего сегмента кода и на относительном 
расстоянии от команды перехода −128 < 𝑋 < 127 


байтов. Данное ограничение (−128; 127) байт у 
процессоров Intel с модели 80386, однако ограничение 
передачи управления в пределах текущего сегментного 
кода действует и в более старших моделях. 
Решение о передаче управления командой условного 
перехода 
принимается 
на 
основании 
условия. 
Основаниями таких условий могут быть: 
• любая 
команда, 
изменяющая 
состояние 
арифметических флагов (каких – см. ниже); 
• команда сравнения CMP. 
Формат команды CMP: 
CMP приемник, источник или CMP операнд1, операнд2. 
Эта команда осуществляет вычитание (приемник −
источник) или (операнд1 − операнд2). Но результат 
никуда не записывается, а лишь меняются флаги (табл. 2). 
Таблица 2. Уст. значения флагов по команде CMP 
Сравн. операнды 
Флаги 
OF 
SF 
ZF 
CF 
Операнды без знака 
источник < приёмник 




источник = приёмник 




источник > приёмник 




Операнды со знаком 
источник < приёмник 
0 / 1 



источник = приёмник 




источник > приёмник 
0 / 1 





В таблице приняты следующие обозначения: 
• «H» – не имеет значения, т.е. операция на флаг не 
влияет; 
• 0 / 1 – флаг устанавливается 0 / 1 в зависимости от 
значений операндов. 
В следующей таблице (табл. 3) отражено действие команд 
условного перехода по значениям анализируемых этими 
командами флагов. В этой таблице через слеш (/) 
перечисляются идентичные по действию команды, а 
применение зависит от предпочтений программиста. Ведь 
если 
число1 > числа2, 
то 
тогда 
число1 не (<
или =) число2. 


Таблица 3. Логика команд условного перехода 
Тип 
операндов 
Мнемокод 
команды 
Критерий перехода 
Значения флагов для 
перехода 
любые 
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 




Достарыңызбен бөлісу:
  1   2   3   4   5   6




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет