汇编
微嵌电子
这个作者很懒,什么都没留下…
展开
-
LDR指令和LDR伪指令区别
ARM指令集中,LDR通常都是作加载指令,但是它也可以作伪指令。初学者一般不会注意到它们的区别,其实在嵌入式开发过程中,这两条指令时非常常用的!我们应该了解他们的区别。LDR伪指令的形式是“LDR Rn,=expr”。作用是装在一个32bit常数和一个地址到寄存器。下面举一个例子来说明它的用法。COUNT EQU 0x56000054LDR R1转载 2017-11-06 15:40:52 · 3078 阅读 · 1 评论 -
arm汇编—str指令
操作系统:ubuntu10.04汇编语言:armSTR指令的格式为:STR{条件} 源寄存器,STR指令用亍从源寄存器中将一个32位的字数据传送到存储器中。该指令在程序设计中比较常用,丏寻址方式灵活多样,使用方式可参考指令LDR。指令示例:STR R0,[R1],#8 ;将R0中的字数据写入以R1为地址的存储器中,并将新地址R1+8写入转载 2017-11-06 15:42:43 · 2286 阅读 · 0 评论 -
tst、cmp、bne、beq指令
1、tst:逻辑处理指令,用于把一个寄存器的内容和另一个寄存器的内容或立即数进行按位的与运算,并根据运算结果更新CPSR中条件标志位的值。当前运算结果为1,则Z=0;当前运算结果为0,则Z=1 cmp:算数处理指令,用于把一个寄存器的内容和另一个寄存器的内容或立即数进行减法比较,不存储结果,都会更改标志位 bne: 数据跳转指令,标志寄存器中Z标志位不等于零时, 跳转到BNE后标签处 beq转载 2017-11-06 15:43:27 · 11177 阅读 · 1 评论 -
arm汇编—bic ,orr
1. bicBIC指令的格式为:BIC{条件}{S} 目的寄存器,操作数1,操作数2BIC指令用于清除操作数1的某些位,并把结果放置到目的寄存器中。操作数1应是一个寄存器,操作数2可以是一个寄存器、被移位的寄存器、或一个立即数。操作数2为32位的掩码,如果在掩码中置了某一位1,则清除这一位。未设置的掩码位保持不变。bic r0,r0,#0x1f0x1f=11111转载 2017-11-06 17:02:22 · 856 阅读 · 1 评论