ARM·微處理器的編程模型
2)程序狀態(tài)寄存器(CPSR)
·mode:表示處理器的工作狀態(tài)
·T:0,ARM state;1,Thumb state ;
·interrupt disable bits
I=1:Disables the IRQ
F=1:Disable the FIO
·condition code flags
N = Negative result from ALU (非零)
Z = Zero result from ALU (結果是零)
C = ALU operation Carried out (進位)
V = ALU operation Overflowed (溢出)
v5,v6的
Q:dsp擴展單元
J:java加速器
(處理器用于存儲數(shù)據(jù)方式有兩種,分為大字節(jié)序和小字節(jié)序
大字節(jié)序:高字節(jié)在低位,低字節(jié)在高位
小字節(jié)序:高字節(jié)在高位,低字節(jié)在低位
*老版本只支持小字字節(jié),現(xiàn)在都支持,linux網(wǎng)絡編程采用大字節(jié)序)
【ARM所支持的異常】
(只要正常的程序流被暫時中止,處理器將進入異常模式。在處理異常之前,ARM9內核保存的當前的處理器狀態(tài)(CPSR->SPSR),這樣當處理器結束時可以恢復執(zhí)行原來的程序(SPSR->CPSR))
Reset:復位中斷 ;
Reset:復位中斷 ;
Undefineed Instruction :未定義指令;
Software Interrupt:軟件中斷
Prefetch Abort:預取指令中止 ;
Date Abort :數(shù)據(jù)中止 ;
IRQ:外部中斷 ;
FIQ:快速中斷請求 ;
【異常的響應】
1)進入異常:
*LR中保存當前執(zhí)行指令的下一條指令的地址:LR=PC-4
*CPSR->SPSR (保留狀態(tài))
*CPSR->與異常類型相對應的狀態(tài)
*PC從相關異常向量處取址
*跳轉,執(zhí)行命令
2)從異常返回
*SPSR->CPSR
*LR寄存值減去一個偏移量后復制到PC寄存器,跳轉被中斷的用戶程序
評論