This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

新手学习ARM指令,指令编码问题有点不懂,求指教

前辈们,这是我截取ARM体系结构与编程中的内容。我的问题是。 指令编码的24位,IA是后增的,那么它的基址寄存器是会放入数据的,为啥24位是0,现在Rn所指的内存单元用上了啊,那不应该是包含在指令使用的内存块中额,地址寄存器所指的内存单元包含在指令所使用的代码块中啊

Parents
  • 你好。
    「P」意味「预先进行的操作(previous)」,「U」意味「增加方向(upward)」。这个缘故,「P」「U」的组合和,LDM/STM的addressing mode的关系变得以下的。

    IA (P,U)=(0,1)  Increment After  -- Rn has lower address (change is upward)
    IB (P,U)=(1,1)  Increment Before -- Rn has lower address (change is upward)
    DA (P,U)=(0,0)  Decrement After  -- Rn has higher address (change is downward)
    DB (P,U)=(1,0)  Decrement Before -- Rn has higher address (change is downward)

    譬如,因为「IA」「操作后,(after)」变址寄存器「增加(increment)」使之做,现在的变址寄存器的价值「最下(U==1)」有。

    这是你期盼的回答吗?

    I'm sorry for my poor Chinese.

    Best regards,

    Yasuhiko Koumoto.

Reply
  • 你好。
    「P」意味「预先进行的操作(previous)」,「U」意味「增加方向(upward)」。这个缘故,「P」「U」的组合和,LDM/STM的addressing mode的关系变得以下的。

    IA (P,U)=(0,1)  Increment After  -- Rn has lower address (change is upward)
    IB (P,U)=(1,1)  Increment Before -- Rn has lower address (change is upward)
    DA (P,U)=(0,0)  Decrement After  -- Rn has higher address (change is downward)
    DB (P,U)=(1,0)  Decrement Before -- Rn has higher address (change is downward)

    譬如,因为「IA」「操作后,(after)」变址寄存器「增加(increment)」使之做,现在的变址寄存器的价值「最下(U==1)」有。

    这是你期盼的回答吗?

    I'm sorry for my poor Chinese.

    Best regards,

    Yasuhiko Koumoto.

Children