в x86 инлайн сборки я могу написать что-то вроде этого:ARM встроенный ассемблер - указать индивидуальный регистр в качестве ограничения
asm ("cpuid"
: "=a" (_eax),
"=b" (_ebx),
"=c" (_ecx),
"=d" (_edx)
: "a" (op));
так в ограничениях Матчин вместо того, чтобы просто писать «= г» и пусть компилятор выбрал регистр , Я могу сказать, какой конкретный регистр я хочу использовать (= например, для использования% eax)
как я могу это сделать для сборки ARM? руку НКУ сборки поваренной книги http://www.ethernut.de/en/documents/arm-inline-asm.html гласит, что я может, например, использовать ограничения «г» для одного из регистров общего назначения R0-R15 «ж» для одного из плавающей точки VFP регистры S0-S31
, но как я могу ограничить операнд, например, точно до s1? или к определенному регистру общего назначения?
спасибо!
Какую проблему будет решать это на ARM, чтобы точно знать, в каком регистре конкретный операнд помещается в? Какие инструкции по ARM _implicitly_ изменяют регистры (кроме операций загрузки/хранения с добавлением/уменьшением до/после увеличения, для которых существуют конкретные ограничения)? В этом аспекте ARM и x86 совершенно разные ... то, что необходимо на x86, не на ARM. –
@FrankH. Системные вызовы? На самом деле я нашел этот вопрос. – Duc