汇编代码摘记

【LDR】 加载指令 LDR指令用于从存储器中将一个32位的字数据传送到目的寄存器中。该指令通常用亍从存储器
中读取32位的字数据到通用寄存器,然后对数据迕行处理。
范例:【 LDR R0,=0XE0200280 】 讲一个地址传送到R0寄存器中


【 LDR R1,[R0] 】 将R0寄存器中读取的值存放到R1寄存器当中


【BIC】 BIC指令用亍清除操作数1的某些位,幵把结果放置到目的寄存器中。
范例: 【 BIC R1,R1,#(0XF<<12) 】 将R1寄存器当中的值第12/13/14/15位清零


【ORR】 用于将寄存器中的某一位置1
范例: 【 ORR R1,R1,#(1<<12) 】 将R1寄存器当中的值第12位置为1


【STR】 STR指令用亍从源寄存器中将一个32位的字数据传送到存储器中
范例: 【 STR R1,[R0] 】 将R1寄存器中的值传送回R0


【loop】 表示while循环的开始
范例:【 loop: 】 表示循环语句的开始


【BL】 调用子程序的指令,它把BL后面一条指令的地址放到R14寄存器里。
范例:【 BL delay 】 表示调用了delay函数


【b】 表示跳转,跳转到后面跟着的指令
范例:【 b loop 】 表示跳转回while函数


【MOV】 MOV指令可完成从另一个寄存器、被移位的寄存器或立即数赋值到目的寄存器。
MOV{条件}{S}  目的寄存器,源操作数
范例:【 MOV R2,#0X30000000 】 表示将0x3000000的值赋值给R2寄存器


【SUB】 减法运算
范例:【 SUB R2,R2,#1 】 表示R2寄存器的值减去1




for循环的表示:
temp:




BNE temp;
表示从temp开始执行下面的指令然后才跳转回到temp


判断语句:
CMP R2,#0
BNE temp;
【CMP】 判断R2里面的值是不是跟0相等
【BNE】 如果不想等的话那么就返回到 temp 标签




【LR】 表示R14寄存器
mov PC,LR 表示返回到 BL 的指令中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值