ARM处理器9种基本寻址方式

合集下载

ARM9寻址方式及指令集介绍

ARM9寻址方式及指令集介绍

ARM9寻址方式及指令集介绍ARM9是一种32位精简指令集计算机(RISC)架构的微处理器。

在本文中,我们将介绍ARM9寻址方式和指令集的基本特点。

直接寻址是最简单的寻址方式,寻址单元根据操作码中给出的直接地址来访问内存。

例如,LDR指令将数据从内存中的特定地址加载到寄存器中。

直接寻址在寻址范围上有限制,因为地址是直接编码在指令中的。

间接寻址是通过一个保存数据的寄存器的地址来访问内存。

寄存器中的地址表示需要访问数据的内存地址。

例如,LDR指令可以使用R0寄存器中的地址来获取数据。

间接寻址使得程序可以动态地计算内存地址,提高了灵活性。

相对寻址是通过相对于当前指令地址的偏移量来访问内存。

偏移量在指令的操作码中给出,并且通常是一个8位或12位的整数。

相对寻址使得程序可以方便地访问位于当前指令之前或之后的内存位置。

基址寻址是通过一个基址寄存器和一个偏移量来访问内存,其中基址寄存器存储了起始地址,偏移量存储了与起始地址的相对位置。

例如,LDR指令可以使用R0寄存器作为基址寄存器,并使用R1作为偏移量。

基址寻址适用于访问数组或数据结构等连续的内存块。

核心寄存器寻址是指通过核心寄存器的内容来访问内存。

在ARM9架构中,核心寄存器包括程序计数器、堆栈指针和链接寄存器等。

这些寄存器具有特殊的寻址方式,允许对于特定的功能进行优化。

ARM9的指令集包括数据处理指令、分支和跳转指令、访存指令和特权指令等。

数据处理指令是最常用的指令类型,用于完成算术和逻辑操作。

例如,ADD指令将两个操作数相加,并将结果存储在目的寄存器中。

分支和跳转指令用于控制程序的流程。

例如,B指令可以根据条件跳转到指定的地址上。

访存指令用于读写内存和I/O端口。

例如,LDR指令可以将数据从内存加载到寄存器中,STR指令可以将寄存器中的数据存储到内存地址中。

特权指令用于进行特权级别的操作,例如,访问系统寄存器或控制外设。

这些指令一般只能由操作系统或系统软件使用。

ARM指令分类及寻址方式

