嵌入式控制系统原理及设计课件3-2 指令描述

合集下载

第一章-嵌入式控制系统简介ppt课件(全)

第一章-嵌入式控制系统简介ppt课件(全)
独特的性能来满足不同应用领域的需求。 SecurCore系列专门为安全器
ARM7系列微处理器是低功耗的32位RISC处理器,适合用 于对价位和功耗要求较高的消费类产品。ARM7系列有如下 特点: ❖ ·具有嵌入式ICE—RT逻辑,调试开发方便。 ❖ ·极低的功耗,适合对功耗要求较高的产品,如便携式 产品。 ❖ ·能够提供0.9 MIPS(MIPS,每秒百万条指令)/MHz 的三级流水线结构。 ❖ ·对操作系统的支持广泛,如Windows CE、Linux、 PalmOS(最流行的掌上电脑操作系统)等。 ❖ ·指令系统与ARM9系列、ARM9E系列和ARM10E系列 兼容,便于用户的产品升级换代。 ❖ ·主频最高可达130MHz,高速的运算处理能力可胜任 绝大多数的复杂应用。
集。 ❖ ·支持32位的高速AMBA总线接口。 ❖ ·全性能的MMU,支持WindowsCE,
Linux,PalmOS等多种主流嵌入式操作系统。
❖ ·MPU支持实时操作系统。
❖ ·支持数据Cache(高速缓存)和指令 Cache,具有更高的指令和数据处理能力。
❖ ARM9系列微处理器主要应用于无线设备, 仪器仪表,安全系统,机顶盒,高端打印机, 数字照相机和数字摄像机等。
1.1.2 嵌入式控制系统的设计方法
❖ 做为嵌入式控制器的单片机,不管是8位单片机还 是16位单片机或32位单片机,由于受其本身资源限 制,其应用程序都不能在其本身上开发。开发其应 用程序,还需要一台通用计算机,如常用的IBMPC机或兼容机,Mindows95/98/2000或XP操作系 统,256M以上内存,1G以上硬盘内存空间(运行 交叉编译环境ADS1.2最低配置)。我们也称这台 通用计算机为“宿主机”,称做为嵌入式控制器的 单片机为“目标机”。应用程序在“宿主机”上开 发,在“目标机”上运行。“目标机”和“宿主机” 之间利用计算机并口通过一台叫“仿真器”的设备 相连,程序可以从“宿主机”传到“目标机”,这 也叫程序下载,也可以从“目标机”

【第4章】嵌入式操作系统原理精品PPT课件

【第4章】嵌入式操作系统原理精品PPT课件
实际调度模型
先来先服务 FCFS 最短任务优先调度 基于优先级的非抢占式调度
18
非抢占式调度
低优先级任务
(1)
(2)
(4)
高优先级任务
t0
ISR
t1
(3)
t2
等待态 运行态
时间
(5)
(6) 低优先级任务释 放CPU使用权
t3 t4
(7)
就绪态 被中断态
19
非抢占式调度
低优先级任务
(1)
(2)
(4)
suspended -> pended
taskResume() [shell] tr
suspended -> delayed
taskResume() [shell] tr
4.2.2 任务调度和管理
操作系统内核负责为对任务进行调度和管理;
为每个任务分配CPU时间; 负责任务切换工作; 按照一定的策略,在就绪态任务列表中选择一个任 务执行; 负责任务间的同步和通信。
43
优先级反转的解决方法
Thigh
t0
t1
t2 t3 时间 t4
t5 运行态
Tmedium
就绪态
Tlow
等待态
空闲
T3拥有
T1拥有
空闲
t0: Tlow获得资源 t1: Thigh抢占Tlow,Tlow进入就绪态 t2: Thigh试图获得资源锁,Thigh进入等 待态,Tlow优先级升高,Tlow运行
(5)
高优先级任务
t0
ISR
t1
(3)
t2
中断服务程序 使高优先级任
务就绪
时间
(6)
低优先级任务释 放CPU使用权

《嵌入式系统》课件3-ARM指令系统

《嵌入式系统》课件3-ARM指令系统

