arm体系结构及其嵌入式处理器.docx_第1页
arm体系结构及其嵌入式处理器.docx_第2页
arm体系结构及其嵌入式处理器.docx_第3页
arm体系结构及其嵌入式处理器.docx_第4页
arm体系结构及其嵌入式处理器.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

二进制 ALU 算术逻辑运算单元 机器数指令 程序及其首地址 PC计算机 :主机(CPU(运算器、控制器) 存储器) IO(输入 输出设备)RISC :精简指令系统计算机CISC :复杂指令系统计算机指令流水线 cache 协处理器 片上系统SOC(System On Chip )总线 :连接各部件信息传输的线并行 串行系统总线 :计算机芯片之间的连接总线数据总线DB :传输数据的通路地址总线AB :传送有指令或PC经地址寄存器送出的地址信息控制总线CB :传送读写等控制信息系统总线结构 :同步通信 :发送和接受使用同一时钟冯.依曼 :数据和指令放在一起 arm7哈弗结构 : 数据和指令分开 arm9 arm10运行模式 : 用户模式 : USR 特权模式 : FIQIRQSVCABTSYSUND 快速 终端管理中断 系统 未定义工作状态 : ARM 32位 默认Thumb 16位由程序状态寄存器SPSR的D5位决定寄存器 :R0 R15 : 基寄存器R13 : SP R14:LR子程序返回地址 R15:PCCPSR(Current Process Statue Register)存储方式:小端模式 : 低字节在底端大端模式 :低字节在高端堆栈 : FILO ( First in Last Out ) 地址递增方式 :初始化时指针处于较低端,存入数据时,指针向高地址位移动 地址递减方式 :初始化时指针处于较高端,存入数据时,指针向低地址位移动 满递增堆栈 :SP指向最后压入的数据,由低向高地址生成 满递减堆栈 :SP指向最后压入的数据,有高向低地址生成 空递增堆栈 :SP指向下一个要放入的数据的空位置,由低向高地址生成 空递减堆栈 :SP指向下一个要放入的数据的空位置,有高向低地址生成指令系统 : 立即寻址 : mov r0, #0x01 寄存器寻址 : mov r0, r1 寄存器简址 : ldr r0 , r1 变址寻址 : ldr r0, r1,#4/r0 (r1 + 4 )指令格式 :条件码 :EQZ = 1 相等NEZ = 0CSC = 1 无符号 大于等于CCc = 0 无符号 小于MIN = 1 负数PLN = 0 正数或0VSV = 1 溢出VCV = 0HIC = 0 且 Z = 0 无符号 大于LSC = 0 或 z = 1 无符号 大于等于GEN = V 带符号 大于等于GTZ =0 且 N = V 带符号 大于LE 带符号 小于等于AL 无条件执行LTN V 带符号小于逻辑左移 :LSL : mov R0, R1 , LSL #2 R0 = R1 2算术左移 : 和LSL效果相同循环右移 : RORMov r0, r1Movn r0, r1/取反Add r0, r1,Adc rd, rn, /带进位加法Rd = rn + oper2 + CPSR中C标志位(进位标志)Subr0, r1, Sbc rd, rn, /带进位减法Rd = rn + - CPSR中C标志位的值(进位标志)RSC rd, rn, /带进位的逆向减法RSC rd, rn , Mul rd, rm, rs/32位乘法Mla rd, rm , rs, rn/32位乘加Rd = rm * rs + rnSmull rdl0, rdhi, rm, rs/64位乘法Rdl0 = rm * rs 保存结果的低32位Rdhi = rm * rs 保存结果的高32位Smlaardlo, rdhi, rm , rs/64位乘加Rdl0 += rm * rs 的低32位Rdhi += rm * rs 的高32位AND r0, r1, r2/r0 = r1 & r2ORr0, r1, r2/ro = r1 | r2EORr0, r1,r2/异或Bic rd, rn, /位清除Rd = rn 清除 oper2中为1的位如 :Bic r0, r0, #b1011/清除r0的0 1 3位Tst rd, /与测试如:tst r1, #b101测试r1中0 2位是否为1Teq rd, /异或测试 一般用于判断相等Cmp rd, CPSR标志位的更新 = rd - CMN rd, /CPSR标志位的更新 = - rdBl addr/保存返回地址LRBaddr/不保存放回地址Bx Rn/跳转并切换处理器状态dengsl 暂时还不懂Blxrm/跳转并切换处理器状态Mrsrd, cpsr/spsrMsrcpsr/spsr, rdLdr rd, addr /读内存数据Ldr r0, r1, r2r0 r1 + r2Ldr r0, r1, #8r0 r1 + 8Ldr r0, r1, #8r0 r1;r1 += 8Ldr r0, r1, r2!R1 r1 + r2; r0 r1Ldrb r0, r1, #8 r0 r1 + 8 将R0的高24位清零Ldrh r0, r1, #8r0 r1 + 8 将R0的高16位清零Str r0, r1, #8Strb r0, r1, #8Strh r0, r1, #8LDMmode RD!, reglist /加载 Rd为基地址寄存器!可选 : 执行后,Rd保存最后的地址如 : LDMIAR0!, R1 R2, R4R0 开始为0x00000018执行后 :R1 = 0x04R2 = 0x05R4 = 0x06R0 = 0x00000024STMmode Rd!, reglist/写入Mode :IA : 先传数据,后Rd + 4IB : Rd + 4, 后传数据DA : 先传数据,后Rd -4DB : Rd 4, 后传数据LDMmode Rd!, reglist /pop出栈STMmode Rd!, reglist /push 入栈Mode :FA : 递增满堆栈FD :递减满堆栈EA : 递增空堆栈ED : 递减空堆栈SWP Rd, Rm, Rn /数据交换SWPBRd, Rm, Rn 伪指令 :段 :AREA sectionName, art, attr,段名 CODE DATAREADONLY WRITEONLYREADWRITEALIGNCOMMON如 :AREAInit, CODE, READONLY代码.GBLAA(数字) value = 0/全局变量 数字GBLLl(逻辑) value = false/全局变量 逻辑变量GBLSs(字符串) value = “”/全局变量 字符串LCLAa/局部变量 数字LCLLlLCLSsASETA0x01/赋值LSETLtrueSSETS“string”定义寄存器列表 :Rname RLIST, reglist 如 : MyRegList RLIST, R0 R5, R8 , R10 数据块定义 :lableDCBexper如 : data1 DCB0x01, 0x02, 0x03.Data2 DCW1,2,3./半字节数据块Data3 DCD4,5,6./连续字单元FData1DCFDIE115, -5e7./双精度FData2DCFS2E5, -5E-7./单精度Data5 DCQ100,101,102/8字节为单位的存储单元DataSpaceSPACE100/分配100字节的连续单元 value = 0IFELSEENDIFWHILEWENDALIGN 表达式, ,偏移量 /对齐方式 ? dengsl如 : AREA Init, CODE, READONLY, ALIGN= 3/23 = 8字节对齐CODE = 16 CODE = 32Get 文件名/相当于c中#include “filename”ENTRY/程序入口END/结束LableEQU/*expr/宏定义 相当于c中#define lable experTmpregRNR0/寄存器别名EXPORT lable/导出IMPORT main/导入MACRO/宏$lableMarcroName$param1,$param2,程序段MEDNMEXIT/从宏中跳出来宏指令 :Adr r4, start/将start的地址放到r4中, 255字节内Adr r4, start + 60000/64kbLdr/全范围语句语法 + - * /X mod Y (余数)X ROL Y/X循环左移Y位 ROR/右X SH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论