当前位置:首页 > 单片机 > 单片机
[导读](1)b,bl:相对跳转指令。可跳转范围是当前指令的前后32MB。(2)mov,ldr,str:mov比较熟悉,就是赋值。ldr本意为“大范围的地址读取伪指令”。str为存储指令。COUNTEQU0x40003100……LDR R1,=COUNTMOVR0,#0STRR0

(1)b,bl:相对跳转指令。可跳转范围是当前指令的前后32MB。

(2)mov,ldr,str:mov比较熟悉,就是赋值。ldr本意为“大范围的地址读取伪指令”。str为存储指令。

COUNTEQU0x40003100
……
LDR R1,=COUNT
MOVR0,#0
STRR0,[R1]


COUNT是一个数值,为0x40003100。

LDRR1,=COUNT是读取COUNT的值并赋值给R1,即R1存放的是地址0x40003100.

MOVR0,#0是将立即数0放到R0中。

STRR0,[R1]是一个典型的存储指令,将R0中的值放到以R1中的值为地址的存储单元去。实际就是将0放到地址为0x40003100的存储单元中去。

再举一个例子:

ldr r1,[r2]@将地址为r2的内存单元里的数据读取到r1中
ldr r1,[r2,#4]@将地址为r2+4的内存单元里的数据读取到r1中
ldr r1,[r2],#4@将地址为r2的内存单元里的数据读取到r1中,然后r2=r2+4

strr1,[r2] @将地址为r1的内存单元里的数据保存到r2单元内存中
strr1,[r2,#4]@将地址为r1的内存单元里的数据保存到(r2+4)单元内存中
strr1,[r2],#4@将地址为r1的内存单元里的数据保存到r2单元内存中,然后r2=r2+4


其它伪指令:

.externmain
.text
.global _start
_start:

".extern"定义一个外部符号(可以是变量也可以是函数),上面的代码表示本文件中引用的main是一个外部函数。

".text"表示下面的语句都属于代码段,(也即是文本段)。

".global _start"将本代码段中的某个程序标号定义为全局的,比如上面的_start就定义成了一个全局函数。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