Может кто-то объяснить/подтвердить это (в частности SUB линии) для меня:Четвертый параметр на ARM инструкции вычитаем
CMP align,#2
CMPNE align,#5
CMPNE align,#8
SUBEQ xpos,xpos,width,LSR#1
Я думал, что это может быть equivilant к С кодом:
if ((align==2) || (align==5) || (align==8))
{
xpos -= width >> 1;
}
Я нашел это documentation, но я не понимаю четвертый параметр, imm12
. Он просто говорит:
Инструкция SUB вычитает значение Operand2 или imm12 из значения в Rn.
Спасибо, да 'align',' width' и 'xpos' определены так:' align RN 10'. Так что это названный регистр, который я понимаю. – weston
На самом деле, последний может быть регистром или немедленным (следовательно, imm). В приведенном выше, немедленное значение равно 1. –
Вы думаете о другом немедленном. Ссылка 'imm12' в вопросе, скорее всего, была получена из инструкции SUB {cond} {Rd}, Rn, # imm12' (т. Е. OP просто искал неправильную форму инструкции в документации). – Michael