第3章 Cortex-M3 指令系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10
3.1.2 指令周期和时序
(3)内部周期:ARM不请求一个传输,因为它执行一个内部功能,
同时不执行有效的预取。这种情况所需的时间称为内部周期,简
称为I 周期。 (4)协处理器寄存器传输周期:ARM希望通过数据总线同协处理器 通信,ARM 与一个协处理器之间在数据总线(对于无缓存的 ARM)或协处理器总线(对于有缓存的 ARM)上写传送一个字的周
图3-1程序设计语言的层次结构
3.1.1程序设计语言的层次结构
• 为了提高程序设计的效率,提出了汇编语言的概念。将机器码
用指令助记符表示,就比机器语言方便得多。
• 汇编语言的编程效率和程序的可读性都有所提高,但汇编语言
同机器语言非常接近,它的书写风格在很大程度上取决于特定 计算机的机器指令,所以它仍然是一种面向机器的语言。
译或解释。
7
第3章 Cortex-M3 指令系统
• 高级语言(High Level Language)
面向问题的程序设计语言
• 汇编语言(Assembly Language)
将机器指令用助记符号代替而形成的一种语言 本质上是机器语言 优势:可以直接、有效地控制计算机硬件,容易产生运行速 度快、指令序列短小的高效率目标程序 劣势:与处理器密切有关,需熟悉硬件和细节,编程繁琐, 调试、维护、移植困难
应用软件 用户层 高级语言层
Level 6 (可执行程序) Level 5 (C++,Java,等)
虚拟机
系统软件
汇编语言层 操作系统层
Level 4 (汇编语言代码)
Level 3 (操作系统、库代码)
软硬件界面
硬件 物理机
固件
机器层 控制层
Fra Baidu bibliotek
Level 2 (指令集结构ISA)
Level 1 (微程序或硬布线)
第3章 Cortex-M3 指令系统
1
第3章 Cortex-M3 指令系统
• 3.1 指令基础 • 3.2 汇编语言 • 3.3 寻址方式 • 3.4 指令集
2
3.1 指令基础
• 3.1.1程序设计语言的层次结构 • 3.1.2指令周期和时序 • 3.1.3程序的执行过程
第3章 Cortex-M3 指令系统
硬件直接执行 数字电路层 Level 0 (门电路、电子线路)
3.1.1程序设计语言的层次结构
• •
计算机程序设计语言的层次结构如图3-1所示,分为机器 语言级、汇编语言级、高级语言级。 机器语言是与计算机硬件最为密切的一种语言,它由微程 序解释机器指令。这一级也是硬件级,是软件系统和硬件
系统之间的纽带。
动按照存储程序的要求进行工作,这称为程序控制。
图3-3计算机程序的执行过程
3.1.3 程序的执行过程
计算机执行程序是一条指令一条指令地执行。执行一条指令的过 程可分为取指、译码和执行等阶段。 首先,CPU进入取指阶段,通过控制总线(CB)发出读命令, 并在地址总线上(AB)给出所取指令的地址,从存储器中取出
的指令代码经过数据总线(DB)送到CPU的指令寄存器中,
然后对该指令译码,再转入执行阶段,在这期间,CPU执行指令 指定的操作。
3.2 ARM汇编语言
• 3.2.1 指令和指令格式 • 3.2.2 指令的可选后缀 • 3.2.3 指令的条件执行 • 3.2.4 指令分类
3.2.1指令和指令格式
图3-2 存储器访问时序
其中N-cycle比其它的周期长,这考虑了对DRAM的访问时间。
3.1.3 程序的执行过程
• •
CPU通过数据总线、地址总线、控制总线和存储器、外部 I/O设备联系起来。 计算机采取“存储程序与程序控制”的工作方式,即事先把 程序加载到计算机的存储器中,当启动运行后,计算机会自
3.1.1程序设计语言的层次结构
• 为了更好地进行程序设计,提高程序设计的效率,人们又提出
了高级语言程序设计的概念。如C、JAVA等,这类高级语言
对问题的描述十分接近人们的习惯,并且还具有较强的通用性 。这就给程序员带来极大的方便。
• 当然这类高级语言在执行前必须转换为汇编语言或其它中间语
言,最终转换为机器语言。通常有两种方法实现这个转换:编
期,简称C 周期。
3.1.2 指令周期和时序
ARM 指令在时序上是 S、N、I 和 C 周期的混合。各种类型的周
期都必须至少与 ARM 的时钟周期一样长。
对于典型的 SRAM 系统,所有类型的周期是最小长度,内存系统 也可以伸展它们,如典型的 DRAM 系统伸展如下: N 周期伸展为最小长度的两倍,这是因为 DRAM 在内存访问是 非顺序时要求更长的时间。
• 机器语言(Machine Language)
底层的计算机语言,对应机器指令
3.1.2 指令周期和时序
指令周期(Instruction Cycle):微处理器执行一条指令所需要 的时间。不同指令的指令周期不是等长的 。 如果要处理的数据在微处理器的寄存器中,则需要的时间短;
如果要处理的数据在存储器或I/O设备中则需要的时间长。
S 周期通常是最小长度,但有时也会被伸展成 N 周期的长度,如
从一个内存“行”的最后一个字移动到下一行的第一个字时。
I 周期和 C 周期总是最小长度。
3.1.2 指令周期和时序
例如:在8MHz的ARM微处理器中,一个 S 周期是125ns,而一
个 N 周期是 250ns。一个 8MHz的ARM微处理器可以与一个给 出125ns 的 N 周期的 RAM 系统相连接。 处理器的速率是 8MHz 只是简单的意味着如果你使任何类型的 周期,在长度上小于 125ns 则它不保证能够工作。
一般情况下,以访问存储器所需最长的时间来衡量指令周期。
3.1.2 指令周期和时序
举例:以ARM7微处理器为例,所有存储器的传输周期都可以被 归结到以下四种类型之一:
(1)不连续周期:ARM请求传输到某个地址或者从某个地址传输
,但这个地址跟前一个周期用到的地址没有联系,这种情况所需 的时间称为访问一个非顺序的内存位置的周期,简称为N 周期。 (2)连续周期:ARM请求传输到某个地址或者从某个地址传输, 此地址或者同上一个周期的地址相同或者是上一个周期的地址之 后一个字。这种情况所需的时间称为访问一个顺序的内存位置的 周期,简称为S 周期。
3.1.2 指令周期和时序
(3)内部周期:ARM不请求一个传输,因为它执行一个内部功能,
同时不执行有效的预取。这种情况所需的时间称为内部周期,简
称为I 周期。 (4)协处理器寄存器传输周期:ARM希望通过数据总线同协处理器 通信,ARM 与一个协处理器之间在数据总线(对于无缓存的 ARM)或协处理器总线(对于有缓存的 ARM)上写传送一个字的周
图3-1程序设计语言的层次结构
3.1.1程序设计语言的层次结构
• 为了提高程序设计的效率,提出了汇编语言的概念。将机器码
用指令助记符表示,就比机器语言方便得多。
• 汇编语言的编程效率和程序的可读性都有所提高,但汇编语言
同机器语言非常接近,它的书写风格在很大程度上取决于特定 计算机的机器指令,所以它仍然是一种面向机器的语言。
译或解释。
7
第3章 Cortex-M3 指令系统
• 高级语言(High Level Language)
面向问题的程序设计语言
• 汇编语言(Assembly Language)
将机器指令用助记符号代替而形成的一种语言 本质上是机器语言 优势:可以直接、有效地控制计算机硬件,容易产生运行速 度快、指令序列短小的高效率目标程序 劣势:与处理器密切有关,需熟悉硬件和细节,编程繁琐, 调试、维护、移植困难
应用软件 用户层 高级语言层
Level 6 (可执行程序) Level 5 (C++,Java,等)
虚拟机
系统软件
汇编语言层 操作系统层
Level 4 (汇编语言代码)
Level 3 (操作系统、库代码)
软硬件界面
硬件 物理机
固件
机器层 控制层
Fra Baidu bibliotek
Level 2 (指令集结构ISA)
Level 1 (微程序或硬布线)
第3章 Cortex-M3 指令系统
1
第3章 Cortex-M3 指令系统
• 3.1 指令基础 • 3.2 汇编语言 • 3.3 寻址方式 • 3.4 指令集
2
3.1 指令基础
• 3.1.1程序设计语言的层次结构 • 3.1.2指令周期和时序 • 3.1.3程序的执行过程
第3章 Cortex-M3 指令系统
硬件直接执行 数字电路层 Level 0 (门电路、电子线路)
3.1.1程序设计语言的层次结构
• •
计算机程序设计语言的层次结构如图3-1所示,分为机器 语言级、汇编语言级、高级语言级。 机器语言是与计算机硬件最为密切的一种语言,它由微程 序解释机器指令。这一级也是硬件级,是软件系统和硬件
系统之间的纽带。
动按照存储程序的要求进行工作,这称为程序控制。
图3-3计算机程序的执行过程
3.1.3 程序的执行过程
计算机执行程序是一条指令一条指令地执行。执行一条指令的过 程可分为取指、译码和执行等阶段。 首先,CPU进入取指阶段,通过控制总线(CB)发出读命令, 并在地址总线上(AB)给出所取指令的地址,从存储器中取出
的指令代码经过数据总线(DB)送到CPU的指令寄存器中,
然后对该指令译码,再转入执行阶段,在这期间,CPU执行指令 指定的操作。
3.2 ARM汇编语言
• 3.2.1 指令和指令格式 • 3.2.2 指令的可选后缀 • 3.2.3 指令的条件执行 • 3.2.4 指令分类
3.2.1指令和指令格式
图3-2 存储器访问时序
其中N-cycle比其它的周期长,这考虑了对DRAM的访问时间。
3.1.3 程序的执行过程
• •
CPU通过数据总线、地址总线、控制总线和存储器、外部 I/O设备联系起来。 计算机采取“存储程序与程序控制”的工作方式,即事先把 程序加载到计算机的存储器中,当启动运行后,计算机会自
3.1.1程序设计语言的层次结构
• 为了更好地进行程序设计,提高程序设计的效率,人们又提出
了高级语言程序设计的概念。如C、JAVA等,这类高级语言
对问题的描述十分接近人们的习惯,并且还具有较强的通用性 。这就给程序员带来极大的方便。
• 当然这类高级语言在执行前必须转换为汇编语言或其它中间语
言,最终转换为机器语言。通常有两种方法实现这个转换:编
期,简称C 周期。
3.1.2 指令周期和时序
ARM 指令在时序上是 S、N、I 和 C 周期的混合。各种类型的周
期都必须至少与 ARM 的时钟周期一样长。
对于典型的 SRAM 系统,所有类型的周期是最小长度,内存系统 也可以伸展它们,如典型的 DRAM 系统伸展如下: N 周期伸展为最小长度的两倍,这是因为 DRAM 在内存访问是 非顺序时要求更长的时间。
• 机器语言(Machine Language)
底层的计算机语言,对应机器指令
3.1.2 指令周期和时序
指令周期(Instruction Cycle):微处理器执行一条指令所需要 的时间。不同指令的指令周期不是等长的 。 如果要处理的数据在微处理器的寄存器中,则需要的时间短;
如果要处理的数据在存储器或I/O设备中则需要的时间长。
S 周期通常是最小长度,但有时也会被伸展成 N 周期的长度,如
从一个内存“行”的最后一个字移动到下一行的第一个字时。
I 周期和 C 周期总是最小长度。
3.1.2 指令周期和时序
例如:在8MHz的ARM微处理器中,一个 S 周期是125ns,而一
个 N 周期是 250ns。一个 8MHz的ARM微处理器可以与一个给 出125ns 的 N 周期的 RAM 系统相连接。 处理器的速率是 8MHz 只是简单的意味着如果你使任何类型的 周期,在长度上小于 125ns 则它不保证能够工作。
一般情况下,以访问存储器所需最长的时间来衡量指令周期。
3.1.2 指令周期和时序
举例:以ARM7微处理器为例,所有存储器的传输周期都可以被 归结到以下四种类型之一:
(1)不连续周期:ARM请求传输到某个地址或者从某个地址传输
,但这个地址跟前一个周期用到的地址没有联系,这种情况所需 的时间称为访问一个非顺序的内存位置的周期,简称为N 周期。 (2)连续周期:ARM请求传输到某个地址或者从某个地址传输, 此地址或者同上一个周期的地址相同或者是上一个周期的地址之 后一个字。这种情况所需的时间称为访问一个顺序的内存位置的 周期,简称为S 周期。