二者的相同点在于都是由汇编器翻译成cpu能理解的指令.
msp430的仿真指令由于常数发生器的作用,会加快执行速度,改变指令的长度,
实际上是通过常数发生器的参与把绝对寻址方式改变为寄存器寻址方式从而加快指令执行速度和减小指令长度,从而cpu只要实现最小化的高度正交精简指令即可.
arm的伪指令,是为了方便用户,不用计算标号等和PC的相对关系或者其他的作用,但不会加快执行速度,改变指令的长度. 例如: 00008FE4 OPT l% 00008FE4 E28F0004 ADR R0, text 00008FE8 EF000002 SWI "OS_Write0" 00008FEC E1A0F00E MOV PC, R14 00008FF0 .text 00008FF0 EQUS "Hello!" + CHR$13 + CHR$10 + CHR$0 00008FFC ALIGN
下列代码有完全相同的效果:
00008FE4 OPT l% 00008FE4 E28F0004 ADD R0, R15, #4 00008FE8 EF000002 SWI "OS_Write0" 00008FEC E1A0F00E MOV PC, R14 00008FF0 .text 00008FF0 EQUS "Hello!" + CHR$13 + CHR$10 + CHR$0 00008FFC ALIGN
|