嵌入式微处理器第2章指令系统.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《嵌入式微处理器第2章指令系统.ppt》由会员分享,可在线阅读,更多相关《嵌入式微处理器第2章指令系统.ppt(73页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第 2章指令系统 计算机体系结构的分类ARM 处理器SHARC处理器1Von Neumann 体系结构p数据和指令都存放在存储器里。p计算机从存储器取指令。nCPU与存储器分离的是存储程序计算机。pCPU 寄存器主要用于程序计数器PC2Von Neumann 体系结构memoryCPUPCaddressdataIRADD r5,r1,r3200200ADD r5,r1,r33Harvard 体系结构 CPUPCdata memoryprogram memoryaddressdataaddressdata4von Neumann 与 Harvard体系结构pHarvard 不能够使用自修改编码p
2、Harvard 可以同时进行两个存取工作。p多数DSP使用Harvard体系结构。n更大的存储带宽。n带宽的可预见性更强5RISC 与 CISCpComplex instruction set computer(CISC):复杂指令集计算机n多种类型的指令n变长型指令n程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。n优点是控制简单,但计算器各部分的利用率不高,执行速度慢。pReduced instruction set computer(RISC):精简指令集计算机n种类比较少n管道化的指令n寻址方式也比复杂指令集少 n数据管道是在同一个应用中对象之间快速传送数据
3、的小型统一部件,比信息(message)传输的方式更块6指令集的特点p固定长度与可变长度p寻址模式p操作数的个数p操作数的类型p成功的体系结构应用广泛。n时钟速度可变;n不同的总线宽度;n不同的缓存规模7ARM 版本pARM结构被扩展成为多个版本。p本课将集中在ARM7pARM7是von Neumann结构的pARM9是Harvard结构的。8汇编语言p汇编语言指令与翻译成的机器语言指令之间基本是一一对应的关系p基本特点:n一个指令一行;n给内存单元提供名字的标记LABEL,由第一列开始。n指令通常在随后的列开始。n注释以分号开头,分号右边的内容将被汇编程序忽略注释以分号开头,分号右边的内容将
4、被汇编程序忽略9ARM 汇编语言p相当标准的汇编语言:LDR r0,r8;a commentlabelADD r4,r0,r110ARM 汇编语言例子label1ADR r4,cLDR r0,r4;a commentADR r4,dLDR r1,r4SUB r0,r0,r1;comment11r0r1r2r3r4r5r6r7r8r9r10r11r12r13r14r15(PC)CPSR310N Z C VARM编程器模型p16个通用寄存器,包括PCp一个状态寄存器Current.Program Status Register 12字节的排列顺序pARM允许32位长地址,但每个地址访问是一个字节而
5、不是一个字。byte 3 byte 2 byte 1 byte 0byte 0 byte 1 byte 2 byte 3位31位0低序高序word 4word 0word 4word 0位31位013ARM 数据类型p32位字长p分成四个8位的字节pARM地址可是32位长。p地址是以字节来引用的。p可在加电时设置高序或低序。14ARM 状态位p第个算术、逻辑或位移运算都会调整CPSR位:nN(negative),Z(zero),C(carry),V(overflow).p例如:n-1=0 xffffffff n1 =0 x1 n-1+1=0:NZCV=0110.n0 1 =-1:0 x0 0
6、x1=0 xffffffff NZCV=1000n231-1+1=-231:0 x80000000+0fffffff 0 x7fffffff+0 x1=0 x80000000 NZCV=1001.15ARM 数据指令p基本形式:ADD r0,r1,r2n把 r1+r2的值存储在r0中p立即操作数:ADD r0,r1,#2n将 r1+2的值存储在r0中。16ARM数据指令pADD,ADC:add(w.carry)pSUB,SBC:subtract(w.carry)pRSB,RSC:reverse subtract(w.carry)pMUL,MLA:multiply(and accumulate)
7、pAND,ORR,EORpBIC:bit clearpLSL,LSR:logical shift left/rightpASL,ASR:arithmetic shift left/rightpROR:rotate rightpRRX:rotate right extended with C17数据操作的不同方法p逻辑位移:n补“0”p算术位移:n在右移时以符号位来充填。pRRX 执行的是33位的循环,包括来自在符号位上的CPSR的C位。18ARM 比较指令pCMP:比较pCMN:负数比较pTST:按位测试(与)nTST R0,#0X0f;判断R0的低4位是否为0pTEQ:按位求反测试(异或)n
8、TEQ R0,R1;比R0,R1是否相等p这些操作的结果只是去更新CPSR中的NZCV位。19ARM 数据传送指令pMOV,MVN:数据非传送 MOV r0,r1;将将r1的内容放入的内容放入r0 MVN R1,#0 xFF;R=0 xFFFFF0020ARM 存储器访问指令pLDR,LDRH,LDRB:load(half-word,byte)pSTR,STRH,STRB:store(half-word,byte)p寻址模式:n寄存器间接寻址:LDR r0,r1n有第二个寄存器:LDR r0,r1,-r2n带常数的:LDR r0,r1,#4p存储器指令不直接访问主存储器地址。n通常由PC计算后
9、给出一个地址。nADR伪操作产生一个要求计算地址的指令:ADR r1,FOO21例:C 的赋值语句pC:x=(a+b)-c;p汇编语言:ADR r4,a;get address for aLDR r0,r4;get value of aADR r4,b;get address for b,reusing r4LDR r1,r4;get value of bADD r3,r0,r1;compute a+bADR r4,c;get address for cLDR r2,r4;get value of cSUB r3,r3,r2;complete computation of xADR r4,x;
10、get address for xSTR r3r4;store value of x22例:C 的赋值语句pC:y=a*(b+c);p汇编语言:ADR r4,b;get address for bLDR r0,r4;get value of bADR r4,c;get address for cLDR r1,r4;get value of cADD r2,r0,r1;compute partial resultADR r4,a;get address for aLDR r0,r4;get value of aMUL r2,r2,r0;compute final value for yADR r
11、4,y;get address for ySTR r2,r4;store y23例:C 的赋值语句pC:z=(a R1 SUB R0,R1,R2;R1-R2-R0立即寻址立即寻址 SUBS R0,R0,#1 ;R0 1-R0 MOV R0,#0 xff00 ;0 xff00-R0寄存器间接寻址寄存器间接寻址 LDR R1,R2;将R2 中的数值作为地址,取出此地址中的数 据保存在R1 中。SWP R1,R1,R2;将如中的数值作为地址,取出此地址中的 数值与R1 中的值交换25多种寻址方式p基址加偏移量寻址(基址寻址)LDR r0,r1,#16n将存储在地址r1+16单元的值装入r0p自动变址
12、寻址:LDR r0,r1,#16!n将16与r1的值相加,然后把这个值作为地址。p后变址寻址LDR r0,r1,#16n将r1给定地址的存储单元中的值装入r0,然后把r1的值加16并将新值赋给r1.26ARM 控制流pB指令(Branch operation)B#100n在PC的值上加400n任何分支指令都可有条件地执行。是ARM中改变控制流的基本机制。分支的目的地址称为分支目标。分支是与程序计数器相关的,分支指明了从当前程序计数器到分支目标的偏移量,这个偏移量的单位是字。由于ARM是对字节定址的,所以要把偏移量乘4。2728例:if 语句在ARM中的实现pC:if(a b)x=5;y=c+d
13、;else x=c-d;p汇编:;compute and test conditionADR r4,a;get address for aLDR r0,r4;get value of aADR r4,b;get address for bLDR r1,r4;get value for bCMP r0,r1;compare a=b,branch to false block;true blockMOV r0,#5;generate value for xADR r4,x;get address for xSTR r0,r4;store xADR r4,c;get address for c29I
14、f 语句LDR r0,r4;get value of cADR r4,d;get address for dLDR r1,r4;get value of dADD r0,r0,r1;compute yADR r4,y;get address for ySTR r0,r4;store yB after;branch around false block;false blockfblock ADR r4,c;get address for cLDR r0,r4;get value of cADR r4,d;get address for dLDR r1,r4;get value for dSUB
15、r0,r0,r1;compute c-dADR r4,x;get address for xSTR r0,r4;store value of xafter.30例:条件执行p使用判断来控制执行那条指令:;true block,条件代码由条件代码由CMP更新更新;no need for“BGE fblock”and“B after”MOVLT r0,#5;generate value for xADRLT r4,x;get address for xSTRLT r0,r4;store xADRLT r4,c;get address for cLDRLT r0,r4;get value of cA
16、DRLT r4,d;get address for dLDRLT r1,r4;get value of dADDLT r0,r0,r1;compute yADRLT r4,y;get address for ySTRLT r0,r4;store y31例:条件执行;false blockADRGE r4,c;get address for cLDRGE r0,r4;get value of cADRGE r4,d;get address for dLDRGE r1,r4;get value for dSUBGE r0,r0,r1;compute a-bADRGE r4,x;get addres
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 微处理器 指令系统
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内