Добрый день.
Есть кусок ассемеблерного кода для 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 никогда не останется нулевым.
Подскажите, верно ли я понимаю этот кусок?