|
关于arm与coprocessor寄存器数据传送的指令
[复制链接]
今天在阅读bootloader中碰到mcr、mrc指令,没有接触过,查了下文档才明白。
mcr和mrc指令,都是实现arm寄存器与协处理器(coprocessor)寄存器之间数据传输功能的,只是方向不同而已。
mcr功能:将ARM处理器寄存器中的数据发送到coprocessor的寄存器中。
mcr指令格式:mcr 协处理器编码,协处理器操作码1,目的寄存器(ARM的),源寄存器1(coprocessor的),源寄存器2(coprocessor的),协处理器操作码2
例子:mcr p15,0,r1,c1,c0,0 将ARM的寄存器r1中的数据送到coprocessor的寄存器c1,c0中。
mrc功能:将coprocessor寄存器中的数据发送到ARM处理器寄存器中。
mrc指令格式:mrc 协处理器编码,协处理器操作码1,目的寄存器(ARM的),源寄存器1(coprocessor的),源寄存器2(coprocessor的),协处理器操作码2
例子:mrc p15,0,r1,c1,c0,0 将coprocessor的寄存器c1,c0的数据送到ARM的寄存器r1中。
至于协处理器操作码是如何选定的本人尚不清楚,望老者能多多指点。
|
|