需要了解Arm处理器的帮助吗

需要了解Arm处理器的帮助吗,arm,Arm,我是一名机械工程专业的学生,目前正在学习ARM处理器。我刚刚遇到一个问题,但我不明白他们是如何得出这些答案的。在理解上需要帮助。另外,请帮助我们如何从负十进制转换为十六进制。多谢各位 在ARM中执行以下计算的结果是什么?怎么 是否设置了状态标志?(将操作数和结果写入32位 十六进制表示法!) (-1)+(+1) (0)–(1) (2^31–1)+(1) (-4)+(+5) 答案是: (-1)+(+1): (0)-(+1):减法替换为加法和求反=>(0)+(-1) (2^31-1)+(1):

我是一名机械工程专业的学生,目前正在学习ARM处理器。我刚刚遇到一个问题,但我不明白他们是如何得出这些答案的。在理解上需要帮助。另外,请帮助我们如何从负十进制转换为十六进制。多谢各位

在ARM中执行以下计算的结果是什么?怎么 是否设置了状态标志?(将操作数和结果写入32位 十六进制表示法!)

  • (-1)+(+1)
  • (0)–(1)
  • (2^31–1)+(1)
  • (-4)+(+5)
  • 答案是:

  • (-1)+(+1):

  • (0)-(+1):减法替换为加法和求反=>(0)+(-1)

  • (2^31-1)+(1):

  • (-4)+(+5):


  • 将负二进制转换为十六进制的方法称为

    状态标志为:

    • N:严格否定的结果
    • Z:结果是零
    • C::如果你把数字看成是无符号的,则运算产生一个最有效的位,在ARM上,这意味着结果应该是2 ^ 32 +登记在寄存器中的实际结果。< /LI>
    • V:。这意味着您的操作结果没有应有的标志。例如,你加上两个正整数,得到一个负整数

    这是一个相当广泛的问题。你能详细说明你不明白的地方吗?要将十进制数转换为负值,首先将十进制数转换为正值,反转位,将一个位添加到LSB。至少试一下。。。
    -1: 0xFFFFFFFF 
     1: 0x00000001
    ----------------
     0:  0x00000000
    N=0, Z=1, C=1, V=0
    
     0: 0x00000000 
    -1: 0xFFFFFFFF
    ----------------
     0: 0xFFFFFFFF
    N=1, Z=0, C=0, V=0
    
      :  0x7FFFFFFF
     1:  0x00000001
    ----------------
     0:  0x80000000
    N=1, Z=0, C=0, V=1
    
    -4: 0xFFFFFFFC 
     5: 0x00000005
    ----------------
     1:  0x00000001
    N=0, Z=0, C=1, V=0