安徽理工大学计算机汇编教程ARM系统结构

上传人:m**** 文档编号:571492146 上传时间:2024-08-11 格式:PPT 页数:62 大小:898.02KB
返回 下载 相关 举报
安徽理工大学计算机汇编教程ARM系统结构_第1页
第1页 / 共62页
安徽理工大学计算机汇编教程ARM系统结构_第2页
第2页 / 共62页
安徽理工大学计算机汇编教程ARM系统结构_第3页
第3页 / 共62页
安徽理工大学计算机汇编教程ARM系统结构_第4页
第4页 / 共62页
安徽理工大学计算机汇编教程ARM系统结构_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《安徽理工大学计算机汇编教程ARM系统结构》由会员分享,可在线阅读,更多相关《安徽理工大学计算机汇编教程ARM系统结构(62页珍藏版)》请在金锄头文库上搜索。

1、 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计8086/80888086/8088和和ARMARM核核汇编语言程序设计汇编语言程序设计第第1616章章ARMARM系统结构系统结构 8/11/20241第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计16.216.2 ARMARM微处理器的工作模式微处理器的工作模式 16.316.3 ARM ARM微处理器的寄存器组织微处理器的寄存器组织第第15章章 ARM CPU 概述概述16.116.1 AR

2、MARM微处理器的工作状态微处理器的工作状态 16.416.4 ARM ARM异常处理异常处理16.516.5 ARM ARM体系中的存储系统体系中的存储系统8/11/20242第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计ARM处理器支持下列数据类型:字节 8位半字 16位(必须分配为占用两个字节)字 32为(必须分配为占用4各字节)11123428/11/20243第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设

3、计设计设计 ARMARM处理器有两种操作状态:处理器有两种操作状态:ARMARM状态:状态:3232位,这种状态下执行的是字方式的位,这种状态下执行的是字方式的ARMARM指令;指令;ThumbThumb状态:状态:1616位,这种状态下执行半字方式的位,这种状态下执行半字方式的ThumbThumb指指令。令。16.116.1 ARMARM微处理器的工作状态微处理器的工作状态 注意:两个状态之间的切换并不影响处理器模式或寄存器内容。8/11/20244第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计处

4、理器状态的切换 使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行切换。;从Arm状态切换到Thumb状态 LDR R0,=Lable+1 BX R0;从Thumb状态切换到ARM状态 LDR R0,=Lable BX R0地址最低位为1,表示切换到Thumb状态地址最低位为0,表示切换到ARM状态跳转地址标号8/11/20245第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计16.216.2 ARMARM微处理器的工作模式微处理器的工作模式 16.316.3 ARM A

5、RM微处理器的寄存器组织微处理器的寄存器组织第第15章章 ARM CPU 概述概述16.116.1 ARMARM微处理器的工作状态微处理器的工作状态 16.416.4 ARM ARM异常处理异常处理16.516.5 ARM ARM体系中的存储系统体系中的存储系统8/11/20246第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计16.216.2 ARMARM微处理器的工作模式微处理器的工作模式 ARM体系结构支持7种处理器模式,分别为:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系

6、统模式,如下表所示。这样的好处是可以更好的支持操作系统并提高工作效率。ARM7TDMI完全支持这七种模式。8/11/20247第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计16.216.2 ARMARM微处理器的工作模式微处理器的工作模式 处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于

7、通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式8/11/20248第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计特权模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权

8、 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。 未定义 (und) 中止 (abt) 管理 (s

9、vc) 中断 (irq) 快中断 (fiq) 系统 (sys)8/11/20249第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计异常模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模

10、式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 未定义 (und) 中止 (abt) 管理 (svc) 中断 (irq) 快中断 (fiq) 这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。8/11/202410第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设

11、计设计设计用户和系统模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 这两种模式都不能由异常进入,而且它们使用完全相同的

12、寄存器组。 系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。 系统 (sys) 用户 (usr)8/11/202411第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计16.216.2 ARMARM微处理器的工作模式微处理器的工作模式 16.316.3 ARM ARM微处理器的寄存器组织微处理器的寄存器组织第第15章章 ARM CPU 概述概述16.116.1 ARMARM微处理器的工作状态微处理器的

