2014-03-16 6 views
-1

Мне сложно понять, что делает эта команда. Я предполагаю, что это означает, что слово halfword подписано в регистр, но я не уверен. Любая помощь будет оценена!Что делает команда MOVHS в сборке ARM?

+2

В следующий раз обратитесь к [ссылке] (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0068b/Chdehgih.html). – Jester

+0

Возможный дубликат [Условие бит в SWI (инструкция ARM)] (http://stackoverflow.com/questions/19804734/condition-bits-in-swi-arm-instruction) –

ответ

3

Я бы предположил, что это нормальный ход, который возникает только в том случае, если коды текущего состояния указывают «выше или одинаково» (без знака> = из предыдущего сравнения или вычитания).

+0

Действительно. Каноническая мнемоника - 'CS' (набор переноса), но' HS' является признанным синонимом (как 'LO' для' CC'). – Notlikethat

0

Это не имеет никакого отношения к полуслову или подписанию. ARM info center всегда хорошее место для начала, если вы смутили, а не гадали. В любом случае, чтобы ответить на ваш вопрос, что делает эта команда или мнемоника, она выглядит в CSPR (Current Program Status Register) и уходит от значения, хранящегося там. Теперь это может быть результатом более раннего вызова типа cmp r0, r1. Скажем, что это было так, и cmp r0, r1 был вызван до вызова кода movhs. Теперь статус вызова cmp сохраняется в CPSR, и когда добавляется условие, такое как hs или cs, как в случае с movhs, это означает, что этот оператор будет выполняться только в том случае, если результат в CPSR равен выше или одинаково, т. е. в псевдокоде, if (r1 >= r0){execute the mov command}.