- 1、本文档共127页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 ARM寻址方式与指令系统 ARM编程模型 ARM指令格式和寻址方式 ARM指令集 Thumb指令集 机器指令、伪指令和宏指令 机器指令:能被处理器直接执行,而伪指令宏和宏指令不能。机器指令包括ARM指令集和Thumb指令集 ; 伪指令:在源程序汇编期间,由汇编编译器处理。其作用是为汇编程序完成准备工作; 宏指令:在程序中用于调用宏,宏是一段独立的程序代码;在程序汇编时,对宏调用进行展开,用宏体代替宏指令。 ARM处理器模式 ARM微处理器支持7种工作模式:用户模式、系统模式、快速中断模式、外部中断模式、管理模式、中止模式、未定义指令模式。 除用户模式之外的其余6种称为非用户模式,或特权模式。 在特权模式中,除系统模式之外的其余5种称为异常模式。 处理器的各种工作模式由当前程序状态寄存器CPSR的低5位M[4:0]决定。 工作模式切换: (1)发生异常,处理器自动改变CPSR中M[4:0]的值,进入相应的工作模式; (2)处理器处于特权模式时,用指令向CPSR的M[4:0]字段写入特定的值,进入相应的工作模式。 用户模式时,不能改变工作模式,除非发生异常。 ARM处理器7种工作模式 特权模式 异常模式 用户和系统模式 处理器的工作状态 从编程的角度讲,ARM处理器工作在两种状态:ARM状态或Thumb状态。 (1)ARM状态:处理器执行32位的ARM指令集时,工作在这种状态。 (2)Thumb状态:处理器执行16位的thumb指令集时,工作在这种状态。 状态切换:通过跳转指令实现。 ARM的寄存器组织 37个寄存器:31个通用寄存器,包括程序计数器PC; 6个状态寄存器。 寄存器均为32位,分成7组,各工作模式拥有自己的寄存器组,只能访问自己的寄存器组。 有些寄存器是重叠的,有些是工作模式特有的。 在不同的工作模式和处理器状态下,程序员可以访问的寄存器不尽相同。 ARM状态各模式下的寄存器 ARM寄存器分类 ARM状态各模式下可以访问的寄存器 一般的通用寄存器 R0~R7通用寄存器 R8~R14通用寄存器 R8~R12的两个分组 R13、R14的6个分组 堆栈指针寄存器R13(SP) 链接寄存器R14(LR) R14(LR)的作用 作用:保存返回地址 例如: 1.程序A执行过程中调用程序B; 2.程序跳转至标号Lable,执行程序B。同时硬件将“BL Lable”指令的下一条指令所在地址存入R14(LR); 3.程序B执行最后,将R14寄存器的内容放入PC,返回程序A; 程序计数器R15(PC) 程序状态寄存器CPSR Thumb寄存器在ARM寄存器上的映射 状态寄存器 CPSR:当前程序状态寄存器,可以在任何工作模式下被访问。 SPSR:程序状态保存寄存器,只有在异常模式下,才能被访问;各异常模式拥有自己的SPSR。发生异常时,SPSR保存CPSR的值,格式同CPSR。 状态标志:5个,N符号位,Z零标志,C进位,V溢出位,Q DSP运算溢出位。 控制标志:4个,I中断允许,F快速中断允许,T状态选择,M[4:0] 处理器工作模式 条件标志位 控制位 异常中断 异常中断:处理器由于外部或内部的原因,停止执行当前任务,转而处理特定的事件,处理完后返回原程序,继续执行。 当异常发生时,处理器首先自动保存当前状态,即返回地址存入寄存器R14,当前寄存器CPSR存入SPSR中,接着进入相应的工作模式,并执行特定地址的指令。 ARM共有7种类型的异常,不同类型的异常将导致处理器进入不同的工作模式,并执行不同特定地址的指令。 7种类型异常中断 复位:复位异常时,处理器立即停止当前程序,进入禁止中断的管理模式,并从地址0开始执行。 未定义指令:当前指令未定义时,便产生未定义指令中断。 软件中断:用户模式下使用指令SWI时,处理器便产生软件中断,进入管理模式,以调用特权操作。 指令预取中止:预取指令的地址不存在,或不允许当前指令访问时,存储器会向处理器发出中止信号;预取指令被执行时才会产生该类异常。 数据访问中止:数据访问指令的地址不存在,或不允许当前指令访问时,产生数据中止异常。 外部中断请求:外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常。 快速中断请求:快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常。 异常向量 异常中断的优先级 复位 当nRESET信号由低变为高电平时,ARM处理器执行下列操作: 1. 强制CPSR中的M[4:0]变为b10011(管理模式); 2. 置位CPSR中的I和F位; 3. 清零CPSR中的T位; 4. 强制PC从地址0x00开始对下一条指令进行取指;
您可能关注的文档
最近下载
- 中国高尔夫差点系统会员入会申请书.doc
- 江苏国泰(002091)公司2023年财务分析研究报告.doc
- 2024执业药师继续教育药物分析(3)参考答案.docx
- DB11T 383-2023 建筑工程施工现场安全资料管理规程.docx
- 总体国家安全观授课.pptx VIP
- 一种聚4-甲基-1-戊烯中空纤维膜的制备方法.pdf VIP
- DB11T 1832.2-2023 建筑工程施工工艺规程 第2部分:防水工程.docx
- 普外科麻醉科运用PDCA循环提高患者术后自控镇痛有效率QCC品管圈成果汇报书.docx
- 海信BCD-203FH电冰箱使用说明书.pdf
- 哈工大尹海洁社会统计学(第2版)课后习题答案.docx
文档评论(0)