ARM指令分类及寻址方式
立即数
〈immediate〉= immed_8循环右移(2 X rotate_imm)
8bit
最大为0xff
4bit(0—15)
范围:0—30
一个合法的立即数可能有多种编码方法。如0x3f0是一个合法的立即数,它可以 采用下面两种编码方法: Immed_8=0x3f,rotate_imm=0xe 或者 Immed_8=0xfc,rotate_imm=0xf ARM汇编编译器按照下面的规则来生成立即数的编码: 当立即数数值在0—0xff范围内时,令<immediate>=immed_8, rotate_imm=0 其它情况下,汇编编译器选择rotate_imm数值最小的编码方法
立即寻址,操作数不是存储在寄存器或存储器 中,而是包含在指令的操作码中,也就是说,数据 就包含在指令当中,取出指令也就取出了可以立即 程序存储 使用的操作数(这样的数称为立即数)。立即寻址指 MOV R0,#0xFF00 令举例如下: 从代码中获得数据
SUBS
MOV
R0,R0,#1 R0
;R0减1,结果放入R0,并且影响标志位 0xFF00 0x55
• 寻址方式分类——变址寻址
变址寻址就是将基址寄存器的内容与指令中给出的偏 移量相加,形成操作数的有效地址。变址寻址用于访问基 址附近的存储单元,常用于查表、数组操作、功能部件寄 0x4000000C 0xAA 存器访问等。变址寻址指令举例如下: LDR R2,[R3,#0x0C] ;读取R3+0x0C地址上的存储单元 将R3+0x0C作 R3 0x40000000 为地址装载数 ;的内容,放入R2,执行后R3 不变。 R2 0xAA 0x55 据 STR R1,[R0,#-4]! ;先R0=R0-4,然后把R1的值寄存 LDR

ARM——精选推荐

ARM——精选推荐

1、ARM处理器具有8种基本寻址方式:1.寄存器寻址;2.立即寻址;3.寄存器移位寻址;4.寄存器间接寻址;5.基址寻址;6.多寄存器寻址;7.堆栈寻址;8.相对寻址。

2、实时操作系统的特点:实时性、可靠性和灵活性。

从实时系统的应用特点来看实时操作系统可以分为两种:一般实时操作系统和嵌入式实时操作系统。

3、以下代码是初始化外部中断0,用它来唤醒掉电的LPC2114,请填空。

PINSEL0= =0x00000000;PINSEL1= =(PINSEL1&0xFFFFFFFC) | 0x01;//设置I/O口连接,P0.16设置为EINT0EXTMODE= =EXTMODE & 0x0E ; //设置EINT0为电平触发模式EXTPOLAR= =EXTPOLAR & 0x0E; //设置EINT0为低电平触发EXTWAKE= =EXTWAKE& 0x0E; //允许外部中断0唤醒掉电的CPUEXTINT= = 0x0F ; //清除外部中断标志EXTMODE = EXTMODE | 0x01; //设置EINT0为边沿触发模式EXTPOLAR = EXTPOLAR & 0x0E; //初始化EINT0为下降沿中断4、使用NOP伪指令、比较指令、条件跳转指令等完成一个软件延时子程序,延时长度由R0寄存器的数值控制?DelayNOP ;空操作NOPNOPSUBS R0,R0,#1 ;循环次数减一BNE Delay ;如果循环未结束,跳转Delay继续MOV PC,LR ;子程序返回5、初始化串口0程序。

设置为8位数据位,1位停止位,无奇偶校验,入口参数:bps 通讯波特率void UART0Init(uint32 bps){ uint16 Fdiv;PINSEL0=(PINSEL0&(~0x0F))|0x05; //不影响其它管脚连接,设置I/O连接到UART0U0LCR = 0x83; // DLAB = 1,可设置波特率Fdiv = (Fpclk/16) / bps; // 设置波特率U0DLM = Fdiv / 256;U0DLL = Fdiv % 256;U0LCR = 0x03;}6、设计完成主模式I2C的初始化V oid I2C_init(uint32 fi2c) //传入参数为I2C时钟频率{ if(fi2c > 400000)fi2c = 400000;//过滤传入参数,最高400K时钟频率PINSEL0=(PINSEL0 & 0xFFFFFF0F)|0x50;//设置引脚连接模块(PINSEL0)I2SCLH=(Fpclk/fi2c+1)/2; //设置通信波特率(I2SCLH、I2SCLL)I2SCLL=(Fpclk/fi2c)/2;I2CONCLR= 0x2C;I2CONSET=0x40; //使能主I2C(I2CONSET)VICIntSelect=0x00000000;VICV ectCntl0=0x29;VICV ectAddr0=(int)IRQ_I2C; //设置中断向量(VICxxx)VICIntEnable = 0x0200;}7、下列程序语句完成什么操作,并在空格里说明程序中语句的作用?答: ARM状态切换到Thumb状态。

指令集

指令集

1、寄存器寻址:
3
5、变址寻址: LDR R0,[R1,#4] 6、多寄存器寻址: LDMIA R1,{R0,R2,R5] ;R0<<[R1] ;R2<<[R1+4] ;R5<<[R1+8] 7、堆栈寻址: 8、块拷贝寻址: LDMIA R0!,{R2-R9} STMIA R1,{R2-R9} ;R0<<[r1+4]
3.1 ARM处理器寻址方式
寻址方式分类——多寄存器寻址
多寄存器寻址一次可传送几个寄存器值,允许 R6 0x04 0x?? 0x04 0x4000000C 一条指令传送16个寄存器的任何子集或所有寄存器。 R4 0x03 0x?? 0x03 0x40000008 多寄存器寻址指令举例如下: R3 0x02 0x?? 0x02 0x40000004 LDMIA R1!,{R2-R7,R12} ;将R1指向的单元中的数据读出到 R2 0x01 0x?? 0x01 0x40000000 ;R2~R7 、R12中 (R1自动加4) 0x40000000 STMIA R1 R0!,{R2-R7,R12} LDMIA
以寄存器R1 的内容作为操作数的有效地址,从而取得操作
数存入寄存器R0中,然后,R1 的内容自增4 个字节。 (后变址必回写)
;R0←[R1+R2]
LDR R0,[R1,R2]
将寄存器R1 的内容加上寄存器R2 的内容形成操作数的有
效地址,从而取得操作数存入寄存器R0 中。 (前变址不 回写)
块拷贝寻址可实现连续地址数据从存储器的某一
位置拷贝到另一位置。
例:
LDMIA R0,{R2-R6}; STMIA R1,{R2-R6}; 第一条指令从以R0的值为起始地址的存储单元中 取出5个字的数据,第二条指令将取出的数据存入 以R1的值为起始地址的存储单元中。 实际上是多寄存器寻址的组合。

嵌入式课后题答案

嵌入式课后题答案

嵌入式课后答案第一章1. 什么是嵌入式系统?请列举几个常见的嵌入式系统。

答:根据国际电气和电子工程师协会(IEEE)的定义,嵌入式系统是控制、监视或者辅助设备、机器和生产线运行的装置(Devices used to control, monitor, or assist the operation of equipment, machinery or plants)。

这主要是从产品的应用角度加以定义的,由此可以看出嵌入式系统是软件和硬件的综合体,可以涵盖机械等附属装置。

目前被我国科学家普遍认同的定义是:嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁减,对功能、可靠性、成本、体积、功耗要求严格的专用计算机系统。

常见的嵌入式系统:手机,DVD,路由器,核磁共振仪,全自动洗衣机。

2.嵌入式系统与通用计算机有哪些区别?答:(1) 以应用为中心;(2) 以计算机技术为基础(3) 软件和硬件可裁减(4) 对系统性能要求严格(5)软件的固件化(6)需要专用的开发工具3.嵌入式系统的发展分为哪几个阶段?答:第一阶段:无操作系统的嵌入算法阶段。

第二阶段:以嵌入式CPU为基础,以简单操作系统为核心的嵌入式系统。

第三阶段:以嵌入式操作系统为标志的嵌入式系统。

第四阶段:以基于Internet为标志的嵌入式系统。

4.请列举嵌入式系统的主要应用领域。

答:(1)工业控制领域(2)交通运输领域(3)消费电子产品(4)家电领域(5)通信领域(6)商业和金融领域(7)环境监测领域(8)医疗领域(9)建筑领域(10)军事国防领域(11)航天航空领域第二章1. 简述简单嵌入式系统与复杂嵌入式系统的主要区别。

答:简单嵌入式系统很早就已经存在,这类嵌入式系统因为软硬件复杂度都很低,一般不使用操作系统,例如常用的单片机系统。

对于复杂的嵌入式系统,它的开发模式发生了极大的改变。

一个复杂的嵌入式系统不仅硬件系统的开发比单片机复杂了许多,更重要的是在该系统中采用了嵌入式操作系统,其应用软件的开发转变为使用操作系统标准接口的计算机工程领域的应用软件开发。

第3章_ARM指令系统

第3章_ARM指令系统

23
3.2 ARM指令的 寻址方式
堆栈寻址和多寄存器寻址有很多相似之处,可以说 堆栈寻址是多寄存器寻址的特例,堆栈操作的指令
也有一一对应的多寄存器访问指令,如下表所示。
递增 满 先增 增值 后增 先减 减值 后减 LDMDA LDMFA STMIB STMFA STMIA LDMIA 空 满 递减 空 LDMIB LDMED
、后索引偏移和自动索引之分。
零偏移----实际上就是寄存器间接寻址 前索引偏移: LDR R2, [R3, #0X12] ; [(R3)+ #0X12]送R2,R3值不变 后索引偏移: STR R2, [R3], #0X12; R2送[R3],R3+0X12送R3 自动索引: LDR R2, [R3,#0X12]!; [(R3)+ #0X12]送R2,R3+0X12送R3
存储器 R2 0X00009000 0X00009000
0X20
R1
0X20
13
3.2 ARM指令的寻址方式
(6)基址变址寻址
基址变址寻址是指操作数的有效地址是由寄存器的内容加
上指令中给出的变址来确定的;
操作数所在存储单元的基地址由寄存器给出,这个寄存器 就叫做基址寄存器。 变址既可以以立即数形式给出,也可以由寄存器来提供。
4
3.2 ARM指令的寻址方式
所谓寻址方式就是人们根据操作数所在位置、数据 类型及其数据结构的不同,人为规定的根据指令中
给出的信息找出操作数有效地址的方式。
根据操作数的种类不同,ARM寻址方式可以分为
数据操作数寻址方式和地址操作数寻址方式两大类
,其中,数据操作数又有立即数、寄存器操作数、 存储器操作数和I/O操作数之分。 操作的对象不同,所用的寻址方式也不同。

嵌入式系统设计教程(第2版)简答题答案.pdf

嵌入式系统设计教程(第2版)简答题答案.pdf

第一章嵌入式系统概论1.嵌入式系统的定义是什么?答:以应用为中心,以计算机技术为基础,硬件、软件可裁剪,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

2.简述嵌入式系统的主要特点。

答:(1)功耗低、体积小、具有专用性(2)实时性强、系统内核小(3)创新性和高可靠性(4)高效率的设计(5)需要开发环境和调试工具3. 嵌入式系统一般可以应用到那些领域?答:嵌入式系统可以应用在工业控制、交通管理、信息家电、家庭智能管理系统、网络及电子商务、环境监测和机器人等方面。

4. 简述嵌入式系统的发展趋势答:(1)嵌入式应用的开发需要强大的开发工具和操作系统的支持(2)连网成为必然趋势(3)精简系统内核、算法,设备实现小尺寸、微功耗和低成本(4)提供精巧的多媒体人机界面(5)嵌入式软件开发走向标准化5.嵌入式系统基本架构主要包括那几部分?答:嵌入式系统的组织架构是由嵌入式处理器、存储器等硬件、嵌入式系统软件和嵌入式应用软件组成。

嵌入式系统一般由硬件系统和软件系统两大部分组成,其中,硬件系统包括嵌入式处理器、存储器、I/O系统和配置必要的外围接口部件;软件系统包括操作系统和应用软件。

6.嵌入式操作系统按实时性分为几种类型,各自特点是什么?答:(1)具有强实时特点的嵌入式操作系统。

(2)具有弱实时特点的嵌入式操作系统。

(3)没有实时特点的嵌入式操作系统。

第二章嵌入式系统的基础知识1.嵌入式系统体系结构有哪两种基本形式?各自特点是什么?答:冯诺依曼体系和哈佛体系。

冯诺依曼体系结构的特点之一是系统内部的数据与指令都存储在同一存储器中,其二是典型指令的执行周期包含取指令TF,指令译码TD,执行指令TE,存储TS四部分,目前应用的低端嵌入式处理器。

哈佛体系结构的特点是程序存储器与数据存储器分开,提供了较大的数据存储器带宽,适用于数据信号处理及高速数据处理的计算机。

2.在嵌入式系统中采用了哪些先进技术?答:(1)流水线技术(2)超标量执行(3)总线和总线桥3.简述基于ARM架构的总线形式答:ARM架构总线具有支持32位数据传输和32位寻址的能力,通过先进微控制器总线架构AMBA支持将CPU、存储器和外围都制作在同一个系统板中。

ARM基本寻址方式

ARM基本寻址方式

ARM基本寻址方式所谓寻址方式,指的是处理器根据指令中给出的内存地址信息,找出操作数的物理地址,实现对操作数的访问。

根据指令中给出的操作数的不同形式,ARM 指令系统支持的常见寻址方式有:立即寻址、寄存器寻址、寄存器移位寻址、寄存器间接寻址、基址变址寻址、多寄存器寻址、相对寻址及堆栈寻址。

1.立即寻址立即寻址又称为立即数寻址,是一种特殊的寻址方式,指令中直接给出操作数,只要取出指令也就取到了操作数,这个操作数称为立即数。

例如,MOV R0,#2 ;R0←2ADD R0,R0,#100 ;R0←R0+100以上两条指令中,以“#”为前缀的操作数即为立即数。

对于以十六进制数表示的立即数,要求在“#”后加上“0X'’或“&”;对于以二进制数表示的立即数,要求在“#”后加上“0b”;对于以十进制数表示的立即数,要求在“#”后加上“Od”或缺省。

2.寄存器寻址寄存器寻址指的是将寄存器中存放的数值作为操作数,这是各类微处理器常采用的一种执行效率较高的寻址方式。

例如,ADD R0,R1,R2 ;R0←R1+R2此指令中,两个输入操作数存放在寄存器R1和R2中,该指令将R1和R2中的数值相加,结果存放在寄存器R0中。

3.寄存器移位寻址寄存器移位寻址是ARM指令系统特有的寻址方式。

寻址的操作数由寄存器中的数值进行相应移位得到,移位的方式在指令中以助记符形式给出。

关于移位操作将在5.3.3节中详细介绍。

移位的位数可由立即数或寄存器寻址方式表示。

例如,ADD R0,R1,R2,LSL#1该指令表示将R2中的值向左移1位,然后与R1中的值相加,结果存人R0中。

MOV Ri,R0,LSR R2该指令表示将R0中的值向右移位,移位的次数由R2中的值决定,移位后的结果存人R1中。

4.寄存器间接寻址寄存器间接寻址指的是将寄存器中存放的数值作为操作数的有效地址,而操作数存放在内存中。

用于寄存器间接寻址的寄存器必须用“[]”括起来。

佛山科学技术学院-期末总复习-学长整理-终极版-嵌入式

佛山科学技术学院-期末总复习-学长整理-终极版-嵌入式
C.提高CPU效率D增加信息交换精度
在嵌入式系统中,对于中、低速设备时,最常用的数据传输方式是()
A.查询B.中断C.DMAD.I/0处理机
在输入输出控制方法中,采用()可以使得设备与主存间的数据块传输无须CPU的干预。
A.程序控制输入输出B.中断
CDMAD.总线控制
RS-232C串行通信总线的电气特性要求总线信号采用()
A、“天河一号”计算机系统B、联想T400笔记本计算机
C、联想S10上网本D、联想OPhone手机
软硬件协同设计方法与传统设计方法的最大不同之处在于( B )。
A、软硬件分开描述B、软硬件统一描述
C、协同测试D、协同验证
下面关于哈佛结构描述正确的是( A )。
A、程序存储空间与数据存储空间分离B、存储空间与IO空间分离
存储一个32位数0x2168465到2000H-2003H四个字节单元中,若 以大端模式存储,则2000H存储单元内容为(D)
A、 0x21B、0x68C、0x65D、0x02
寄存器R13除可以做通用寄存器,还可以做(C)
A、程序计数器B、链接寄存器
C、栈指针寄存器D、基址寄存器
寄存器R15除可做通用寄存器外,还可以做(A)
(C)不是常规意义上的嵌入式系统。
A.手机 B.MP3C.PC机D.数码相机
(A)完全把系统软件和硬件部分隔离开来,从而大大提高了系统 的可移植性。
A. 硬件抽象层B. 驱动映射层
C. 硬件交互层Biblioteka D. 中间层哪一种工作模式不属于ARM特权模式(A )。
A用户模式B管理模式 C软中断模式D/FIQ模式
寄存器R13除了可以做通用寄存器外,还可以做()。
A.程序计数器B.链接寄存器C.栈指针寄存器D.基址寄存器

《嵌入式系统基础教程》第09讲第5章ARM指令集特点寻址方式和指令

《嵌入式系统基础教程》第09讲第5章ARM指令集特点寻址方式和指令

标志
C=1,Z=0 C=0,Z=l
N=V N!=V Z=0,N=V Z=1,N!=V 任何 ARMv3之前
含义
无符号数大于 无符号数小于或等于 有符号数大于或等于 有符号数小于 有符号数大于 有符号数小于或等于 无条件执行(指令默认条件) 该指令从不执行
2008年6月28日
《嵌入式系统基础教程》第09讲第5 章ARM指令集特点寻址方式和指令
《嵌入式系统基础教程 》第09讲第5章ARM指 令集特点寻址方式和指

2023/5/9
《嵌入式系统基础教程》第09讲第5 章ARM指令集特点寻址方式和指令
第5章 ARM指令集和汇编语言程序
l 本章主要介绍以下内容:
l ARM指令集的基本特点 l 与Thumb指令集的区别 l 与x86处理器的区别 l ARM指令格式
l 举例:
l SUB R1,R1,R2 ;R1-R2→R1 l MOV PC,R0 ;PC←R0,程序跳转到指定地址 l LDR R0,[R1],-R2
;读取R1地址上的存储器单元内容并存入R0, ;且R1=R1-R2,后索引偏移 l AND R0,R5,R2 ;R2中存放的是第2操作数 ;该数据属于寄存器方式的第2操作数
运算指令能够访问存储器
2008年6月28日
《嵌入式系统基础教程》第09讲第5 章ARM指令集特点寻址方式和指令
ARM指令集的编码格式
l 参看ARM指令集编码格式PDF文件
2008年6月28日
《嵌入式系统基础教程》第09讲第5 章ARM指令集特点寻址方式和指令
ARM指令集的语法
l 一条典型的ARM指令语法如下所示:
寄存器寻址
l 操作数的值在寄存器中,指令中的地址码字段指 出的是寄存器编号,指令执行时直接取出寄存器 值来操作。寄存器寻址指令举例如下:

嵌入式系统简答题

嵌入式系统简答题

述嵌入式系统的定义。

嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

1-2.简述嵌入式系统的组成。

从体系结构上看,嵌入式系统主要由嵌入式处理器、支撑硬件和嵌入式软件组成。

其中嵌入式处理器通常是单片机或微控制器,支撑硬件主要包括存储介质、通信部件和显示部件等,嵌入式软件则包括支撑硬件的驱动程序、操作系统、支撑软件及应用中间件等。

嵌入式系统的组成部分是嵌入式系统硬件平台、嵌入式操作系统和嵌入式系统应用。

嵌入式系统硬件平台为各种嵌入式器件、设备(如ARM、Power PC、Xscale、MIPS 等);嵌入式操作系统是指在嵌入式Linux、u CLinux、Win CE 等。

ARM7与ARM9的区别1-3.ARM7处理器使用的是(ARMv4)指令集。

ARM7 内核采用冯·诺依曼体系结构,数据和指令使用同一条总线。

内核有一条3级流水线,执行ARMv4 指令集。

1-6.ARM9采用的是(5)级流水线设计。

存储器系统根据哈佛体系结构(程序和数据空间独立的体系结构)重新设计,区分数据总线和指令总线内存管理单元MMU定义:提供专门负责存储管理的部件。

作用:实现地址映射;对地址访问进行保护和限制ARM核有多少个寄存器?ARM处理器有37个32位长的寄存器;(1)30个通用寄存器;(2)6个状态寄存器(3)1个pc2、ARM处理器:ARM处理器是英国ARM(Advanced RISC Machines)公司设计的全球领先的16/32位RISC微处理器,ARM公司通过转让RISC微处理器,外围和系统芯片设计技术给合作伙伴,使他们能用这些技术来生产各具特色的芯片。

4、异常:当正常的程序执行流程发生暂时的停止时,称之为异常,例如处理一个外部的中断请求。

6、ARM微处理器内核是如何进行异常处理的?答:1)当异常产生时,ARM内核拷贝CPSR到SPSR_<mode>,设置适当的CPSR位:改变处理器状态进入ARM态,改变处理器模式进入相应的异常模式,设置中断禁止位禁止相应中断(如果需要);保存返回地址到LR_<mode>,设置PC为相应的异常向量。

ARM完整复习题及答案

ARM完整复习题及答案

嵌入式系统设计复习资料注意:因为参考答案填空老师没有给电子版,只是上课听的,难免会有听错,请大家指出错误。

一填空题1.ARM内核有四个功能模块,即___T___、___D___、___M___、____I__,可供生产厂商根据不同用户的要求来配置生产ARM芯片。

3.ARM芯片主要封装有___QFP___、___TQFP___、___PQFP___、___LQFP___、___BGA___、____LBGA__等形式。

4.ARM微处理器共有___37___个___32___位寄存器,其中____31__个为通用寄存器,____6__个为状态寄存器。

5.ARM体系结构可用两种方法存储字数据,具体为___大端存储格式__、___小端存储格式___。

6.协处理器主要控制:___片内MMU___、___指令和数据缓存(IDC)___、___写缓冲(Write Buffer)___。

在逻辑上,ARM可以扩展16 个协处理器。

7.ARM微处理器在较新的体系结构中支持两种指令集:___ARM指令___、___Thumb指令___,状态寄存器CPSR的 T 位反映了处理器运行不同指令的当前状态。

8.在CPSR中M[4:0]表示模式位,其中10111表示中止模式,在异常类型中,中止又分为预取址中止和数据中止。

9.ARM处理器有9种基本寻址方式,分别是:___寄存器寻址___、___立即寻址___、___寄存器移位寻址___、____寄存器间接寻址__、__变址寻址____、___多寄存器寻址___、___堆栈寻址___、___块复制寻址___、___相对寻址___。

10.ARM指令集可以分为6类,分别是:__跳转指令____、___数据处理指令___、___程序状态寄存器(PSR)传输指令___、___Load/Store 指令___、___协处理器指令___、___异常中断产生指令___。

ARM指令的条件码位于指令的最高4([31:28]),每种条件码可用 2 个字符来表示,可添加在指令助记符的后面和指令同时使用。

ARM9基础知识详解

ARM9基础知识详解

ARM9WinCEWinCE1WinCEWinCE1基础知识(必记)ARM9微处理器系列ARM9系列微处理器在高性能和低功耗特性方面提供最佳的性能。

具有以下特点:-5级整数流水线,指令执行效率更高。

-提供1.1MIPS/MHz的哈佛结构。

-支持32位ARM指令集和16位Thumb指令集。

-支持32位的高速AMBA总线接口。

-全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。

-MPU支持实时操作系统。

-支持数据Cache和指令Cache,具有更高的指令和数据处理能力。

大小都为16K。

ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。

ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型,以适用于不同的应用场合。

ARM920T =ARM9TDMI core plus cache and MMUARM微处理器结构1、RISC体系结构:RISC结构优先选取使用频最高的简单指令,避免复杂指令1、RISC体系结构应具有如下特点:-采用固定长度的指令格式,指令归整、简单、基本寻址方式有2~3种。

-使用单周期指令,便于流水线操作执行。

-大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/ 存储指令可以访问存储器,以提高指令的执行效率。

除此以外,ARM体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗:-所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。

-可用加载/存储指令批量传输数据,以提高数据的传输效率。

-可在一条数据处理指令中同时完成逻辑处理和移位处理。

-在循环处理中使用地址的自动增减来提高运行效率。

2、ARM微处理器的寄存器结构ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄存器包括:-31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。

ARM的8种寻址方式详细总结

ARM的8种寻址方式详细总结

二、ARM7的8种寻址方式1.3级流水线是ARM7TDMI的主要特征之一,而ARM7之后的处理器,比如ARM9的5级流水线等等,流水线越多,就越快。

他在执行程序时,要分3个步骤。

第一步是要把指令从程序存储器中取出来,取指是在处理器内核和程序存储器之间进行的,取指时间的长短和程序存储器的位置远近,和速度(用的静态还是动态,Cachae,Flash等)这些有关。

第二部就是把读到的内核的指令进行译码,也就是把二进制指令转变为电路的动作,打开哪些门电路,关闭哪些门电路。

第三步就是把门电路的动作送到制定的目标地址。

2.寻址方式寻址就是找与数据相关联的地址,ARM寻址复杂,操作数为2个或以上。

寄存器寻址:此种寻址就是寄存器内容就是操作数,寄存器本身就是操作数地址,在ARM 任何一个模式中都有R0—R14以及PC和CSSR可以寻址。

如下举例:注意在ARM指令中第二条,应为ARM的寄存器大部分都可以作为ADD,ADD R4,R4,R5中第一个R4就相当于存了51系列本来用ADD存结果。

立即寻址:操作数不是存储在寄存器或存储器中,而是包含在指令的操作码,取出指令就取出了操作码。

如图:注意:十进制立即数表达举例:#0005、#0376、#01234十六进制立即数表达举例:#0x0005、#0x0FFF、#0x072寄存器移位寻址:寄存器移位寻址是ARM指令独有的寻址方式,51系列单片机没有,在这种方式中,对一个寄存器的内容进行移位(左右移位),移位的位数必须写在表达式中。

如图:ARM指令集有5种移位操作:(1)LSL逻辑左移向左移位,左侧移出的位丢失,右端空出位补0。

注意最后一个左移出的位放在状态寄存器的C位CPSR【29】中。

这种相当于寄存器的乘法。

移出n位相当于乘以2的n次幂。

(2)LSR逻辑右移向右移位,右侧移出的位丢失,左端空出位补0。

注意最后一个右移出的位放在状态寄存器的C位CPSR【29】中。

这种相当于寄存器的除法。

ARM复习资料

ARM复习资料

第一章对嵌入式系统的定义:从技术的角度定义:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

从系统的角度定义:嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。

术语嵌入式反映了这些系统通常是更大系统中的一个完整的部分,称为嵌入的系统。

嵌入的系统中可以共存多个嵌入式系统嵌入式处理器可以分为以下几大类:▪嵌入式微处理器(EMPU);▪嵌入式微控制器(MCU);▪嵌入式DSP处理器(DSP);▪嵌入式片上系统(SOC)。

操作系统:多道批处理操作系统;实时操作系统;分时操作系统什么是嵌入式操作系统?嵌入式操作系统是操作系统的一种类型,是在传统操作系统的基础上上加入符合嵌入式系统要求的元素发展而来的使用嵌入式实时操作系统的必要性:▪嵌入式实时操作系统提高了系统的可靠性。

▪提高了开发效率,缩短了开发周期。

▪嵌入式实时操作系统充分发挥了32位CPU的多任务潜力常见的嵌入式实时操作系统:ulinux,windows CE,VxWorks,uc/os-II第二章ARM内核采用RISC体系结构,因此具有RISC的结构特点:▪具有大量的通用存储器;▪独特的装载/保存(load-store)结构;▪简单的寻址模式▪统一和固定长度的指令格式。

此外ARM体系结构还具有如下特性:1每条数据处理指令可同时包含算术逻辑单元(ALU)的运算和移位处理,实现ALU和移位器的最大利用;2使用地址自增和自减的寻址方式优化程序循环;3装载/保存指令对数据的批量传输,实现最大数据吞吐量;4大多数指令的条件执行,实现最快速的代码执行。

常用的ARM处理器系列:ARM7系列、ARM9系列、ARM10系列、ARM11系列、Intel的XScal 系列和MPCore系列ARM-TDMI解释:精简指令集处理器T:支持高密度16位的Thumb指令集;D:支持片上调试M:支持64位系统I:支持Embedded ICE硬件仿真从偶数地址开始的连续2个字节构成一个半字;以能被4整除的地址开始的连续4个字节构成一个字;ARM指令的长度刚好是一个字,Thumb指令的长度刚好是一个半字。

ARM指令寻址方式

ARM指令寻址方式

Before) :操作完成前地址增
After) :操作完成后地址减
DA(Decrement
DB(Decrement
Before) :操作完成前地址减
22
7)块拷贝寻址/多寄存器寻址
LDMIA R1,{R0,R2,R5} ; R0[R1]
; R2[R1+4] ; R5[R1+8] 该指令的后缀IA表示在每次执行完加载/存储 操作后,R1按字长度增加,指令可将连续存 储单元的值送到R0,R2,R5寄存器中
STMDA R9!, {R0,R1,R5}
STMDB R9!, {R0,R1,R5}
26
8)相对寻址
相对寻址: 以程序计数器PC的当前值为基地址,指令 中的地址标号作为偏移量,两者相加得操作数的有效 地址。以下程序段完成子程序的调用和返回,跳转指 令BL采用了相对寻址方式:
BL NEXT …… …… ;跳转到子程序NEXT处执行 ;返回到此 ;当前PC
通过阅读报刊,我们能增长见识,扩大自己
有许多书籍还能培养我们的道德情操,
High
Base, High 2 1 Low
SP
空递增堆栈
空递减堆栈
20
6)堆栈寻址