13、工作状态 16.416.4 ARM ARM异常处理异常处理16.516.5 ARM ARM体系中的存储系统体系中的存储系统8/11/202412第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v

14、7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM状态各模式下的寄存器8/11/202413第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计

15、设计寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR1

16、5(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqSPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_abtCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0所有的37个寄存器,分成两大类:31个通用32位寄存器;6个状态寄存器。8/11/202414第第

17、16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR

18、13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用户用户无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系统系统SPSR_abtCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理管理SPSR_abtCPS

19、RR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定义未定义SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中断中断SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中断快中断8/11/202415第第16章章 ARM 系统结构系统结构 计算机科学与技术

20、系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR

21、)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqR13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0 在汇编语言中寄存器R0R13为保存数据或地址值的通用寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用寄存器的指令。8/11/202416第第16章章

22、ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_un

23、dR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqR13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0 其中R0R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器。8/11/

24、202417第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svc

25、R13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqR14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模

26、式,几乎所有允许使用通用寄存器的指令都允许使用分组寄存器8/11/202418第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR

27、12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqR12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中断后,可以加速FIQ的处理速度。8/

28、11/202419第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_

29、svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq 寄存器R13、R14分别有6个分组的物理寄存器。一个用于用户和系统模式,其余5个分别用于5种异常模式。R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR138/11/202420第第16章章 ARM 系统结构系统

30、结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR1

31、3_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq 寄存器R13常作为堆栈指针(SP)。在ARM指令集当中,没有以特殊方式使用R13的指令或其它功能,只是习惯上都这样使用。但是在Thumb指令集中存在使用R13的指令。8/11/202421第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计寄存器类别寄存器在汇编中的名称各

32、模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRC

33、PSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq R14为链接寄存器(LR),在结构上有两个特殊功能:在每种模式下,模式自身的R14版本用于保存子程序返回地址;当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。8/11/202422第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计Lable程序A程序BR14R14寄存器与子程序调用BL Lable地址A?MOV PC,LRR14(地址A)Lable?1.程序A执行

34、过程中调用程序B;操作流程2.程序跳转至标号Lable,执行程序B。同时硬件将“BL Lable”指令的下一条指令所在地址存入R14;3.程序B执行最后,将R14寄存器的内容放入PC,返回程序A;8/11/202423第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计R14寄存器与异常发生 异常发生时,程序要跳转至异常服务程序,对返回地址的处理与子程序调用类似,都是由硬件完成的。区别在于有些异常有一个小常量的偏移。8/11/202424第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学

35、与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计R14寄存器注意要点 当发生异常嵌套时,这些异常之间可能会发生冲突。例如:如果用户在用户模式下执行程序时发生了IRQ中断,用户模式寄存器不会被破坏。但是如果允许在IRQ模式下的中断处理程序重新使能IRQ中断,并且发生了嵌套的IRQ中断时,外部中断处理程序保存在R14_irq中的任何值都将被嵌套中断的返回地址所覆盖。8/11/202425第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计R14寄存器注意要点R14R14_irq用户模

36、式下的程序IRQ模式下的程序AareturnB.XA地址A地址A1.执行用户模式下的程序;2.发生IRQ中断,硬件将某个地址存入IRQ模式下的R14_irq寄存器,用户模式下的R14没有被破坏;3. IRQ服务程序A执行完毕,将R14_irq寄存器的内容减去某个常量后存入PC,返回之前被中断的程序;未被破坏8/11/202426第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计R14寄存器注意要点R14R14_irq用户模式下的程序IRQ模式下的程序AaB.XA地址A地址A1.执行用户模式下的程序;2.

