狀態(tài)寄存器中的各個(gè)狀態(tài)標(biāo)志位是依據(jù)“ALU上一次的運(yùn)算結(jié)果”來(lái)設(shè)置標(biāo)志位的;狀態(tài)寄存器又名條件碼寄存器,是計(jì)算機(jī)核心部件運(yùn)算器的一部分,主要用來(lái)存放體現(xiàn)當(dāng)前指令執(zhí)行結(jié)果的各種狀態(tài)信息和控制信息。
本教程操作環(huán)境:windows10系統(tǒng)、DELL G3電腦。
狀態(tài)寄存器中的各個(gè)狀態(tài)標(biāo)志位是依據(jù)什么來(lái)設(shè)置標(biāo)志位的
狀態(tài)寄存器中的各個(gè)狀態(tài)標(biāo)志位是依據(jù)“ALU上一次的運(yùn)算結(jié)果”來(lái)設(shè)置標(biāo)志位的
狀態(tài)寄存器又名條件碼寄存器,它是計(jì)算機(jī)系統(tǒng)的核心部件——運(yùn)算器的一部分,狀態(tài)寄存器用來(lái)存放兩類(lèi)信息:
一類(lèi)是體現(xiàn)當(dāng)前指令執(zhí)行結(jié)果的各種狀態(tài)信息(條件碼),如有無(wú)進(jìn)位(CF位)、有無(wú)溢出(OV位)、結(jié)果正負(fù)(SF位)、結(jié)果是否為零(ZF位)、奇偶標(biāo)志位(P位)等;
另一類(lèi)是存放控制信息(PSW:程序狀態(tài)字寄存器),如允許中斷(IF位)、跟蹤標(biāo)志(TF位)等。有些機(jī)器中將PSW稱(chēng)為標(biāo)志寄存器FR(Flag Register)
在ARM中有6個(gè)狀態(tài)寄存器,ARM7TDMI內(nèi)核包含1個(gè)CPSR和5個(gè)供異常處理程序使用的SPSR。CPSR反映了當(dāng)前處理器的狀態(tài),其包含:
-
4個(gè)條件代碼標(biāo)志(負(fù)(N)、零(Z)、進(jìn)位(C)和溢出(V) );
-
2個(gè)中斷禁止位,分別控制一種類(lèi)型的中斷;
-
5個(gè)對(duì)當(dāng)前處理器模式進(jìn)行編碼的位;
-
1個(gè)用于指示當(dāng)前執(zhí)行指令(ARM還是Thumb)的位。
PSW各標(biāo)志位解釋?zhuān)?/strong>
1. CY(Carry): 用于表示加法運(yùn)算中的進(jìn)位和減法運(yùn)算中的借位,加法運(yùn)算中有進(jìn)位或減法運(yùn)算中有借位則CY位置為1,否則為0
2. AC(Auxiliary Carry): 與CY基本相同,不同的是低4位與高4位間的運(yùn)算。
3.F0(Flag Zero用戶(hù)標(biāo)志位): 該位是用戶(hù)根據(jù)自己的需要而自己設(shè)定的標(biāo)志位,用戶(hù)可以通過(guò)設(shè)置該位來(lái)決定程序的流向和分支。
4. RS1,RS0: 8051有8個(gè)8位工作寄存器R0~R7,它在RAM中的實(shí)際物理地理可以根據(jù)需要來(lái)選擇確定?!?/p>
00:00H~07H
01:08H~0FH
10:10H~17H
11:18H~1FH
5.OV: 表示運(yùn)算過(guò)程中是否發(fā)生了溢出,若結(jié)果超過(guò)了8位二進(jìn)制數(shù)所能表示數(shù)據(jù)的范圍即有符號(hào)數(shù)-128~+127,則標(biāo)志位置1。
6.OP: 奇偶標(biāo)志位用來(lái)指示運(yùn)算結(jié)果中1的個(gè)數(shù)的奇偶性,若P=0,則累加器A中1的個(gè)數(shù)為偶數(shù);若P=1,則累加器A中1的個(gè)數(shù)為奇數(shù)。