我正在使用ARMSIM来测试我的机械 arm assembly 代码。我看到R8无缘无故地被更新。使用常规ADD指令时不会发生这种情况。我理解ADDS更新标志,但为什么是R8?
w6lpcovy1#
既然IRQ和FIQ都被禁用了,那么r8就没有理由改变了。我注意到进位也被设置了,将-10加到-10时不应发生,但将-10加到0时会发生(因为这将导致跨越FFFFFFFF-00000000边界。)我认为关于这是一个模拟器bug的评论是正确的。看起来模拟器在没有您以某种方式要求它的情况下执行了adds r8,r8,r0。
IRQ
FIQ
r8
FFFFFFFF-00000000
adds r8,r8,r0
1条答案
按热度按时间w6lpcovy1#
既然
IRQ
和FIQ
都被禁用了,那么r8
就没有理由改变了。我注意到进位也被设置了,将-10加到-10时不应发生,但将-10加到0时会发生(因为这将导致跨越FFFFFFFF-00000000
边界。)我认为关于这是一个模拟器bug的评论是正确的。看起来模拟器在没有您以某种方式要求它的情况下执行了adds r8,r8,r0
。