授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
Network Switching Software Platform Guide学习笔记
ARM微处理器共有37个寄存器,其中31个通用寄存器,6个状态寄存器。寄存器无法同时被访问,具体可以访问哪些寄存器取决于ARM处理器工作状态及具体的运行模式。
BL 在跳转之前,会在寄存器R14中保存PC当前值。通过将R14的内容重新加载到PC,来返回到跳转指令之后的那个指令执行。一般实现子函数的调用
BLX{条件} 目标地址,指令跳转到目标地址并将处理器的工作状态由ARM状态切换为Thumb状态,同将PC的当前内容保存到寄存器R14中。因此,当子程序使用thumb指令集,可以通过此指令。
MVN{条件}{s} 目的寄存器,源操作数 #与mov指令的不同之处在于传送之前按位被取反,即把一个被取反的值传送到寄存器中,例MVN R0,#0xff; R0=0xffffff00
CMP{条件} 操作数1,操作数2 # 比较完之后,会更新CPSR中条件标志位的值,该指令执行一次减法运算,不存储结果,只更改条件标志位
TST指令,将一个寄存器的内容与另一个寄存器或是立即数按位与的运算,将结果更新到CPSR中,结果为0则EQ位被设置
TST{条件} 操作数1,操作数2;例如: TST R1, # %1;用于测试R1中最低位是否为1
STMFD R13!,{R0,R4-R12, LR};将寄存器列表中的寄存器R0,R4到R12,LR存储到R13寄存器所指的内存地址中去(堆栈)
在ARM汇编语言程序里,有一些特殊的指令助记符,称为伪指令,作用是为了完成汇编程序做各种准备工作,仅在汇编过程中起作用。主要分为以下几类:

