Основная масса инструкций архитектуры ARM содержит поле cond, занимающее старшие четыре разряда кода команды и задающее условие, при котором данная команда будет выполнена. Кодирование условий этим полем показано в следующей таблице.
Равно | Z установлен | ||
Не равно | Z сброшен | ||
Имеется перенос/беззнаковое больше или равно | C установлен | ||
Нет переноса/беззнаковое меньше | C сброшен | ||
Знак «минус» | N установлен | ||
Знак «плюс» | N сброшен | ||
Переполнение | V установлен | ||
Нет переполнения | V сброшен | ||
Беззнаковое больше | C установлен, а Z сброшен | ||
Беззнаковое меньше или равно | C сброшен и/или Z установлен | ||
Знаковое больше или равно | N и V равны друг другу | ||
Знаковое меньше | N и V не равны друг другу | ||
Знаковое больше | Z сброшен, а N и V равны друг другу | ||
Знаковое меньше или равно | Z установлен и/или N и V не равны друг другу | ||
Безусловное исполнение | Не имеет значения | ||
Безусловная инструкция | Не имеет значения |
В программе на языке ассемблера мнемоники условий задаются непосредственно за мнемоникой операции. Например, если инструкция пересылки MOV должна быть выполнена только в случае, когда флаг Z=1, она будет записана следующим образом: MOVEQ.
Если инструкция должна выполняться всегда независимо от состояния флажков, к её мнемонике может быть добавлен код условия AL либо код условия вообще опускается: MOVAL или MOV.
Если старшие четыре разряда кода команды содержат код 1111, это означает, что данный код команды относится к группе безусловно исполняемых инструкций, которые впервые появились в архитектуре ARMv5. Такие процессоры, обнаружив эту комбинацию, декодируют инструкции особым образом.
В процессорах более ранних архитектур декодирование команд логически начиналось с анализа разрядов 27:25, а поле cond не учитывалось. Поэтому комбинация 1111 в этом поле для в остальном формально корректных инструкций приведёт к непредсказуемым последствиям: исключение по недопустимой команде гарантированно возникает лишь в том случае, когда в поле cond присутствует допустимый код (0000–1110), но неверны другие разряды кода команды.