ARM
STMFD LDMFD
SP! {r0,r1,r3-r5} ; r0-r1,r3-r5入栈 SP! {r0,r1,r3-r5} ; r0-r1,r3-r5出栈
Thumb
PUSH POP
{r0,r1,r3-r5} ; r0-r1,r3-r5入栈 {r0,r1,r3-r5} ; r0-r1,r3-r5出栈
6
2)寄存器寻址
寄存器寻址:操作数在寄存器中,指令中的 地址码为寄存器编号,寄存器的内容即为操 作数。执行效率较高的寻址方式。例

ARM微信题目

ARM微信题目

ARM微信题目1、在cpu和物理内存之间进行地址转换时,将地址从虚拟(逻辑)地址空间映射到物理地址空间是哪项?(B)A、TCBB、MMUC、CACHED、DMA2、实时操作系统追求实时性,可确定行,可靠性,以下哪项不是他追求的?(D)A、实时占先式任务调度B、尽量少用虚拟内存技术C、中断禁止时间越短越好D、与任务切换时间无关3、ARM9处理器内部硬件体系结构是哪一种?(A)A、哈佛结构B、冯诺依曼结构C、ARM特有结构D、普林斯顿结构4、下面哪个不是用来开发调试ARM系统的?(D)A、ADSB、KEI ARM—MDKC、AXDD、万利仿真机5、在ADS集成开发环境中,编译源代码并下载到开发板的工具栏是哪个?(D)A、MakeB、Burn up to dateC、Debug settingD、Debug6、在嵌入式系统中,可以用以下哪个直接测量到电池电压(B)A、DACE、ADCF、PWMG、Timer7、以下哪个不是常规意义上的嵌入式系统?(C)A、手机B、MP3C、PC机D、数码相机8、S3C2410有几个外部中断源?(C)A、117B、56C、24D、89、UCOS-II操作系统不属于(A)A、非占先式实时操作系统B、占先式实时操作系统C、嵌入式实时操作系统D、RTOS10、在ARM9中,备份状态寄存器SPSR有几个?(B)A、3B、5C、6D、711、哪个不是RISC架构ARM处理器特点(D)A、体积小,低消耗B、大量使用寄存器C、寻址方式灵活简单D、采用变长度指令12、红外线遥控接收器的输出通常用开漏极输出,请问在电路连接时,需要做何种处理(B)A、接下位电阻B、接上位电阻C、接串电阻D、无特殊需要13、以下哪种属性一般不是嵌入式系统的?(B)A、嵌入式B、具备自我开发能力C、专用性D、可靠性高14、在ARM处理器中,通常用不同后缀表示功能扩展,常见的后缀有T,D,M,E,S,J 等,请问哪个代码可以执行DSP指令?(C)A、TB、DC、ED、IE、S15、现代电子设计包含了可测试设计,IC芯片测试的标准接口是?(C)A、DMAB、UARTC、JTAGD、USB16、精简指令集计算机的缩写是(RISC)17、在AXD环境中,点击那个菜单项可以查看寄存器内容(D)A、WatchB、ConsoleC、VariableD、Registers18、在AXD调试环境中加载好程序后,通常第一次按Go工具,程序的结果如何(B)A、一直运行,直到按stopB、停在main函数的第一条指令上C、停在指令中止异常程序处D、停在数据中止异常程序处19、在函数内定义一个只初始化一次的变量,要用以下哪个关键字说明(A)A、staticB、volatileC、constD、extern20、在ARM底层开发过程中,以下哪个不是必须的(C)A、JTAG线B、串口线C、网线D、交换机21、ARM处理器有7种运行模式,哪种模式寄存器与用户模式相同?(C)A、快速模式B、外部中断模式C、系统模式D、管理模式22、(intel I3处理器)不是嵌入式处理器。

