2014-12-08 4 views
0

Я пытаюсь сравнить два регистра R5 и R6, которые я знаю, что я могу сделать сКак сравнить два регистра и выполнять действия, если больше, чем без ветвления в ARM

CMP R7, R5 

То, что я пытаюсь сделать, это

если R7> 1, то ADD R8, R8, #1 без ветвления, как я буду использовать это несколько раз на разных участках кода

Я знаю BGT будет расшириться, если больше, или если его можно вернуть в прежнее положение после того, как ветвящиеся добавить в счет?

+0

Просьба уточнить ваш вопрос. «cmp r7, r5, r6» недействительный код операции. Вы хотите запустить add, если r5> r6 или если r7> 1? –

ответ

0

Многие инструкции ARM are defined as OP{cond}, это означает, что вы можете сделать выполнение этой команды зависит от состояния:

cmp r5, r7 
addgt r8, r8, #1 //increments r8 if r5 is greater than r7 
mov r1, r0 //executes in any case 
+0

Большое спасибо, я не знал, что могу изменить ADD, чтобы добавить, если больше. Будет ли это работать и с большинством инструкций? – Robert

+0

Большинство команд ARM, но не все. Проверьте инфоцентр ARM (связанный в моем ответе), чтобы убедиться. – Jacen

 Смежные вопросы

  • Нет связанных вопросов^_^