Arm匯編學習筆記(前序)——ARM處理器簡介

ARM 537瀏覽

一 ARM處理器與ARM指令集

整個ARM處理器被分為三個部分:

  • Classic
  • Embedded
  • Application

Classic被稱為經典系列。

ARM1~ARM11一直都以數字來命名,ARM12以后改為用Cortex命名。Cortex有以下幾個分類:

  • Cortex-A:廣泛用于智能手機、上網本、電子書以及數字電視等。
  • Cortex-M:用于微控制領域,該系列的特點是高能效和低功耗。
  • Cortex-R:用于支持深層嵌入式的餓實時應用,該系列的特點是低功耗、良好的中斷行為、卓越性能以及與現有平臺的高兼容性。

盡管ARM處理器版本眾多,它是很多型號ARM處理器兼容一套ARM指令集,ARM架構與ARM處理器的對應關系如下圖所示:

這里寫圖片描述

上圖涉及的技術,這里也簡單提一下:

  • VFP:為ARM處理器提供了浮點運算功能。
  • Jazelle:允許某些架構的硬件上加速運行Java字節碼。
  • SIMD:多媒體指令集。
  • TrustZone:安全性控制,避免產品受到外部的惡意攻擊。
  • NEON:NEON是SIMD體系結構的擴展,NEON在執行上比傳統的SIMD占用更少的指令周期。

Android最初選擇ARM作為平臺設備的處理器結構,并做了專門的優化。發展到Android4.1版本以后,已經全面支持ARM、x86和MIPS三種架構的處理器。

二 ARM處理器的工作模式和工作狀態

2.1 ARM處理器的工作模式

ARM處理器共37個32位處理器,其中有31個通用寄存器和6個狀態寄存器。ARM處理器支持7種運行模式,分別是:

  • 用戶模式(usr):ARM處理器正常的程序運行狀態。
  • 快速中斷模式(flq):用于高速數據傳輸或通道處理。
  • 外部中斷模式(irq):用于通用的中斷處理。
  • 管理模式(svc):操作系統使用的保護模式。
  • 數據訪問終止模式(abt):當數據或指令預取終止時進入該模式,可用于虛擬存儲以及存儲保護。
  • 系統模式(sys):運行具有特短的操作系統任務。
  • 未定義指令終止模式(und):當未定義的指令執行時進入該模式。

2.2 ARM處理器的工作狀態

  • ARM狀態:執行32位字對齊的ARM指令。
  • Thumb狀態:執行16位字對齊的ARM指令。

Thumb狀態下的寄存器的命名與ARM有部分差異,它們的對應關系如下所示:

  • Thumb狀態下的R0~R7與ARM狀態下的R0~R7相同。
  • Thumb狀態下的CPSR與ARM狀態下的CPSR相同。
  • Thumb狀態下的FP與ARM狀態下的R11相同。
  • Thumb狀態下的IP與ARM狀態下的R12相同。
  • Thumb狀態下的SP與ARM狀態下的R13相同。
  • Thumb狀態下的LR與ARM狀態下的R14相同。
  • Thumb狀態下的PC與ARM狀態下的R15相同。

七星彩走势图2元网官网