嵌入式简答题

嵌入式简答题

五、简答题简要阐述ARM的异常处理过程?(6分)答:当任何一个异常发生并得到相应时,ARM内核自动完成一下动作:1、将下一条指令的地址存入相应的连接寄存器中,以便程序正确返回。

(2分)2、将CPSR的值复制到SPSR中(1分)3、根据异常类型,强制设置CPSR的运行模式位(1分)4、设置PC使其从相应的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。

(2分)---------------------------------------------------------------------------1、嵌入式开发环境主要包括哪些组件?答:嵌入式系统开发需要交叉编译和在线调试的开发环境,主要包括●宿主机●目标机(评估电路板)●基于JTAG的ICD仿真器、或调试监控软件、或在线仿真器ICE●运行于宿主机的交叉编译器和链接器、以及开发工具链或软件开发环境●嵌入式操作系统2、ARM核中什么寄存器用于存储PC?R13通常用来存储什么?R14通常用来存储什么? 答:R15用于程序计数寄存器PC,R13通常用来做堆栈指针寄存器,R14通常用来做链接寄存器,保存函数调用的返回地址1、什么是大端格式,什么是小端格式,在RAM920T内核的系统中,常采用什么模式?答:在大端格式中,字数据的高字节存储在低地址单元中,而字数据的低字节则存放在高地址单元中。

