мне необходимо реализовать на асм-е следующий сишный код:
Код
if(datA&0x80000000) regA = 0x20000;
else regA = 0x0;
Но операнд в ARM-команде может иметь макс длину 12 бит, поэтому в асм-е я поступаю следующим образом:
Код
;r1 = datA, regA = r6
mov r6, r1
mov r6, r6, lsr #28
and r6, r6, #0x8
ldrne r6, =0x20000 ;if(datA&0x80000000) regA = 0x20000
ldreq r6, =0 ;else regA = 0x0
это правильно?
Заранее благодарен.