编码表如下:
ARM寻址方式
立即寻址 寄存器寻址 寄存器间接寻址 基址加偏址寻址 堆栈寻址 块拷贝寻址 相对寻址
立即寻址
立即寻址也叫立即数寻址,这是一种特殊的寻址方式,操 作数本身就在指令中给出,只要取出指令也就取到了操作
数,这个操作数被称为立即数,对应的寻址方式也就叫做
立即寻址。例如以下指令:
• 例如:
SMLAL R4,R,3,R2,R1
Load/Store指令
•ARM的数据存取指令Load/Store是唯一用于寄存器 和存储器之间进行数据传送的指令。ARM指令集中有 三种基本的数据存取指令:
单寄存器的存取指令(LDR,STR) 多寄存器存取指令(LDM,STM)
读写字节,半字
• 字节存取 • STRB , LDRB • STRSB, LDRSB (带符号)
LDMI B LDMED
STMI A LDMI A STMEA LDMFD
先减
减值
LDMDB STMDB LDMEA STMFD
后减
LDMDA LDMFA
STMDA STMED
• LDMIA R0!, {R2-R9} • STMIA R1,{R2,R9}
相对寻址
与基址变址寻址方式相类似,相对寻址以程序 计数器PC的当前值为基地址,指令中的地址标号 作为偏移量,将两者相加之后得到操作数的有效 地址。以下程序段完成子程序的调用和返回,跳 转指令BL采用了相对寻址方式:
ARM指令系统
ARM指令集特点
•ARM指令都是是32位的。 •具有第一操作数、第二操作数、目的操作数 •使用多寄存器 •所有的ARM指令集都可以是有条件执行的。 •条件标志影响位 •程序的启动都是从ARM指令集开始。

嵌入式操作系统原理.ppt

嵌入式操作系统原理.ppt
程序映像
存放在磁盘上的可执行文件的代码和数据的集合称为可执行映 象(Executable Image),即程序
当一个程序(可执行映象)装入系统中运行时,它就形成了一 个进程
进程映像
进程是由正文段(text)、用户数据段(user segment)和系统数据 段(system segment)组成的一个动态实体。
Linux进程调度方法
Linux进程调度采用动态优先级法,调度 对象是可运行队列,
可运行队列中优先级大的进程首先得到 CPU投入运行。
进程在运行中,counter的代表进程的动 态优先级。
Linux采取了加权的方法来保证实时进程 优先于普通进程。
进程调度时机
时机1.进程状态发生变化时。
Linux调度分析
Linux进程的状态变化
进程状态
运行态:进程正在使用CPU运行的状态。处于运行态的进程又称为 当前进程(current process)
可运行态:进程已分配到除CPU外所需要的其它资源,等待系统把 CPU分配给它之后即可投入运行
等待态:又称睡眠态,它是进程正在等待某个事件或某个资源时所 处的状态。 等待态进一步分为可中断的等待态和不可中断的等待 态。处于可中断等待态的进程可以由信号(signal)解除其等待态。 处于不可中断等待态的进程,一般是直接或间接等待硬件条件。 它只能用特定的方式来解除,例如使用唤醒函数wake_up()等
嵌入式操作系统原理
嵌入式LINUX操作系统开发
体系结构概览 进程与调度管理 内存管理 文件系统 系统调用
体系结构概览
体系结构概览
内核的功能
进程控制(process management) 内存管理(Memory management) 文件系统管理(Filesystem management) 设备驱动程序(Device control) 网络(Networking)

嵌入式系统第3章PPT课件

嵌入式系统第3章PPT课件

