Что делает команда MOVHS в сборке ARM?
Мне трудно понять, что делает эта команда. Я предполагаю, что это означает половину слова mov, зарегистрированного в реестре, но я не уверен. Любая помощь будет оценена!
2 ответа
Я бы предположил, что это нормальное движение, которое происходит только в том случае, если текущие коды условий указывают "выше или одинаково" (unsigned >= от предыдущего сравнения или вычитания).
Это не имеет никакого отношения к полуслову или подписи. Информационный центр ARM - это всегда хорошее место, чтобы начать, если вы запутались, а не гадать. В любом случае, чтобы ответить на ваш вопрос, что эта команда или мнемоника делает, это выглядит в CSPR (Текущий регистр состояния программы) и выходит за пределы значения, хранящегося там. Теперь это может быть результатом более раннего вызова, как cmp r0, r1
, Скажи, что это было так, и cmp r0, r1
был вызван перед кодом movhs
назывался. Теперь статус cmp
Вызов сохраняется в CPSR, и когда такие условия, как hs
или же cs
добавляется как в случае с movhs
это означает, что этот оператор будет выполняться только в том случае, если результат в CPSR выше или одинаков, то есть в псевдокоде, if (r1 >= r0){execute the mov command}
,