Assembly 一个简单的集合问题

Assembly 一个简单的集合问题,assembly,powerpc,Assembly,Powerpc,我是新来组装的,这很有趣。无论如何,我有一个问题 cmpw cr7, %r29, %r8 如果cr7>%r29和%r8,该代码是否等同于?它将r29与r8进行比较,并将结果放入cr7中,我相信 换言之: cr7=r29-r8 在读取一些PPC文档后,它看起来像cr(比较寄存器),获得一个编码值,表示更少、更大、相等 less: 0x100 greater: 0x010 equal: 0x001 在其他架构(如x86)中,没有CR本身,而是一组标志,如ZF、SF和CF(零、符号和进位

我是新来组装的,这很有趣。无论如何,我有一个问题

cmpw cr7, %r29, %r8

如果cr7>%r29和%r8,该代码是否等同于

它将r29与r8进行比较,并将结果放入cr7中,我相信

换言之:

cr7=r29-r8

在读取一些PPC文档后,它看起来像cr(比较寄存器),获得一个编码值,表示更少、更大、相等

less:    0x100
greater: 0x010
equal:   0x001

在其他架构(如x86)中,没有CR本身,而是一组标志,如ZF、SF和CF(零、符号和进位标志)。这些总是在算术运算(如减法)期间设置的。因此,比较与减法基本相同。

它将r29与r8进行比较,并将结果放入cr7,我相信

换言之:

cr7=r29-r8

在读取一些PPC文档后,它看起来像cr(比较寄存器),获得一个编码值,表示更少、更大、相等

less:    0x100
greater: 0x010
equal:   0x001

在其他架构(如x86)中,没有CR本身,而是一组标志,如ZF、SF和CF(零、符号和进位标志)。这些总是在算术运算(如减法)期间设置的。因此,比较与减法基本相同。

它可能会帮助其他人给出您的体系结构。它可能会帮助其他人给出您的体系结构。谢谢,这很有意义。但是为什么要用这种方法呢?比较实际上只是一种减法。如果你比较A和B,如果A-B为负,A小于B。如果A-B为正,则大于B;如果A-B==0,则等于。但是,我不能100%确定PPC是否存储减去的结果。我找到了一些文件,上面说cr的值是4,2和1,分别是更小,更大,相等。啊,好的。以下是完整代码:cmpw cr7、%r29、%r8 beq cr7、loc_152A13如果相等,则
beq
分支,换句话说,如果r29和r8相等,则跳至loc_152A13。BEQ查看存储在cr7中的结果。大多数体系结构都有一个“标志”寄存器,在该寄存器中,标志在一次操作(如“比较”操作码所隐含的减法)后更新,并说明操作如何进行(如“有进位”)。条件跳转操作码根据跳转的类型解释标志。PowerPC是“特殊”的,因为它预先计算解释(它不存储“结果为负”,而是“如果你想做一个‘如果较小的话跳转’,那么这里就是结果”),而且它有8个标志寄存器,而不是1个;它们被称为cr0到cr7。谢谢,这很有意义。但是为什么要用这种方法呢?比较实际上只是一种减法。如果你比较A和B,如果A-B为负,A小于B。如果A-B为正,则大于B;如果A-B==0,则等于。但是,我不能100%确定PPC是否存储减去的结果。我找到了一些文件,上面说cr的值是4,2和1,分别是更小,更大,相等。啊,好的。以下是完整代码:cmpw cr7、%r29、%r8 beq cr7、loc_152A13如果相等,则
beq
分支,换句话说,如果r29和r8相等,则跳至loc_152A13。BEQ查看存储在cr7中的结果。大多数体系结构都有一个“标志”寄存器,在该寄存器中,标志在一次操作(如“比较”操作码所隐含的减法)后更新,并说明操作如何进行(如“有进位”)。条件跳转操作码根据跳转的类型解释标志。PowerPC是“特殊”的,因为它预先计算解释(它不存储“结果为负”,而是“如果你想做一个‘如果较小的话跳转’,那么这里就是结果”),而且它有8个标志寄存器,而不是1个;它们被称为cr0到cr7。