Assembly 从十六进制值中减去1

Assembly 从十六进制值中减去1,assembly,hex,type-conversion,base,twos-complement,Assembly,Hex,Type Conversion,Base,Twos Complement,关于将2的补码十六进制值转换为十六进制以便进一步转换为十进制的快速问题。 我有下面的寄存器值,它是2的补码十六进制形式,正如我从文本中看到的,如果我减去1,然后反转位,我应该是常规的十六进制形式 我的问题是,如果你从0中减去1,并且在文本中找不到任何关于它的内容,我不确定你会怎么做。我这样做对吗?还是我不绕圈子 ECX=00076540 00076540-1->0007654F->FFF89AB0您只能对负值执行此操作,即原始符号位为1。您的转换反过来是有意义的,如果您从0xFFF89AC0开始

关于将2的补码十六进制值转换为十六进制以便进一步转换为十进制的快速问题。 我有下面的寄存器值,它是2的补码十六进制形式,正如我从文本中看到的,如果我减去1,然后反转位,我应该是常规的十六进制形式

我的问题是,如果你从0中减去1,并且在文本中找不到任何关于它的内容,我不确定你会怎么做。我这样做对吗?还是我不绕圈子

ECX=00076540
00076540-1->0007654F->FFF89AB0

您只能对负值执行此操作,即原始符号位为
1
。您的转换反过来是有意义的,如果您从
0xFFF89AC0
开始,那么这就是
-0x00076540
所以
-484672
。(注:
0x40-1
0x3F
不是
0x4F
)。你的意图是什么?你想翻转号码的符号吗?这不仅仅是“转化”。如果原始数字为负数,结果将变为正数,反之亦然。和往常一样(基数2,基数10,不管怎样,都是一样的),借用。所以我根本不做这个步骤,除非它像FFFC0888一样是负数?我能直接从00076540到十进制10吗?@Moxy:是的,正数直接到十进制。对于负数,可以对数字求反,如果有适当的说明,可以直接进行,也可以按照说明手动进行。然后打印一个
-
符号和转换后的绝对值。