5
4. 变址寻址
变址寻址——操作数在内存中,操作数地址由寄存器 中内容加偏移量获得
例:LDR R2,[R0,#8] 指令功能:R2← [R0+#8] 前变址
LDR R0,[R1],#8
指令功能:R0← [R1],R1←R1+8 后变址 LDR R2,[R0,#8]!
指令功能:R2← [R0+8],R0←R0+8 自动变址

NEXT
精选ppt
9
3.3 ARM指令的分类介绍
ARM微处理器的指令分类:
▪数据处理指令
▪加载/存储指令
▪转移指令
▪程序状态寄存器处理指令
▪软件中断指令
▪协处理器指令
精选ppt
10
3.3.1 数据处理指令 1. 数据传送指令MOV 例:MOV R1,R0 ;将R0内容送R1
MOV R1,R0,LSL#2 ;将R0左移2位送R1
ARM指令的二进制代码的基本格式:
ARM指令的汇编语言基本格式:
操作码 { 条件 } { S } 目的寄存器 , 第一操作数 { , 第二操作数 }
例: ADD R0,R4,R8
ADDEQ R0,R2,#5
ADDS R1,R5,R8
MOV PC,R14
精选ppt
2
3.1.3 ARM指令的条件域
ARM指令可根据CPRS中条件标志位的状态和指令的
2. 数据按位取反传送指令MVN 例:MVN R0,#0 ;将立即数0按位取反送R0 执行后 R0=0xFFFFFFFF= -1
精选ppt
11
3. 加法指令 (1) 不带进位加法指令ADC
例:ADD R0,R1,R2 ;R0 ←R1+R2

嵌入式系统原理与设计 教学课件(共82张PPT)

嵌入式系统原理与设计 教学课件(共82张PPT)
系统是采用一体化的监控程序,不存在操作系统平 台。而今天组成嵌入式系统的基本硬件构件已较复
杂,如:16位、32位CPU或特殊功能的微处理器、 特定功能的集成芯片、FPGA或CPLD等,其软
件设计的复杂性成倍增长。因此研究嵌入式系统的
设计原理及技术,提供系统的设计方法和开发工具是 嵌入式计算学科的关键技术。
嵌入式微处理器分类
嵌入式处理器
嵌入式微控制器 (MCU)
嵌入式DSP处理器 (DSP)
嵌入式微处理器 (MPU)
嵌入式片上系统 (System On Chip)
1、嵌入式微控制器(MCU)
• 嵌入式微控制器的典型代表是单片机这 种8位的电子器件目前在嵌入式设备中 仍然有着极其广泛的应用。
• 单片机芯片内部集成ROM/EPROM、 RAM、总线、总线逻辑、定时/计数器、 看门狗、I/O、串行口、脉宽调制输出、 A/D、D/A、Flash RAM、EEPROM等 各种必要功能和外设。
要求程序编写和编译工具的质量要高,以减少程序二进制代码长度、提 高执行速度。
以微处理器为核心
• 我们设计一个数字系统可以有很多种方法,如:定制
逻辑、现场可编程门阵列(FPGA)等,那么为什 么在设计嵌入式系统时要以微处理器为核心呢? 这主要有两种原因:
• (1)用微处理器是实现数字系统一种十分便捷、有 效的方法;
嵌入式系统的特征
• 可接5种GPS接收器; 嵌入式系统是以微处理器为核心的,嵌 入在其他设备中的专用计算机系统。它 5个按键需要和屏幕菜单显示组合起来完成这些功能。
在移动地图这个例子中,电能消耗特别重要,设计时应尽量减少存储器读/写,因为存储器访问是主要的功耗来源,存储器的访问必须精心安排 ,以避免多次读取相同的数据。

嵌入式控制系统原理及设计课件2-3 ARM微处理器概述

嵌入式控制系统原理及设计课件2-3 ARM微处理器概述
• 版本4,引入了3级流水线,增加了有符号、无符号的半字和有符号字节的load 和store指令;增加了T变种,处理器可工作于Thumb状态;增加了处理器的特 权模式。
• 使用此版本的处理器核:ARM7TDMI、ARM710T、ARM720T、ARM740T v4T、Strong ARM、ARM8、ARM810 v4、ARM9TDMI、ARM920T、 ARM940T v4T。
嵌入式控制系统原理及设计
第2章 ARM微处理器基础
2.3 ARM微处理器概述
2.3 ARM微处理器概述
嵌入式控制系统原理及设计
• ARM(Advanced RISC Machines)常见于嵌入式系统的各种书籍和教材, 与嵌入式系统有着不可分割的联系。
• 严格来讲,ARM既可认为是一个公司的名字,也可认为是对一类微处理器 的通称,还可认为是一种技术的名称。
• ARM Cortex-M3还加入了类似于8位处理器的内核低功耗模式,支持3种功耗管 理模式:
(1)通过一条指令立即睡眠; (2)异常/中断退出时睡眠; (3)深度睡眠,使整个芯片的功耗控制更为有效。
• ARMv7架构还采用了NEON技术,将DSP和媒体处理能力提高了近4倍, 并支持改良的浮点运算,满足下一代3D图形、游戏物理应用以及传统嵌 入式控制应用的需求。
嵌入式控制系统原理及设计
2.3.1 ARM微处理器体系结构
• 在这个版本中,内核架构首次从单一款式变成3种款式。
(1)款式A:适用于具有高计算要求、运行丰富操作系统以及提供交互媒体和 图形体验的应用领域。 (2)款式R:为要求可靠性、高可用性、容错功能、可维护性和实时响应的嵌 入式系统提供高性能计算解决方案。 (3)款式M:针对成本和功耗敏感的MCU和终端应用(如智能测量、人机接 口设备、汽车和工业控制系统、大型家用电器、消费性产品和医疗器械)的混 合信号设备进行过优化。

嵌入式控制系统原理及设计课件2-3 ARM微处理器概述

嵌入式控制系统原理及设计课件2-3 ARM微处理器概述
• ARM Cortex-M3还加入了类似于8位处理器的内核低功耗模式,支持3种功耗管 理模式:
(1)通过一条指令立即睡眠; (2)异常/中断退出时睡眠; (3)深度睡眠,使整个芯片的功耗控制更为有效。
嵌入式控制系统原理及设计
2.3.3 ARM Cortex-M3微处理器内核
• ARM Cortex-M3首次在内核上集成了嵌套向量中断控制器(NVIC)。
• 版本4,引入了3级流水线,增加了有符号、无符号的半字和有符号字节的load 和store指令;增加了T变种,处理器可工作于Thumb状态;增加了处理器的特 权模式。
• 使用此版本的处理器核:ARM7TDMI、ARM710T、ARM720T、ARM740T v4T、Strong ARM、ARM8、ARM810 v4、ARM9TDMI、ARM920T、 ARM940T v4T。
嵌入式控制系统原理及设计
2.3.3 ARM Cortex-M3微处理器内核
Cortex-M3 处理器内核系统
寄存器
组跟
中断
中断控制 器
(NVIC)
取指单 元
译码器
ቤተ መጻሕፍቲ ባይዱ
踪 接
ALU 口
调试系 统
跟踪
存储器接口
指令总线
存储器保护单元
存储总线
总线连接
调试
调试接口
代码存储器 存储器系统和外设 私有外设
可选
图2.3 Cortex M3内核架构图
嵌入式控制系统原理及设计
2.3.1 ARM微处理器体系结构
• 版本7,发布于2005年,该架构采用了在ARM的Thumb代码压缩技术, 保持了对之前ARM解决方案的代码兼容性。
• Thumb-2技术比纯32位代码少使用31%的内存,减小了系统开销,还能 够提供比基于Thumb技术的解决方案高出38%的性能。

嵌入式控制系统ppt课件

嵌入式控制系统ppt课件

1.1.3 嵌入式系统的发展史
1.二十世纪七十年代
1971年11月,Intel 公司成功的地将算术运算器和控 制器集成在一起,推出了世界上第一片微处理器 Intel 4004,这是嵌入式应用发展最重要的里程碑。
其后,各厂家相继推出了许多8位或16位的微处理 器,包括 Intel 的 8080/8085、 8086,Motorola 的 6800、68000,Zilog的Z80、Z8000。
1.1.2 嵌入式系统的应用概况
在应用数量上 嵌入式系统远远超过了通用计算机系统 例如,一台通用计算机系统的外部设备—— 软驱、显示卡、显示器、网卡、调制解调器、声 卡、打印机、扫描仪、数字相机、USB 集线器等 均是由嵌入式处理器控制的。
1.1.2 嵌入式系统的应用概况
在应用领域方面 嵌入式系统的应用领域非常广泛 包括工业制造、过程控制、通信、仪器、仪表、 汽车、船舶、航空、航天、军事装备、消费类产 品等领域 嵌入式系统无处不在
图1-7 穿刺肿瘤医疗仪器
1.1.2 嵌入式系统的应用概况
机器人 (Robot)
图1-8 智能玩具机器人
1.1.2 嵌入式系统的应用概况
图1-9 基于Байду номын сангаасin CE的移动机器人平台
1.1.2 嵌入式系统的应用概况
图1-10 基于RTLinux的仿人机器人
1.1.2 嵌入式系统的应用概况
图1-11 1997年4月在火星表面登陆的火星探测器(基于VxWorks)
1.1.3 嵌入式系统的发展史
单板计算机:系列化、模块化
流行的单板机:如Intel的 iSBC 系列、 Zilog 公 司的 MCB 等。
单板计算机使人们不必从选择芯片开始来设计 一台专用的嵌入式计算机,只要根据自己的需要 选择各种不同的功能模块,包括适合自己应用的 CPU 板、存储器板和各式I/O 插件板构成专用的 嵌入式计算机系统,并嵌入到自己的系统设备中, 就可以组建一台专用计算机系统。

嵌入式系统PPT讲解全

嵌入式系统PPT讲解全

三大领域所占比例之和接近60%
消费电子:信息家电,电视机、微波炉、数字电话 通信设备:手机、平板电脑 工业控制:自动化与测控仪器仪表 在工控和仿真领域,几乎所有的计算机控制系统都
采用嵌入式系统.新型的测控仪器仪表无一不是嵌入 式系统
嵌入式系统作为“物联网”的核心,是当前最热门最 有前景的IT应用领域之一。
(软件外包是指软件外包提供商为了集中精力从事核心 竞争力业务,降低项目成本,同时提高项目实施的质量,将 自己的软件项目中的全部或部分工作发包给合适的软件 企业去完成)
嵌入式系统在工业上的应用
嵌入式工控机 嵌入式工控机(Embedded Industrial Computer)是一
种加固的增强型工业计算机,它可以作为一个工业控 制器在工业环境中可靠运行。
工控机对于扩展性的要求也非常高,接口的设计需要 满足特定的外部设备,因此大多数情况下工控机需要 单独定制才能满足需求。
嵌入式工控机的优点 性能可靠 体积小巧 免维护 低功耗、无风扇、宽温设计、适应恶劣工作环境
嵌入式工控机的三大缺点。 一是性能较低; 二是扩展性较差;
三是缺乏标准化。
嵌入式工业触控一体机
工控机(Industrial Personal Computer,IPC)即工业 控制计算机,是一种采用总线结构,对生产过程及 机电设备、工艺装备进行检测与控制的工具总称。 工控机具有重要的计算机属性和特征,如具有计算 机CPU、硬盘、内存、外设及接口,并有操作系统、 控制网络和协议、计算能力、友好的人机界面。
工控机的主要类别有:IPC(PC总线工业电脑)、PLC (可编程控制系统)、DCS(分散型控制系统)、 FCS(现场总线系统)及CNC(数控系统)五种。
嵌入式工控机的优势
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.2.1 汇编语言:传送数据
嵌入式控制系统原理及设计
• 多个加载和存储操作可以合并为一个指令,也就是多加载(LDM)和多存储(STM)。
实例
描述
LDMIA Rd!, <reg list> 从Rd指定的存储器位置读取多个字,每次传输后地址增加
STMIA Rd!, <reg list> 从Rd指定的存储器位置存储多个字,每次传输后地址增加
;存储后R8变为0x810(增加四个字节)
STMIA.W R8, {R0 – R3}
;存储后R8不变
• ARM微处理器也可以按照前序或后序的方式访问存储器,对于前序,寄存器中 为要调整的存储器地址,从存储器传输使用更新后的地址,例如:
LDR.W R0,[R1, #offset]!
;读取存储器[R1+offset],R1更新为R1+offset
SBC.W Rd, Rn, Rm
; Rd= Rn-Rm-borrow
RSB.W Rd, Rn, #immed ; Rd=#immed-Rn
RSB.W Rd, Rn, Rm
; Rd= Rm-Rn
MUL Rd, Rm
; Rd=Rd*Rm
MUL.W Rd, Rn, Rm
; Rd=Rn*Rm
UDIV Rd, Rn, Rm
3.2.1 汇编语言:传送数据
嵌入式控制系统原理及设计
表3.10 常用的存储器访问指令
实例 LDRB Rd, [Rn, #offset] LDRH Rd, [Rn, #offset] LDR Rd, [Rn, #offset] LDR Rd1, Rd2, [Rn, #offset] STRB Rd, [Rn, #offset] STRH Rd, [Rn, #offset] STR Rd, [Rn, #offset] STR Rd1, Rd2, [Rn, #offset]
; 当立即数是32位时,需要用两个指令来设置高半部分
和第半部分
MOVS.W R0, #0x789A ; 将R0的低半字设置为0x789A
MOVT.W R0, #0x2345 ; 将R0的高半字设置为0x2345
嵌入式控制系统原理及设计
3.2.2 LDR和ADR伪指令
• 伪指令LDR和ADR都可将寄存器设置为程序地址值,他们的语法和行为不同,对于 LDR,如果地址为程序地址值,汇编器会自动将LSB置1,例如:
描述
多种数据大小的前序加载指令(字、字节、半 字和双字)
带符号展开、多种数据大小的前序加载指令 (字节、半字)
多种数据大小的前序存储指令(字、字节、半 字和双字)
嵌入式控制系统原理及设计
3.2.1 汇编语言:传送数据
• 后序存储器访问指令则使用寄存器指定的基地址进行存储器传输,完成后才会将 地址更新,例如
指令
操作
SMULL RdLo, RdHi, Rn, Rm ; {RdHi, RdLo}=Rn*Rm SMLAL RdLo, RdHi, Rn, Rm ; {RdHi, RdLo}+=Rn*Rm
有符号数值的32位乘法 指令
UMULL RdLo, RdHi, Rn, Rm ; {RdHi, RdLo}=Rn*Rm UMLAL RdLo, RdHi, Rn, Rm ; {RdHi,RdLo}+=Rn*Rm
嵌入式控制系统原理及设计
第3章 编程基础
3.2 指令描述
3.2.1 汇编语言:传送数据
嵌入式控制系统原理及设计
处理器的一个最基本的功能为数据传送,对于ARM Cortex-M3,数据传送支 持如下方式: (1)寄存器间传送数据; (2)存储器和寄存器间传送数据; (3)寄存器和特殊寄存器间传送数据; (4)将立即数送至寄存器。
LDR R0, =address1
; 将R0设置为0x4001

address1
; 这里的地址是0x4000
MOV R0, R1
; address1包含程序代码
• 执行的结果是LDR指令将0x4001放入R1,并且其最低位置1表示Thumb代码。
嵌入式控制系统原理及设计
3.2.2 LDR和ADR伪指令
描述 从存储器位置Rn + offset处读取字节 从存储器位置Rn + offset处读取半字 从存储器位置Rn + offset处读取字 从存储器位置Rn + offset处读取双字 往存储器位置Rn + offset处存储字节 往存储器位置Rn + offset处存储半字 往存储器位置Rn + offset处存储字 往存储器位置Rn + offset处存储双字
; Rd=Rn&#immed
AMD.W Rd, Rn, Rm
• 除了ARSR寄存器外,其他的特殊寄存器在特权模式下都不能访问。
嵌入式控制系统原理及设计
3.2.1 汇编语言:传送数据
• 将立即数送入寄存器应使用MOVS指令,例如:
MOVS R0, #0x12
; 将R0设置为0x12(适用于8位或以下的立即数)
MOVS.W R0, #0x789A ; 将R0设置为0x789A(适用于超过8位但小于32位的立即数)
无符号数值的32位乘法 指令
3.2.3 汇编语言:处理数据
嵌入式控制系统原理及设计
ARM Cortex-M3支持逻辑运算,这些指令包括AND(与)、ORR(或)以
及移位和循环移位等,表3.16给出了常见的逻辑算算指令。
指令
AND Rd, Rn
; Rd=Rd&Rn
AND.W Rd, Rn, #immed
SUB Rd, Rn, Rm
; Rd=Rn-Rm
SUB Rd, #immed
; Rd=Rd-#immed
SUB Rd, Rn, #immed
; Rd=Rn-#immed
SBC Rd, Rm
; Rd=ቤተ መጻሕፍቲ ባይዱd-Rm-borrow
SBC.W Rd, Rm, #immed ; Rd=Rn-#immed-borrow
list>
表明为32位Thumb-2指令)
STMDB.W Rd(!), <reg 从Rd指定的存储器位置存储多个字,每次传输后地址减小(.W
3.2.1 汇编语言:传送数据
嵌入式控制系统原理及设计
• 指令中的(!)指定寄存器Rd是否在指令完成后更新。例如:若R8等于0x8000,则
STMIA.W R8!, {R0 – R3}
实例
描述
LDR.W Rd, [Rn], #offset LDRB.W Rd, [Rn], #offset LDRH.W Rd, [Rn], #offset
多种数据大小的前序加载指令(字、字节、半字 和双字)
LDRD.W Rd1, Rd2, [Rn], #offset LDRSB.W Rd, [Rn], #offset LDRSH.W Rd, [Rn], #offset
嵌入式控制系统原理及设计
3.2.1 汇编语言:传送数据
• PUSH和POP是栈的存储器操作,例如
PUSH {R0, R4-R7, R9} ;将R0,R4-R7,R9压栈
POP {R2,R3}
;将R2和R3出栈
• 通常PUSH指令要用一个对应的POP指令,并且寄存器列表相同。但在异常处理 中使用POP时需要注意,例如
ADD.W R0, R1, R2 ; R0=R1+R2
嵌入式控制系统原理及设计
3.2.3 汇编语言:处理数据
• 传统的Thumb指令语法下,当使用16位Thumb代码时,ADD指令可以修 改PSR中的标志。
• 但32位Thumb-2代码则可以修改一个标志或者保持不变。如果下面的操 作以来标志的话,要区分这两种不同的操作,就需使用s后缀了:
LDR.W R0, [R1], #offset
;读取存储器[R1],R更新为R1+offset
• 在使用后序指令时,无须使用“!”符号,因为所有的后序指令都会更新基地址 寄存器,而前序访问则可以选择是否更新基地址寄存器。
嵌入式控制系统原理及设计
3.2.1 汇编语言:传送数据
• 后序存储器访问指令实例如表3.13所示,也可用于多种大小。
嵌入式控制系统原理及设计
3.2.3 汇编语言:处理数据
• ARM Cortex-M3提供了许多不同的指令用于数据处理,这些数据操作指 令可以有多种指令格式。
• 例如,ADD指令可以在寄存器间或者寄存器和立即数间执行:
ADD R0, R0, R1
; R0=R0+R1
ADD R0, R0, #0x12 ; R0=R0+0x12
• “!”的使用表明基地址寄存器R1会更新,“!”是可选的,若没有使用,指令 会被当作从基地址寄存器偏移地址处开始的普通存储器传输。 。
嵌入式控制系统原理及设计
3.2.1 汇编语言:传送数据
• 前序存储器访问指令包括各种大小的加载和存储指令,如表3.12所示。
实例 LDR.W Rd, [Rn, #offset] LDRB.W Rd, [Rn, #offset] LDRH.W Rd, [Rn, #offset] LDRD.W Rd1, Rd2, [Rn, #offset] LDRSB.W Rd, [Rn, #offset] LDRSH.W Rd, [Rn, #offset] STR.W Rd, [Rn, #offset] STRB.W Rd, [Rn, #offset] STRH.W Rd, [Rn, #offset]
3.2.1 汇编语言:传送数据
嵌入式控制系统原理及设计
• 寄存器间传送数据的命令为MOV,例如:将数据从寄存器R3送入寄存器 R8的指令可以写为:
相关文档
最新文档