Переведено для codeby. Net


Download 0.92 Mb.
Pdf ko'rish
bet5/36
Sana09.05.2023
Hajmi0.92 Mb.
#1449564
TuriРеферат
1   2   3   4   5   6   7   8   9   ...   36
Bog'liq
эксплуатация систем arm linux AFANX

3.2 Условное выполнение
Особенностью архитектуры ARM является то, что почти все инструкции могут
выполняться условно. Мнемонические расширения могут быть добавлены к
инструкции для проверки того, что флаги N, Z, C и V (Negative, Zero, Carry и
oVerflow из CPSR) удовлетворяют требуемому условию.
Рис. 4: флаговые биты
11


Существует множество возможностей. В следующей таблице приведены только
основные из них:
Мнемоника Подразумевает
CPSR флаг
EQ
Равно
Z = 1
NE
НЕ равно
Z = 0
CS/HS
Установить Carry флаг
C = 1
CC/LO
Очистить(обнулить) Carry флаг C = 0
MI
Минус/отрицательный
N = 1
PL
Плюс/положительный
N = 0
VS
Переполнение
V = 1
VC
НЕТ переполнения
V = 0
Другие варианты представляют собой комбинации вышеперечисленных, и
могут быть найдены на странице 112 из “ARM Architecture Reference Manual”
(http://infocenter.arm.com/help/topic/com.arm.doc.ddi0100i/index.html).
Конечно, если инструкция не имеет мнемонического расширения, она считается
некондиционной и всегда выполняется. Вместо этого, если флаги не
удовлетворяют ее условию, инструкция считается NOP и пропускается.
Простым примером условного выполнения может быть:
1.
CMP r0, #2
2.
MOVEQ r1, #0
3.
MOVNE r2, #4
Код прост. Сначала проверяется, равно ли значение, содержащееся в r0 двойке.
Если да, то команда инструкция MOVEQ сбросит r1. В противном случае
команда MOVNE поместит значение 4 в r2.
3.3 Инструкции ветвления (Branch instructions)
Инструкции ветвления необходимы для создания программ, в которых нужны
циклы и функции. С их помощью можно переходить в различные части
исполняемого файла в соответствии с определенными условиями. Они также
позволяют создавать подпрограммы, которые программист может
рассматривать как множество маленьких "черных ящиков", и избежать
повторения кода.
12


Вот основные инструкции (безусловные переходы, которые можно сделать
условными с помощью мнемонических расширений):

Download 0.92 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   36




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling