文章目录
概要
下表为移动指令的汇编程序和一条指令所需要的周期数:
序号 | 描述 | 汇编程序 | 所需要的机器周期 |
1 | 8-bit immediate | MOVS Rd,#<imm> | 1 |
2 | Lo to Lo | MOVS Rd,Rm | 1 |
3 | Any to Any | MOV Rd,Rm | 1 |
4 | Any to PC | MOV PC,Rm | 3 |
注:1、指令后加后缀S表示指令操作完成后需要更新APSR寄存器中对应的标志
举例说明
1、MOVS Rd,#<imm> 将8bit的立即数#imm复制到寄存器Rd中,并且更新寄存器APSR中的
N、Z标志
MOVS R1,#0X8
仿真如下,一个时钟周期后,将0X8复制到寄存器R1中
2、MOVS Rd,Rm 将寄存器Rm中的值复制到寄存器Rd中,并且更新寄存器APSR中的N、Z标志
MOVS R1,#0X8
MOVS R0,R1
仿真如下,一个时钟周期后,将寄存器R1的值复制到寄存器R0中
3、MOV Rd,Rm 将寄存器Rm中的值复制到寄存器Rd中
MOVS R1,#0X8
MOV R0,R1
仿真如下,一个时钟周期后,将寄存器R1的值复制到寄存器R0中
4、MOV PC,Rm 将寄存器Rm的值复制到PC寄存器中去
MOVS R1,#0X8
MOV PC,R1
仿真如下,修改PC指针后,3个时钟周期后,程序重新开始运行
注:以上仿真结果均使用ARM M0内核进行仿真。