Assembly 0xF0000000是负数还是正数?

Assembly 0xF0000000是负数还是正数?,assembly,Assembly,我正在使用手臂装配,并再次尝试拆除跳台。链接图像是来自佳能反叛t1i固件转储的跳转表条目。在这种情况下,R0我将其称为arg1,它是一个大于等于0x1000091的数字,如附图所示 我试图弄清楚这里是如何使用0xF0000000的。我唯一能想到的就是它一定是一个负数。。。因为这是我理解这里事物的唯一方法。我在评论中的计算方法是假设0xF0000000=-268435445,但正如我在那里解释的,它似乎不起作用 非常感谢您的帮助 不,我想。最左边的位是符号位。我想,因为我需要检查表示武器的使用,但

我正在使用手臂装配,并再次尝试拆除跳台。链接图像是来自佳能反叛t1i固件转储的跳转表条目。在这种情况下,R0我将其称为arg1,它是一个大于等于0x1000091的数字,如附图所示

我试图弄清楚这里是如何使用0xF0000000的。我唯一能想到的就是它一定是一个负数。。。因为这是我理解这里事物的唯一方法。我在评论中的计算方法是假设0xF0000000=-268435445,但正如我在那里解释的,它似乎不起作用

非常感谢您的帮助


不,我想。最左边的位是符号位。我想,因为我需要检查表示武器的使用,但几乎没有任何东西再使用其他可能性了。

它可以是正面的,也可以是负面的;这取决于上下文。对于假定该值为有符号4字节整数的情况,它等于-268435456。对于假定该值为无符号4字节整数的情况,例如对于地址,它等于4026531840

给你


这是。

不管它是正面的还是负面的

如果您使用可能的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
0xF0000000只是一个符号。它可以代表任何东西

作为32位数字的十六进制表示,它可以是正的,也可以是负的,这取决于数字是有符号的还是无符号的

作为有符号2补32位数字的十六进制表示,它是负数