是0xF0000000负数还是正数?

Cou*_*tts 0 assembly

我正在使用ARM程序集,并尝试(再次)取消跳转表.链接的图像是来自canon rebel t1i固件转储的跳转表条目.在这种情况下,R0(我将其称为arg1)是一些> = 0x10000091的数字(如附图中所述).

我试图弄清楚如何使用0xF0000000.我唯一能想到的是它必须是一些负数...因为这是我能在这里理解事物的唯一方法.我在评论中解决的方式是假设0xF0000000 = -268435445,但正如我在那里解释的那样它似乎不起作用......

任何帮助是极大的赞赏!!

代码段

MRA*_*RAB 6

无论是正面还是负面都无关紧要.

如果您单步执行R0的可能值,则会得到以下结果:

R0          ADD...      SUB...
10000091 => 00000091 => 00000000 => branch to loc_FF1CC924
10000092 => 00000092 => 00000001 => branch to loc_FF1CC928
10000093 => 00000093 => 00000002 => branch to loc_FF1CC92C
10000094 => 00000094 => 00000003 => branch to loc_FF1CC930
10000095 => 00000095 => 00000004 => branch to loc_FF1CC934

anything else will fall through  => branch to loc_FF1CFAEC
Run Code Online (Sandbox Code Playgroud)