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的暫存器是受...