直接在ARM汇编程序中设置CPSR标志

时间:2014-12-03 17:16:21

标签: assembly arm

我正在使用ARM汇编程序(特别是ARM7 little-endian)进行一些测试,我找不到任何设置flags / CPSR寄存器的方法,而无需使用算术指令间接设置它们。

有没有办法可以直接写入CPSR标志?

2 个答案:

答案 0 :(得分:1)

您是否尝试过MSR和MRS指令?

答案 1 :(得分:0)

MSR指令写入PSR。请注意,在ARM7上,它仅在特权模式下可用(对于某些CPSR字段的非特权访问,APSR的概念来自以后的体系结构)。

ARMv4t参考手册包括清除标志的具体示例:

MRS R0, CPSR ; Read the CPSR
BIC R0, R0, #0xf0000000 ; Clear the N, Z, C and V bits
MSR CPSR_f, R0 ; update the flag bits in the CPSR

注意读 - 修改 - 写操作以保留寄存器形式的保留位。对于设置标志的特定情况,如果将零写入保留位,则允许将直接值直接写入CPSR_f