在小端存储格式中,低地址单元中存放的是字数据的低字节,高地址单元存放的是字数据的高字节。

在基于ARM920T内核的嵌入式系统中,常用小端存储格式来储存字数据。

2、简述S3C2410的I/O端口的控制寄存器,数据寄存器、上拉电阻允许寄存器的作用?答:端口控制寄存器定义了每个管脚的功能如果端口被配置成了输出端口,可以向数据寄存器的相应位写数据。

如果端口被配置成了输入端口,可以从数据寄存器的相应位读出数据端口上拉寄存器控制了每个端口组的上拉电阻的允许/禁止。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地址的方式,ARM处理器有9 种基本寻址方式。

1.寄存器寻址
操作数的值在寄存器中,指令中的地址码字段给出的是寄存器编号,寄存器的内容是操作数,指令执行时直接取出寄存器值操作。

例如指令:
MOV R1,R2 ;R1←R2
SUB R0,R1,R2 ;R0←R1- R2
2.立即寻址
在立即寻址指令中数据就包含在指令当中,立即寻址指令的操作码字段后面的地址码部分就是操作数本身,取出指令也就取出了可以立即使用的操作数(也称为立即数)。

立即数要以“#”为前缀,表示16进制数值时以“0x”表示。

例如指令:
ADD R0,R0,#1 ;R0←R0 + 1
MOV R0,#0xff00 ;R0←0xff00
3.寄存器移位寻址
寄存器移位寻址是ARM指令集特有的寻址方式。

