程式狀態暫存器CPSR每個位分別代表什麼

時間 2021-09-03 03:26:44

1樓:果果和糰子

1、n:當用兩個補碼錶示的帶符號數進行運算時,n=1表示運算的結果為負數;n=0表示運算的結果為正數或零

2、z :z=1表示運算的結果為零,z=0表示運算的結果非零。

3、c:可以有4種方法設定c的值:

-加法運算(包括cmp):當運算結果產生了進位時(無符號數溢位),c=1,否則c=0。

-減法運算(包括cmp):當運算時產生了借位時(無符號數溢位),c=0,否則c=1。

-對於包含移位操作的非加/減運算指令,c為移出值的最後一位。

-對於其它的非加/減運算指令,c的值通常不會改變。

4、v:可以有2種方法設定v的值:

-對於加減法運算指令,當運算元和運算結果為二進位制的補碼錶示的帶符號數時,v=1表示符號位溢位

-對於其它的非加/減運算指令,v的值通常不會改變。

q:在arm v5及以上版本的e系列處理器中,用q標誌位指示增強的dsp運算指令是否發生了溢位。在其它版本的處理器中,q標誌位無定義。

5、cpsr的低8位(包括i、f、t和m[4:0])稱為控制位,當發生異常時這些位可以被改變。如果處理器執行於特權模式時,這些位也可以由程式修改。

中斷禁止位i、f:置1時,禁止irq中斷和fiq中斷。

t標誌位:該位反映處理器的執行狀態。當該位為1時,程式執行於thumb狀態,否則執行於arm狀態。

該訊號反映在外部引腳tbit上。在程式中不得修改cpsr中的tbit位,否則處理器工作狀態不能確定。

執行模式位m[4:0]:這幾位是模式位,這些位決定了處理器的執行模式。具體含義如下表所示:

保留位:cpsr中的其餘位為保留位,當改變cpsr中的條件碼標誌位或者控制位時,保留位不要改變,在程式中也不要用保留位儲存資料。保留位將用於arm版本的擴充套件。

2樓:匿名使用者

n——若運算結果為負責置一,否則為零;

z——若運算結果為零則置一,否則為零;

c——對於加法:若運算有進位置一;對於減法:若有進位則置零;

v——運算有溢位則置一。

你是學的arm吧?

在微控制器中,那叫程式狀態字暫存器(psw),整個處理器或者微控制器的世界裡這些東西不是一定相同的。

3樓:子璐

n:負標誌位,運算結果的第31位值,記錄標誌設定的結果z:零標誌位,如果標誌設定操作的結果為0,則置位c:

進位標誌位,記錄無符號加法溢位,減法無錯位,迴圈移位v:溢位標誌位,記錄標誌設定操作的有符號溢位i:中斷禁止標誌位,置位時禁止irq中斷,否則允許irq中斷使能f:

中斷禁止標誌位,置位時禁止fiq中斷,否則允許fiq中斷使能t:控制位,置位時處理器執行在thumb狀態下,清零時處理器執行在arm狀態下

m0~m4:模式控制位,定義處理器的7中模式其餘位為保留位,留作將來使用

4樓:八寶粥

這個要看是什麼東西的程式狀態暫存器了吧,但是它的資料手冊中一定會有的,你看它的資料手冊吧

關於資料暫存器和指令暫存器

1指令暫存器 ir 用來儲存當前正在執行的一條指令。當執行一條指令時,先把它從記憶體取到資料暫存器 dr 中,然後再傳送至ir。指令劃分為操作碼和地址碼欄位,由二進位制數字組成。為了執行任何給定的指令,必須對操作碼進行測試,以便識別所要求的操作。指令譯碼器就是做這項工作的。指令暫存器中操作碼欄位的輸...

什麼是物理暫存器,什麼是頁內暫存器,有什麼功用?

資料暫存器為圖中最上邊所示的4個暫存器ax,bx,cx,dx。這些暫存器用以暫時儲存計算過程中所得到的運算元及結果。他能處理16位數,也能處理8位數,當處理8位數時,這4個16位暫存器作為8個8為暫存器ah,al,bh,bl,ch,cl,dh,dl來使用。這4個資料暫存器除了作為通用暫存器以外,還有...

windows下如何直接訪問暫存器

你可以參考下串列埠除錯工具的源 在進行串列埠通訊的時候,是不需要直接讀取暫存器的,不像微控制器。估計得用匯編,硬體層面的操作用匯編是最合適的了。c語言中的指標好像也能訪問,但是會十分麻煩的。這個我還沒弄過,你去查查api函式.如果你真想用c訪問暫存器建議你用存dos,我想winfdows的暫存器是受...