嵌入式系统(第3-2章_ARM寻址方式与指系统_)(精品).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)
《嵌入式系统(第3-2章_ARM寻址方式与指系统_)(精品).ppt》由会员分享,可在线阅读,更多相关《嵌入式系统(第3-2章_ARM寻址方式与指系统_)(精品).ppt(99页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学机器指令、伪指令和宏指令机器指令、伪指令和宏指令机器指令:机器指令:能被处理器直接执行,而伪指能被处理器直接执行,而伪指令宏和宏指令不能。令宏和宏指令不能。机器指令包括机器指令包括ARM指令集和指令集和Thumb指令集指令集;伪指令:伪指令:在源程序汇编期间,由汇编编译在源程序汇编期间,由汇编编
2、译器处理。其作用是为汇编程序完成准备工器处理。其作用是为汇编程序完成准备工作;作;宏指令:宏指令:在程序中用于调用宏,宏是一段在程序中用于调用宏,宏是一段独立的程序代码;在程序汇编时,对宏调独立的程序代码;在程序汇编时,对宏调用进行展开,用宏体代替宏指令。用进行展开,用宏体代替宏指令。计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学ARM指令
3、的编码格式指令的编码格式实际指令语法格式为:实际指令语法格式为:ADDEQSR0,R1,R2;该指令的编码格式为:该指令的编码格式为:3128272524212019161512110condopcodeSRnRdop200000010100100010000000000000010计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学ARM指令的
4、助记符指令的助记符ARM指令在汇编程序中用助记符表示,一般指令在汇编程序中用助记符表示,一般ARM指令的助记符格式为:指令的助记符格式为:S,其中:其中:操作码,如操作码,如ADD表示算术加操作指令;表示算术加操作指令;决定指令执行的条件域;决定指令执行的条件域;S决定指令执行是否影响决定指令执行是否影响CPSR寄存器的值;寄存器的值;目的寄存器;目的寄存器;第一个操作数,为寄存器;第一个操作数,为寄存器;第二个操作数。第二个操作数。例如,指令例如,指令ADDEQSR1,R2,5 计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUT
5、ER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学条件域条件域几乎所有的几乎所有的ARM指令都可以根据当前程序状态寄指令都可以根据当前程序状态寄存器存器CPSR中标志位的值,有条件地执行。中标志位的值,有条件地执行。ARM指令的条件域指令的条件域有有16种类型。种类型。condCPSR中标志位中标志位含含 义义EQZ置位置位相等相等NEZ清零清零不相等不相等CSC置位置位无符号数大于或等于无符号数大于或等于CCC清零清零无符号数小于无符号数小于MIN置位置
6、位负数负数PLN清零清零正数或零正数或零VSV置位置位溢出溢出VCV清零清零未溢出未溢出HIC置位置位Z清零清零无符号数大于无符号数大于LSC清零清零Z置位置位无符号数小于或等于无符号数小于或等于GEN等于等于V带符号数大于或等于带符号数大于或等于LTN不等于不等于V带符号数小于带符号数小于GTZ清零且(清零且(N等于等于V)带符号数大于带符号数大于LEZ置位或(置位或(N不等于不等于V)带符号数小于或等于带符号数小于或等于AL忽略忽略无条件执行无条件执行0000000100100011010001010110011110001001101010111100110111101111依版本不同,
7、定义不同依版本不同,定义不同计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学寻址方式寻址方式9种:种:立即数寻址立即数寻址寄存器寻址寄存器寻址寄存器移位寻址寄存器移位寻址寄存器间接寻址寄存器间接寻址基址变址寻址基址变址寻址相对寻址相对寻址多寄存器寻址多寄存器寻址块拷贝寻址块拷贝寻址堆栈寻址堆栈寻址计算机科学与技术学院计算机科学与技术学院COM
8、PUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学立即数寻址立即数寻址在立即数寻址中,操作数本身直接在指令中给出,在立即数寻址中,操作数本身直接在指令中给出,取出指令也就获得了操作数,这个操作数也称为取出指令也就获得了操作数,这个操作数也称为立即数。立即数。#后接后接0 x或或&表示十六进制数,表示十六进制数,0b表示二进制数,表示二进制数,0d或缺省表示十进制数。或缺省表示十进制数。例例
9、:ADDR0,R1,5;R0=R15MOVR0,0 x55;R0=0 x55其中:操作数其中:操作数5,0 x55就是立即数,立即数在指令就是立即数,立即数在指令中要以中要以“”为前缀,后面跟实际数值。为前缀,后面跟实际数值。计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学寄存器寻址寄存器寻址在寄存器寻址方式下,寄存器的值即为操作数。在寄存器
10、寻址方式下,寄存器的值即为操作数。ARM指令普遍采用此种寻址方式。指令普遍采用此种寻址方式。例:例:ADDR0,R1,R2;R0=R1R2MOVR0,R1;R0=R1计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学寄存器移位寻址寄存器移位寻址寄存器移位寻址的操作数由寄存器的数值做相应寄存器移位寻址的操作数由寄存器的数值做相应移位而得到。移位而
11、得到。移位的方式在指令中以助记符的形式给出,而移移位的方式在指令中以助记符的形式给出,而移位的位数可用立即数或寄存器寻址方式表示。位的位数可用立即数或寄存器寻址方式表示。例:例:ADDR0,R1,R2,ROR5;R0=R1R2循环右移循环右移5位位MOVR0,R1,LSLR3;R0=R1逻辑左移逻辑左移R3位位移位操作在移位操作在ARM指令集中不作为单独的指令使用指令集中不作为单独的指令使用,ARM指令集共有指令集共有5种位移操作种位移操作。计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHN
12、OLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学ARM指令集的指令集的5种位移操作种位移操作LSL逻辑左移逻辑左移:Rx,LSLLSR逻辑右移逻辑右移:Rx,LSRASR算术右移算术右移:Rx,ASRROR循环右移循环右移:Rx,RORRRX带扩展的循环右移带扩展的循环右移:Rx,RRX计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TE
13、CHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学寄存器间接寻址寄存器间接寻址寄存器中的值为操作数的物理地址寄存器中的值为操作数的物理地址,而实际的操作而实际的操作数存放在存储器中数存放在存储器中。例:例:STRR0,R1;R1=R0LDRR0,R1;R0=R1计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大
14、学吉林大学基址变址寻址基址变址寻址将寄存器(称为基址寄存器)的值与指令中给出将寄存器(称为基址寄存器)的值与指令中给出的偏移地址量相加,所得结果作为操作数的物理的偏移地址量相加,所得结果作为操作数的物理地址。地址。例:例:LDRR0,R1,5;R0=R1+5LDRR0,R1,R2;R0=R1+R2计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大
15、学相对寻址相对寻址相对寻址同基址变址寻址相似,区别只是将程序相对寻址同基址变址寻址相似,区别只是将程序计数器计数器PC作为基址寄存器,指令中的标记作为地作为基址寄存器,指令中的标记作为地址偏移量。址偏移量。例:例:BEQprocess1process1计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学多寄存器寻址多寄存器寻址在多寄存器寻址方式中
16、,一条指令可实现一组寄在多寄存器寻址方式中,一条指令可实现一组寄存器值的传送。存器值的传送。连续的寄存器间用连续的寄存器间用“”连接,否则用连接,否则用“,”分分隔。隔。例例:LDMIAR0,R1-R5;R1=R0,R2=R0+4,R3=R0+8;R4=R0+12,R5=R0+16指令中指令中IA表示在执行完一次表示在执行完一次Load操作后,操作后,R0自增自增4。该指令将以。该指令将以R0为起始地址的为起始地址的5个字数据分别装个字数据分别装入入R1,R2,R3,R4,R5中。中。计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMP
17、UTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学块拷贝寻址块拷贝寻址块拷贝寻址可实现连续地址数据从存储器的某一块拷贝寻址可实现连续地址数据从存储器的某一位置拷贝到另一位置。位置拷贝到另一位置。例例:LDMIAR0,R1-R5;STMIAR1,R1-R5;第一条指令从以第一条指令从以R0的值为起始地址的存储单元中的值为起始地址的存储单元中取出取出5个字的数据,第二条指令将取出的数据存入个字的数据,第二条指令将取出的数据存入以以R1的值为起始地址的存储单
18、元中。的值为起始地址的存储单元中。实际上是多寄存器寻址的组合。实际上是多寄存器寻址的组合。计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学堆栈寻址堆栈寻址堆栈寻址用于数据栈与寄存器组之间批量数据堆栈寻址用于数据栈与寄存器组之间批量数据传输。传输。当当数据写入和读出内存的顺序不同时,使用堆数据写入和读出内存的顺序不同时,使用堆栈寻址可以很好的解
19、决这问题。栈寻址可以很好的解决这问题。例:例:STMFDR13!,R0,R1,R2,R3,R4;LDMFDR13!,R0,R1,R2,R3,R4第一条指令,将第一条指令,将R0R4中的数据压入堆栈,中的数据压入堆栈,R13为堆栈指针;为堆栈指针;第二条指令,将数据出栈,恢复第二条指令,将数据出栈,恢复R0R4原先的原先的值。值。计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND T
20、ECHNOLOGY吉林大学吉林大学ARM指令集指令集6 6种类型(种类型(5353种主要助记符)种主要助记符):数据处理指令(数据处理指令(2222种主要助记符)种主要助记符)跳转指令(跳转指令(4 4种主要助记符)种主要助记符)Load/Store指令(指令(1616种主要助记符)种主要助记符)程序状态寄存器指令(程序状态寄存器指令(2 2种主要助记符)种主要助记符)协处理器指令(协处理器指令(5 5种主要助记符)种主要助记符)软件中断指令软件中断指令(2 2种主要助记符)种主要助记符)计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCO
21、MPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学数据处理指令数据处理指令11MOV数据传送指令数据传送指令格式:格式:MOVS,;功能:功能:Rdop1op1可以是寄存器、被移位的寄存器或立即数。可以是寄存器、被移位的寄存器或立即数。例如:例如:MOVR0,5;R0=5MOVR0,R1;R0=R1MOVR0,R1,LSL5;R0=R1左移左移5位位计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOG
22、YCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学数据处理指令数据处理指令22MVN数据取反传送指令数据取反传送指令格式:格式:MVNS,;功能:功能:将将op1表示的值传送到目的寄存器表示的值传送到目的寄存器Rd中,中,但该值在传送前被按位取反,即但该值在传送前被按位取反,即Rd=!op1;op1可以是寄存器、被移位的寄存器或立即数。可以是寄存器、被移位的寄存器或立即数。例如:例如:MVNR0,0;R0=-1计算机科学与技术学院计算机科学与
23、技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学数据处理指令数据处理指令33ADD加法指令加法指令格式:格式:ADDS,;功能:功能:RdRn+op2op2可以是寄存器,被移位的寄存器或立即数。可以是寄存器,被移位的寄存器或立即数。例如:例如:ADDR0,R1,5;R0=R1+5ADDR0,R1,R2;R0=R1+R2ADDR0,R1,R2,LSL5;R0=R1+R2左移左
24、移5位位计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学数据处理指令数据处理指令44ADC带进位加法指令带进位加法指令格式:格式:ADCS,;功能:功能:RdRn+op2+carryop2可以是寄存器、被移位的寄存器或立即数;可以是寄存器、被移位的寄存器或立即数;carry为进位标志值。该指令用于实现超过为进位标志值。该指令用于实现超过32位
25、的位的数的加法。数的加法。例如:例如:第一个第一个64位操作数存放在寄存器位操作数存放在寄存器R2,R3中;中;第二个第二个64位操作数存放在寄存器位操作数存放在寄存器R4,R5中;中;64位结果存放在位结果存放在R0,R1中。中。64位的加法可由以下语句实现:位的加法可由以下语句实现:ADDSR0,R2,R4;低低32位相加,位相加,S表示结表示结果影响条件标志位的值果影响条件标志位的值ADCR1,R3,R5;高高32位相加位相加计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 _ARM 寻址 方式 精品
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内