37、发生IRQ中断,硬件将某个地址存入IRQ模式下的R14_irq寄存器,用户模式下的R14没有被破坏;3. IRQ服务程序A执行完毕,将R14_irq寄存器的内容减去某个常量后存入PC,返回之前被中断的程序;未被破坏IRQ模式下的程序BareturnB.XA地址B地址B4. 如果在IRQ处理程序中打开IRQ中断,并且再次发生IRQ中断,或者调用子程序;5. 硬件将返回地址保存在R14_irq寄存器中,原来保存的返回地址将被覆盖,造成错误;被破坏6. 在程序B返回到程序A,然后在返回到用户模式下被中断的程序时,发生错误,将不能正确返回;returnreturn 解决办法是确保R14的对应版本在发生

38、中断嵌套时不再保存任何有意义的值(将R14入栈),或者切换到其它处理器模式下。8/11/202427第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)

39、R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq 寄存器R15为程序计数器(PC),它指向正在取指的地址。可以认为它是一个通用寄存器,但是对于它的使用有许多与指令相关的限制或特殊情况。如果R15使用的方式超出了这些限制,那么结果将是不可预测的。8/11/202428第第16章章

40、 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计读R15的限制 正常操作时,从R15读取的值是处理器正在取指的地址,即当前正在执行指令的地址加上8个字节(两条ARM指令的长度)。由于ARM指令总是以字为单位,所以R15寄存器的最低两位总是为0。LDR R0,PC?PCPC-4PC-8正在执行正在译码正在取指流水线状态地址程序代码8/11/202429第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计读R15的限制 当使用S

41、TR或STM指令保存R15时,会有一个例外。这些指令可能将当前指令地址加8字节或加12字节保存(将来可能还有其它数字)。偏移量是8还是12取决于具体的ARM芯片,但是对于一个确定的芯片,这个值是一个常量。 所以最好避免使用STR和STM指令来保存R15,如果很难做到,那么应当在程序中计算出该芯片的偏移量。8/11/202430第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计读R15的限制计算偏移量程序代码:SUBR1,PC,#4;R1=下面STR指令的地址STRPC,R0;保存STR指令地址+偏移量L

42、DRR0,R0;然后重装SUBR0,R0,R1;计算偏移量8/11/202431第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计写R15的限制 正常操作时,写入R15 的值被当作一个指令地址,程序从这个地址处继续执行(相当于执行一次无条件跳转)。 8/11/202432第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计写R15的限制 由于ARM指令以字节为边界,因此写入R15的值最低两位通常为0b00。具体的规

