Я учусь на ассемблере для ARM Cortex и у меня есть следующая проблема:сдвиг вправо и добавить в одну команду
Написать одна строка инструкции сборки для следующего расчета: Применить арифметический сдвиг вправо на содержание из R2, затем добавить содержимое R1 и R2 и сохранить результат в R0.
Я понимаю арифметический сдвиг вправо, как:
ASR R0, R2, #9
И сделать надстройку просто:
ADD R0, R1, R2
Но я не уверен, как объединить их в один команда. До сих пор я придумал следующее из примера я увидел, что выглядело, как будто они делают две команды в одной строке аналогичным образом:
ASR R0, R2, #9, [ADD R1, R2]
Я знаю, что это, вероятно, неправильно, так может кто-нибудь объяснит мне, как это должно быть сделано?
Используйте 'add' со сдвинутым входным операндом. Это не работает по-другому. http://www.davespace.co.uk/arm/introduction-to-arm/barrel-shifter.html –
@PeterCordes, что-то вроде: 'ADD R0, R1, R2, ASR # 9'? –
Это почти как один из примеров на странице, с которой я связан, так что да, я думаю, что это правильный синтаксис. Вы должны проверить, что он собирается. –