• ARM对存储器只有加载和存储两种操作,因此凡是与存储器操作有关的指令仅限于两类指令,即LDR和STR,其他指令无效
  • “#”:立即数符号
    • 例:#12(十进制),#0x12(十六进制)
  • “!”:更新基址寄存器符号,它表示指令在完成操作之后最后的地址应该写入基址寄存器中
  • LDR(加载)

    • 例:
      LDR R0, [R1,#4] ;R0<—[R1+4]
      LDR R0, [R1,#4]! ;R0<—[R1+4]、R1<—R1+4
      LDR R0,[R1],R2 ;将由R1指示的存储器的字数据读入寄存器R0,并 将新地址R1+R2写入R1
      LDR R0,#0X23 ;这是错误的指令,因为LDR是把第二个操作数给加载到第一个操作数,且第二个操作数不能使立即数。如果第二个数必须是立即数的时候,要在立即数前面加上“=”,如
      LDR R1,=0X1234 ; R1=0X1234
  • STR(存储)

    • 例:
      STR R1, [R2,#8] ;[R2+8]<—R1
      STR R0,[R1],#8 ;将R0中的字数据写入以R1为地址的存储器中,并将新地址R1+8写入R1
  • MOV(数据传送)

    • 例:
      MOV R1,R0,LSL #3 ;将寄存器R0中的值左移3位后传送到R1
  • TST(位测试指令):按位相与,查看CPSR对应标志位

  • TEQ(相等测试指令):按位相异或,查看CPSR对应标志位
  • ADD(不带进位的加法):

    • 例:
      ADD R0,R2,R3,LSL,#1 ;R0=R2+(R3<<1)
  • BIC(位清除指令)

    • 例:
      BIC R0,R0,#0X0B ;该指令清除R0中的位0,1和3,其余的位保持不变
  • ARM汇编分支程序采用转移指令B子程序调用指令BL或条件转移指令BX来实现;在ARM汇编中一般没有专门的指令用来实现循环,一般采用比较指令CMP、ADD或SUB等能实现产生条件的指令,然后再通过带状态的条件转移指令BX来实现

  • IMPORT:
    • 例:
      IMPORT Label ;IMPORT伪指令用于通知编译器要使用的标号在其他源文件中已经定义,但要在当前源文件中引用,而且无论当前源文件是否引用该标号,该标号均会被加入到当前源文件的符号表中。
  • EXPORT:此伪指令用于在程序中声明一个全局的标号,该标号可在其他的文件中引用
  • ARM处理器支持的伪指令有ADR、LDR和NOP

    • ADR伪指令:用于把相对偏移地址加载到通用寄存器中

      • 例:
        ADR R0,mloop ;将mloop对应的相对偏移地址传送到R0中
    • LDR伪指令:用于一个32位常数的加载或地址的加载

      • 使用LDR伪指令有两个目的:

        • 当用MOV或MNV指令无法加载符合要求的32位立即数时,可用LDR伪指令加载任意32位操作数到寄存器。因为MOV或MNV指令加载的32位数据只能是8位立即数通过移位的方式得到,所以不能加载任意32位常数
        • 当需要程序的相对偏移地址或外部地址加载到寄存器时可用LDR伪指令
      • 例:
        LDR R1,=0X1234 ;R1=0X1234
        LDR R1,=0XABCDEF98 ;R2=0XABCDEF98
        LDR R3,=Mloop ;将Mloop对应的地址传送到R3中

  • HI: 无符号数大于
  • CS:无符号数大于等于
  • GT:带符号数大于
  • LT:带符号数小于

计算机三级之嵌入式系统学习笔记2相关推荐

  1. 计算机三级之嵌入式系统学习笔记8

    嵌入式系统是嵌入式计算机系统的简称,它是一种嵌入在设备(或系统)内部,为特定应用而设计开发的专用计算机系统 嵌入式系统与通用计算机一样,也由硬件和软件组成 能够按照指令的规定高速度完成二进制数据算数和 ...

  2. 计算机三级之嵌入式系统学习笔记7

    嵌入式系统的开发过程 需求分析与规格说明 系统设计 构件设计 系统集成与测试 嵌入式系统的开发特点 使用宿主机-目标机的开发架构 用于编程.调试的计算机称为宿主机 用于程序最终运行的称为目标机 与底层 ...

  3. 计算机三级之嵌入式系统学习笔记6

    嵌入式系统的软件结构 简单的轮询结构 应用程序重复循环检查每个外部输入条件,一旦有需要处理的任务,则进行相应的处理 带中断的轮询结构(中断驱动结构或前后台结构) 当有外部事件(例如温度传感器报警)发生 ...

  4. 计算机三级之嵌入式系统学习笔记3

    嵌入式最小硬件系统组成: 电源电路 电源模块由以下几部分组成: 交流变直流(AC-DC) 直流到直流(DC-DC) 低压差稳压器(LDO) 时钟电路 复位电路 调试测试接口(JTAG测试接口) 如果处 ...

  5. 计算机三级之嵌入式系统学习笔记1

    嵌入式系统的体系结构按指令集可以分为两大类:复杂指令集结构(CISC)和精简指令集结构(RISC) 嵌入式体系结构按存储机制分为冯诺依曼结构和哈佛结构 冯诺依曼结构中程序和指令并存,共用一条总线:而哈 ...

  6. 计算机三级之嵌入式系统学习笔记9

    数字(电子)文本 文字信息在计算机中称为文本(Text).文本是基于 特定字符集的一个字符流,每个字符均使用二进制编码表示 西文字符的编码 ASCII字符集和ASCII码 ASCII字符集共有128个 ...

  7. 计算机三级之嵌入式系统学习笔记5

    基于UART的RS-232/RS-485接口 RS-232 采用标准的RS-232电平转换电路,使UART的电平转换为RS-232电平 无法消除共模干扰,传输距离可达15米 负逻辑传输:逻辑0:+3V ...

  8. 计算机三级之嵌入式系统学习笔记4

    所有嵌入式处理器内部均集成了通用输入输出(GPIO)口,GPIO接口提供的输入具备缓冲功能,而输出均具有锁存功能 GPIO一般具有三态:0态.1态和高阻状态 集成电路互联总线接口(IIC) 串行半双工 ...

  9. 嵌入式系统学习笔记之ftp

    虽然在嵌入式系统中,我们可以通过串口的Xmodem模式传送小的文件,但是毕竟不符合我们的使用习惯,并且串口传输速率太低,不能满足我们大部分的需求,要传输文件的时候,我们还是使用网络较为熟悉,今天我将我 ...

最新文章

  1. 在线作图|小基因组——线粒体基因组圈图
  2. 蓝牙连接不上车要hfp_蓝牙耳机的音质由什么因素决定?价格高的蓝牙耳机音质一定好吗?...
  3. LeetCode第 3 场双周赛(2019.6.29)第一题:小于 K 的两数之和
  4. 响应式Web设计(一):响应式Web设计的背景
  5. weblogic与sitemesh乱码问题
  6. java学习(54):接口之间的继承
  7. php操作redis_PHP操作Redis的基本方法
  8. Apache Hadoop 启动报错:masternode:ssh: connect to host master port 22: Connection timed out 总结
  9. [转载] Python进阶:设计模式之迭代器模式
  10. charles请求入参中有乱码
  11. mysql异常关闭7034,SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数
  12. Abb变频器输参数只读_ABB变频器ACSM1-04/ACS380产品参数说明及功能介绍
  13. javascript绘制静态或者动态的图表、关系表、流程图-JointJS
  14. MySQL Index Merge Optimization
  15. redis如何进行分库存储和选择模糊清除缓存
  16. 揭开艺术特长考试神秘面纱
  17. 《众妙之门——用户体验设计的秘密》一1.4 良性的问题解决案例
  18. 使用AUTODYN超高速撞击仿真
  19. CTF---青青子衿(无C++注册机)
  20. UE4 VR 模式下全屏解决办法

热门文章

  1. 关于delphi指针(转)
  2. [转]asp.net 动态添加多附件上传
  3. VS2008 在IE8中 调试 ActiveX控件 无法进入断点的解决方法 设置VS2008和IE8 调试ATL MFC ActiveX控件
  4. IE8下JQuery clone 出的select元素使用append添加option异常解决记录
  5. 缩放图片,解决bitmap 内存溢出out of memory的问题
  6. 【报告分享】2020物业行业专题报告-德勤.pdf(附下载链接)
  7. 机器学习-python的工作目录
  8. 浙大PAT乙级1004. 成绩排名 (20)
  9. Airbnb搜索:深度学习排序算法如何进化?
  10. eclipse 如何关联git_作为一名初学Java者 如何做简单的Java项目