第2个寄存器操作数在与第1个操作数结合之前,先进行移位操作。

例如指令:
MOV R0,R2,LSL #3 ;R2的值左移3位,结果放入R0,即R0=R2 * 8 ANDS R1,R1,R2,LSL R3 ;R2的值左移R3位,然后和R1相与操作,结果放入R1
可采用的移位操作如下:
LSL:逻辑左移(Logical Shift Left),寄存器中字的低端空出的位补0。

LSR:逻辑右移(Logical Shift Right),寄存器中字的高端空出的位补0。

ASR:算术右移(Arithmetic Shift Right),移位过程中保持符号位不变,即如果源操作数为正数,则字的高端空出的位补0,否则补1
ROR:循环右移(Rotate Right),由字的低端移出的位填入字的高端空出的位
RRX:带扩展的循环右移(Rotate Right extended by 1 place),操作数右移一位,高端空出的位用原C 标志值填充。

各移位操作过程如图所示。

4.寄存器间接寻址
指令中的地址码给出的是一个通用寄存器编号,所需要的操作数保存在寄存器指定地址的存储单元中,即寄存器为操作数的地址指针,操作数存放在存储器中。

例如指令:
LDR R0,[R1] ;R0←[R1](将R1中的数值作为地址,取出此地址中的数据保存在R0中)
STR R0,[R1] ;[R1] ←R0
5.变址寻址
变址寻址是将基址寄存器的内容与指令中给出的偏移量相加,形成操作数的有效地址,变址寻址用于访问基址附近的存储单元,常用于查表,数组操作,功能部件寄存器访问等。

