Добрый день.
Есть кусок ассемеблерного кода для ARM:
... 00 LDRB R4, [R0,#6] 01 MOV R4, R4,LSL#8 02 SUB R3, R4, #0xFF00 03 SUBS R3, R3, #0xFF 04 BXNE LR 05 LDR R4, =0x4000001A ...
В регистре R4 я получаю некий указатель. Глядя на операторы LDRB и MOV у меня закрадываются смутные сомнения, что на инструкции 04 всегда будет выполняться условие выхода из функции, т.к. LDRB вычитывает только один байт, который после сдвига влево на 8 всегда будет 0xNN00 и при вычитании из него 0xFF00, а затем 0xFF никогда не останется нулевым.
Подскажите, верно ли я понимаю этот кусок?
|