43、则取决于内核结构的版本:在ARM结构V3版及以下版本中,写入R15的值的最低两位被忽略,因此跳转地址由指令的实际目标地址(写入R15的值)和0xFFFFFFFC相与得到;在ARM结构V4版及以上版本中,写入R15的值的最低两位为0,如果不是,结果将不可预测。8/11/202433第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(

44、v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq 寄存器CPSR为程序状态寄存器,在异常模式中,另

45、外一个寄存器“程序状态保存寄存器(SPSR)”可以被访问。每种异常都有自己的SPSR,在因为异常事件而进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。详细描述参看3.8小节。8/11/202434第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计Thumb状态寄存器 Thumb状态寄存器集是ARM状态集的子集,程序员可以直接访问的寄存器为:8个通用寄存器R0R7;程序计数器(PC);堆栈指针(SP);链接寄存器(LR);有条件访问程序状态寄存器( CPSR)。8/11/202435第第

46、16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计Thumb状态各模式下的寄存器CPSRCPSR状态寄存器R15PCR14_fiqR14_irqR14_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_undR13_abtR13_svcR13SPR7R7(v4,wr)R6R6(v3)R5R5(v2)R4R4(v1)R3R3(a4)R2R2(a3)R1R1(a2)R0R0(a1)通用寄存器和程序计数器快中断中断未定义中止管理系统用户各模式下实际访问的寄存器寄存器在汇编中的名称寄存

47、器类别注意:括号内为ATPCS中寄存器的命名,可以使用RN汇编伪指令将寄存器定义多个名字。其中ADS1.2的汇编程序直接支持这些名称,但注意a1a4,v1v4必须用小写。8/11/202436第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计Thumb状态下的通用寄存器CPSRCPSR状态寄存器R15PCR14_fiqR14_irqR14_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_undR13_abtR13_svcR13SPR7R7(v4,wr)R6R6(v3)R5

48、R5(v2)R4R4(v1)R3R3(a4)R2R2(a3)R1R1(a2)R0R0(a1)通用寄存器和程序计数器快中断中断未定义中止管理系统用户各模式下实际访问的寄存器寄存器在汇编中的名称寄存器类别R7R6R5R4R3R2R1R0 在汇编语言中寄存器R0R7为保存数据或地址值的通用寄存器。对于任何处理器模式,它们中的每一个都对应于相同的32为物理寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊的用途,并且可用于任何使用通用寄存器的指令。8/11/202437第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计

49、设计设计设计Thumb状态下的堆栈指针寄存器(SP)CPSRCPSR状态寄存器R15PCR14_fiqR14_irqR14_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_undR13_abtR13_svcR13SPR7R7(v4,wr)R6R6(v3)R5R5(v2)R4R4(v1)R3R3(a4)R2R2(a3)R1R1(a2)R0R0(a1)通用寄存器和程序计数器快中断中断未定义中止管理系统用户各模式下实际访问的寄存器寄存器在汇编中的名称寄存器类别 堆栈指针SP对应ARM状态的寄存器R13。每个异常模式都有其自身的SP分组版本,SP通常指向各异常模式所专用

50、的堆栈。 注意:在发生异常时,处理器自动进入ARM状态。R13_fiqR13_irqR13_undR13_abtR13_svcR138/11/202438第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计Thumb状态下的链接寄存器R14(LR)CPSRCPSR状态寄存器R15PCR14_fiqR14_irqR14_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_undR13_abtR13_svcR13SPR7R7(v4,wr)R6R6(v3)R5R5(v2)R4R4(v

51、1)R3R3(a4)R2R2(a3)R1R1(a2)R0R0(a1)通用寄存器和程序计数器快中断中断未定义中止管理系统用户各模式下实际访问的寄存器寄存器在汇编中的名称寄存器类别 链接寄存器LR对应ARM状态寄存器R14,在结构上有两个特殊功能,详见“ARM状态下的链接寄存器LR”。 注意:在发生异常时,处理器自动进入ARM状态。R14_fiqR14_irqR14_undR14_abtR14_svcR148/11/202439第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计ARM状态和Thumb状态之间

52、寄存器的关系 Thumb状态寄存器与ARM状态寄存器有如下的关系:Thumb状态R0R7与ARM状态R0R7相同;Thumb状态CPSR和SPSR与ARM状态CPSR和SPSR相同;Thumb状态SP映射到ARM状态R13;Thumb状态LR映射到ARM状态R14;Thumb状态PC映射到ARM状态PC(R15)。8/11/202440第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计Thumb状态寄存器在Arm状态寄存器上的映射R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R1

53、2 R0 堆栈指针 (R13) 连接寄存器 (R14) 程序计数器 (R15) 低寄存器高寄存器8/11/202441第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计在Thumb状态中访问高寄存器 在Thumb状态中,高寄存器(R8R15)不是标准寄存器集的一部分。汇编语言程序员对它们的访问受到限制,但可以将它们用于快速暂存。 可以使用MOV、CMP和ADD指令对高寄存器操作,详见第4章。8/11/202442第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇

54、编语言程序汇编语言程序汇编语言程序设计设计设计设计 ARM7TDMI内核包含1个CPSR和5个供异常处理程序使用的SPSR。CPSR反映了当前处理器的状态,其包含:4个条件代码标志(负(N)、零(Z)、进位(C)和溢出(V) );2个中断禁止位,分别控制一种类型的中断; 5个对当前处理器模式进行编码的位;1个用于指示当前执行指令(ARM还是Thumb)的位。 8/11/202443第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计NZCV IM0M1M2M3M4TF. . .31 30 29 28 27

55、 26 8 7 6 5 4 3 2 1 0条件代码标志保留控制位溢出标志进位或借位扩展零负或小于IRQ禁止FIQ禁止状态位模式位NZCVIM0M1M2M3M4TFCPSR寄存器的格式8/11/202444第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计 每个异常模式还带有一个程序状态保存寄存器 (SPSR),它用于保存在异常事件发生之前的CPSR。CPSR和SPSR通过特殊指令进行访问。详细信息请参阅第4章 。注意:如果通过程序修改CPSR寄存器中的模式位进入异常模式,那么硬件将不会把CPSR保存至S

56、PSR中。程序状态寄存器程序状态寄存器8/11/202445第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计条件代码标志 大多数“数值处理指令”可以选择是否影响条件代码标志位。通常如果指令带S后缀,则该指令的执行会影响条件代码标志;但有一些指令的执行总是会影响条件代码标志。 N、 Z、 C和V位都是条件代码标志。通过算术操作、逻辑操作、MSR或者LDM指令可以对这些位进行设置。所有ARM指令都可按条件来执行,而Thumb指令中只有分支指令可按条件执行。8/11/202446第第16章章 ARM 系统结

57、构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计条件代码标志各标志位的含义如下:N 运算结果的最高位反映在该标志位。对于有符号二进制补码,结果为负数时N=1,结果为正数或零时N=0;Z 指令结果为0时Z=1(通常表示比较结果“相等”),否则Z=0;8/11/202447第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计条件代码标志各标志位的含义如下:C 当进行加法运算(包括CMN指令),并且最高位产生进位时C=1,否则C=0。当进行减法运

58、算(包括CMP 指令),并且最高位产生借位时C=0,否则C=1。对于结合移位操作的非加法/减法指令,C为从最高位最后移出的值,其它指令C通常不变; V当进行加法/减法运算,并且发生有符号溢出时V=1,否则V=0,其它指令V通常不变。8/11/202448第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计控制位 CPSR的最低8位为控制位,当发生异常时,这些位被硬件改变。当处理器处于一个特权模式时,可用软件操作这些位。 它们分别是:中断禁止位;T位;模式位。8/11/202449第第16章章 ARM 系统

59、结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计控制位中断禁止位包括I和F位:当I位置位时,IRQ中断被禁止;当F位置位时,FIQ中断被禁止。T位反映了正在操作的状态:当T位置位时,处理器正在Thumb状态下运行;当T位清零时,处理器正在ARM状态下运行。8/11/202450第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计控制位模式位包括M4、M3、M2、M1和M0,这些位决定处理器的操作模式。注意:不是所有模式位的组合都定义了有效

60、的处理器模式,如果使用了错误的设置,将引起一个无法恢复的错误。8/11/202451第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计M4:0模式可见的Thumb状态寄存器可见的ARM状态寄存器10000用户R0R7,SP,LR,PC,CPSRR0R14,PC, CPSR 10001快中断R0R7,SP_fiq,LR_fiq,PC,CPSR,SPSR_fiq R0R7,R8_fiqR14_fiq,PC,CPSR, SPSR_fiq 10010中断R0R7,SP_irq,LR_irq,PC,CPSR, S

61、PSR_fiq R0R12,R13_irq,R14_irq,PC,CPSR, SPSR_irq 10011管理R0R7,SP_svc,LR_svc,PC,CPSR, SPSR_svc R0R12,R13_svc,R14_svc,PC,CPSR, SPSR_svc 10111中止R0R7,SP_abt,LR_abt,PC,CPSR, SPSR_abt R0R12,R13_abt,R14_abt,PC,CPSR, SPSR_abt 11011未定义R0R7,SP_und,LR_und,PC,CPSR, SPSR_und R0R12,R13_und,R14_und,PC,CPSR,SPSR_und1

62、1111系统R0R7,SP,LR,PC,CPSR R0R14,PC, CPSR CPSR模式位设置表8/11/202452第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计保留位 CPSR中的保留位被保留将来使用。为了提高程序的可移植性,当改变CPSR标志和控制位时,请不要改变这些保留位。另外,请确保您程序的运行不受保留位的值影响,因为将来的处理器可能会将这些位设置为1或者0。 8/11/202453第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇

63、编语言程序汇编语言程序设计设计设计设计16.216.2 ARMARM微处理器的工作模式微处理器的工作模式 16.316.3 ARM ARM微处理器的寄存器组织微处理器的寄存器组织第第15章章 ARM CPU 概述概述16.116.1 ARMARM微处理器的工作状态微处理器的工作状态 16.416.4 ARM ARM异常处理异常处理16.516.5 ARM ARM体系中的存储系统体系中的存储系统8/11/202454第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计16.416.4 ARM ARM异常处理

64、异常处理 只要正常的程序流被暂时中止,处理器就进入异常模式。例如响应一个来自外设的中断。在处理异常之前,ARM7TDMI内核保存当前的处理器状态,这样当处理程序结束时可以恢复执行原来的程序。 如果同时发生两个或更多异常,那么将按照固定的顺序来处理异常,详见“异常优先级”部分。 8/11/202455第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计16.4.1 ARM16.4.1 ARM中的异常类型中的异常类型异常类型具体含义复位当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行。

65、未定义指令当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可使用该异常机制进行软件仿真。软件中断该异常由执行SWI指令产生,可用于用户模式下的程序调用特权操作指令。可使用该异常机制实现系统功能调用。指令预取中止若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常。数据中止若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。IRQ(外部中断请求)当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常。系统的外设可通过该异常请求中断服务。FIQ(快速

66、中断请求)当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常。8/11/202456第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计16.4.2 ARM16.4.2 ARM对异常的响应对异常的响应 保存处理器当前状态、中断屏蔽位以及各条件标志位。这是通过将当前程序状态寄存器CPSR的内容保存到将要执行的异常中断对应的SPSR寄存器中实现的。各异常中断有自己的物理SPSR寄存器。 设置当前程序状态寄存器CPSR中相应的位。包括:设置CPSR中的位,使处理器进入相应的执行模式;设置C

67、PSR中的位,禁止IRQ中断,当进入FIQ模式时,禁止FIQ中断。 将寄存器lr_mode设置成返回地址。 将程序计数器值(PC),设置成该异常中断的中断向量地址,从而跳转到相应的异常中断处理程序处执行。8/11/202457第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计16.4.3 ARM16.4.3 ARM从异常的返回从异常的返回从异常中断处理程序中返回包括以下两个基本操作:恢复被中断的程序的处理器状态,即将SPSR_mode寄存器内容复制到CPSR中。返回到发生异常中断的指令的下一条指令处执行

68、,即将lr_mode寄存器的内容复制到程序计数器PC中。8/11/202458第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计16.4.4 16.4.4 异常向量地址及优先级异常向量地址及优先级异 常进入模式地 址优先级复位管理模式0x0000,00001(最高)未定义指令未定义模式0x0000,00046软件中断管理模式0x0000,00086中止(预取指令)中止模式0x0000,000C5中止(数据)中止模式0x0000,00102IRQIRQ0x0000,00184FIQFIQ0x0000,00

69、1C38/11/202459第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计16.216.2 ARMARM微处理器的工作模式微处理器的工作模式 16.316.3 ARM ARM微处理器的寄存器组织微处理器的寄存器组织第第15章章 ARM CPU 概述概述16.116.1 ARMARM微处理器的工作状态微处理器的工作状态 16.416.4 ARM ARM异常处理异常处理16.516.5 ARM ARM体系中的存储系统体系中的存储系统8/11/202460第第16章章 ARM 系统结构系统结构 计算机科学

70、与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计16.5.2 ARM16.5.2 ARM存储器格式存储器格式ARM体系结构可以用两种方法存储字数据,称之为大端格式和小端格式 1 1大端格式:大端格式:在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中, 8/11/202461第第16章章 ARM 系统结构系统结构 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计16.5.2 ARM16.5.2 ARM存储器格式存储器格式2 2小端格式:小端格式:与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。 8/11/202462第第16章章 ARM 系统结构系统结构

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号