例如指令:
LDR R2,[R3,#4] ;R2←[R3 + 4](将R3中的数值加4作为地
址,取出此地址的数值保存在R2 中)
STR R1,[R0,#-2] ;[R0-2] ← R1(将R0中的数值减2 作为地址,把R1中的内容保存到此地址位置)
6.多寄存器寻址
采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送,这种寻址方式用一条指令最多可以完成16个寄存器值的传送。

例如指令:
LDMIA R0,{R1,R2,R3,R5} ;
7.堆栈寻址
堆栈是一种数据结构,堆栈是特定顺序进行存取的存储区,操作顺序分为“后进先出”和“先进后出”,堆栈寻址时隐含的,它使用一个专门的寄存器(堆栈指针)指向一块存储区域(堆栈),指针所指向的存储单元就是堆栈的栈顶。

存储器生长堆栈可分为两种:
向上生长:向高地址方向生长,称为递增堆栈(Ascending Stack)。

向下生长:向低地址方向生长,称为递减堆栈(Decending Stack)。

堆栈指针指向最后压入的堆栈的有效数据项,称为满堆栈(Full Stack);堆栈指针指向下一个要放入的空位置,称为空堆栈(Empty Stack)。

这样就有四种类型的堆栈工作方式,ARM微处理器支持这四种类型的堆栈工作方式,即:(LDM、STM : ; F、E 表示满堆栈、空堆栈 ; A、D 表示递增、递减堆栈)
满递增堆栈:堆栈指针指向最后压入的数据,且由低地址向高地址生成。

如指令LDMFA,STMFA 等。

满递减堆栈:堆栈指针指向最后压入的数据,且由高地址向低地址生成。

如指令LDMFD,STMFD 等。

空递增堆栈:堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址生成。

如指令LDMEA,STMEA 等。

空递减堆栈:堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址生成。

如指令LDMED,STMED 等。

8.块复制寻址
块复制寻址用于把一块从存储器的某一位置复制到另一位置,是一个多寄存器传送指令。

例如指令:
STMIA R0!,{R1-R7} ;将R1~R7的数据保存到存储器中,存储器指针在保存第一个值之后增加,增长方向为向上增长。

STMDA R0!,{R1-R7} ;将R1~R7的数据保存到存储器中,存储器指针在保存第一个值之后增加,增长方向为向下增长。

9.相对寻址
相对寻址是变址寻址的一种变通,由程序计数器PC提供基准地址,指令中的地址码字段作为偏移量,两者相加后得到的地址即为操作数的有效地址。

例如指令:
BL ROUTE1 ;调用到ROUTE1子程序
BEQ LOOP ;条件跳转到LOOP标号处
LOOP MOV R2,#2。

相关文档
最新文档