計算機體系結構 ARM 簡介

2021-09-30 07:26:20 字數 1904 閱讀 7347

1

.arm

中斷響應過程(以

irq中斷為例):

if(處理器處於

thumb

狀態下)

{切換到

arm狀態;}將

r0~r12

放入irq

中斷模式下的堆疊中,堆疊指標由

r13(

irq)指明;

將當前狀態暫存器

cpsr

的內容儲存到

spsr

(irq

)中;設定當前狀態暫存器

cpsr

中的相應位:位

0~4控制位設為

10010,位5

即t位工作狀態位設為0—

arm工作狀態,以及if位

5、6中斷禁止,禁止

irq中斷(當中斷訊號為

reset

或者fiq

時,禁止新的

fiq中斷);

將引起異常指令的下一條指令的位址儲存在

r14中,—返回位址;

給程式計數器

pc賦值,使其執行中斷指令**;

2.pc

時刻指向正在取址的指令。

3.arm

的**流水線結構(中斷呼叫原理):

jmp pc

:fetchdecodeexecutel

tadd pc = pc + 4

fetchdecodeexecute

sub pc = (pc + 4) + 4fetchdecode

execute

subpc =

((pc + 4) + 4)+4

fetch decode

圖示詳解:

當jmp

跳轉指令執行完即

execute

之後,開始進入

l週期,此時設定

lr暫存器為當前

pc值,在

t週期硬體完成

lr = lr – 4

的工作,所以

jmp指令返回時。

lr中儲存的返回位址為

lr = pc+ 12 – 4

即pc + 8,

此時如果程式正確返回需要再執行

-4操作,所以其返回指令為

sub pc ,lr

,#4

硬體只完成一次

-4操作,所以需要人工做一次

sub操作。

疑問:arm

子程式呼叫返回語句

mov pc, lr

是什麼原理

4.thumb

指令集是無條件執行的,只有

b指令是有條件執行的。

5.算數移位指令:右移最高位由符號位填充,左移由

0補充。

6.指令

mov r0,#0x0000f200

(錯誤),因為指令格式裡給立即數分配的空間只有

12個位元組,而這個立即數就是

32位了,

arm指令裡立即數的儲存必須用特殊格式,即立即數的

12位包括八位常數和和四位的迴圈右移。其中迴圈右移的位數由乙個四位的二進位制的二倍表示(

0000-1111)*2

比如:0x0000f200

首先提取出八位,要保證這八位能夠通過邏輯右移得到原運算元,這裡提取出

f2,補充到

32位,

000000f2,

邏輯右移

24位得到原運算元,這是補充四個邏輯右移位,用邏輯右移

24位的一半,即12,

12:1100

;f2:11110010

所以12

位立即數字為

110011110010

由此規則可知

mov r0,#0xf3e

是違反規則的,因為因為無法表示成

4+8的形式。

計算機體系結構

計算機體系結構 計算機體系機構指計算機中部件和部件之間的聯絡 一 馮 諾依曼體系 1 計算機處理的資料和指令用二進位制數表示 2 採用儲存程式方式,指令和資料儲存在同乙個儲存器中。3 指令由操作碼和位址組成。操作碼指明指令的操作型別,位址指明運算元和位址。4 以運算器為中心,i o裝置與儲存器間的資...

計算機體系結構

2.計算機體系結構 經典計算機體系結構概念的實質是計算機系統中軟硬體介面的確定,其介面之上的是軟體的功能,介面之下的是硬體和韌體的功能。廣義 現代 的計算機體系結的構概念,它除了包括經典的計算機體系結構的概念範疇 指令集結構 還包括計算機組成和計算機實現的內容。計算機體系結構是程式設計師所看到的計算...

計算機體系結構

首先表示下就剛剛九寨溝發生7級 成都震感強烈 1.記憶體與位址 乙個位址所對應的記憶體單元不能存很多東西,只能存乙個位元組,以前講過的int float等多位元組的資料型別儲存在記憶體中要占用連續的多個位址,這種情況下資料的位址是它所佔記憶體單元的起始位址。2.cpu 處理器是32位的,那麼乙個字就...