㈠ 單片機程序狀態字PSW的OV位到底是怎麼判斷溢出的有CY位不就夠了么
溢出,是通用的詞彙。
含義,一般就是,容器太小,盛不下了。
但是,在計算機領域,卻有些怪誕。
人類所用的數,有:自然數、整數。
到了搞計算機的人的嘴裡,就要改稱為:無符號數、帶符號數。
計算機中的八位二進制機器碼,所能表示的范圍,如下所示:
機器碼,無論代表什麼數字,只要運算結果超出范圍,就是【溢出】。
但是,在計算機專業人的嘴裡,就不一樣了。
【無符號數的溢出】,不叫溢出,要叫做【進位】。
【帶符號數的溢出】,才叫做【溢出】。
搞計算機的這些人,基本概念不清,卻自命不凡!
冒充腦迴路清奇。。。正常人對此,就只能無語了。
----------------------
如果你讓計算機計算:
1111 1110 + 1111 1101 = (1) 1111 1011
這是代表了無符號數:254 + 253 = (256) 251 = 507。
和,超出了 255,就是溢出了。特徵是【進位為 1】。
這也代表了帶符號數:(-2) + (-3) = (進位舍棄) (-5)。
和,沒有超出范圍,沒有溢出,結果正確。
----------------------
如果你讓計算機計算:
0111 1110 + 0111 1101 = (0) 1111 1011
這是代表了無符號數:126 + 125 = (0) 251。
和,不超出 255,沒有溢出。特徵是【進位為 0】。
這也代表了帶符號數:126 + 125 = (進位舍棄) (-5)。
和,超出 +127,就溢出了,結果錯誤!特徵是:符號不對了。
----------------------
CPU 做完運算,會給出八位結果,以及標志位。
如果你算的是無符號數,你就應該關心「進位標志 CY」。
如果你算的是帶符號數,你就應該關心「溢出標志 OV」。
㈡ MCS—51單片機復位後 psw的值為多少
MCS—51單片機復位後 程序狀態字psw的值=00H,即0000 0000B。各種標志位(如: 進位CY、輔助進位AC、溢出標志OV、奇偶標志位P、工作寄存器區選擇位)均為0。
特殊:堆棧SP=07H;P0,P1,P2,P3,P4為0FFH;
其它都為0;所以ACC=0;PSW=0;
SP=07H,P0~P3 為FFH,IP=XXX00000B(所有有效位為0)IEPCON=0XX00000B,TMODTCONSCON=00H 復位時,ALE=1和!PSEN=1。內部RAM不受復位的影響。
復位就是將單片機Ram值全都清零,常用復位有硬體復位,就是復位開關,psw pc復位後都為0。
(2)單片機程序狀態字擴展閱讀:
MCS-51單片機的內核:8051CPU,CPU的內部集成有運算器和控制器,運算器完成運算操作(包括數據運算、邏輯運算等),控制器完成取指令、對指令解碼以及執行指令。
MCS-51單片機的片內資源:中央處理器(CPU)、數據存儲器(RAM)、程序存儲器(ROM)、定時/計數器(ROM)、並行輸入輸出(I/O)口、全雙工串列口、中斷系統、時鍾電路。
㈢ 簡述MCS51單片機中程序狀態寄存器PSW各位的含義。
PSW即程序狀態寄存器,Program Status Word。
PSW各位的定義如下:
Cy(PSW.7):即PSW的D7位,進位、借位標志。進位、借位CY=1;否則CY=0.
AC(PSW.6):即PSW的D6位,輔助進位、借位標志。當D3向D4有借位或進位時,AC=1;否則AC=0.
F0(PSW.5及PSW.1):即PSW的D5位,用戶標志位;
RS1及RS0(PSW.4及PSW.3):即PSW的D4、D3位,寄存器組選擇控制位;
OV(PSW.2):溢出標志。有溢出OV=1,否則OV=0;
F1(PSW·1):保留位,無定義;
P(PSW·0):奇偶校驗標志位,由硬體置位或清0;存在ACC中的運算結果有奇數個1時P=1,否則P=0。
㈣ 單片機程序狀態字PSW中的CY 和OV
首先,要知道,什麼是溢出?
一般來說,容器太小,盛不下了,就會溢出。
在計算機方面,溢出,就是數據太大,超出了預定的范圍。
數字,在計算機中,都是用機器碼代表的。
人們最常用的「自然數」和「整數」,其表達范圍如下:
機器碼,無論代表什麼數字,只要運算結果超出預定范圍,就是【溢出】。
但是,在計算機專業人的嘴裡,就不一樣了。
【無符號數的溢出】,不叫溢出,要叫做【進位】。
【帶符號數的溢出】,才叫做【溢出】。
搞計算機的這些人,基本概念不清,卻自命不凡!
冒充腦迴路清奇。。。正常人對此,就只能無語了。
---------------------------
那麼,就按照計算機專業的說法吧:
溢出,是指「補碼運算結果超出范圍」。
溢出的特徵,是「符號錯誤」。
知道了這些,判斷是否溢出,就很容易了。
CPU 每次做完運算,就會給出結果和「進位標志位 CY」和「溢出標志位 OV」。
如果 OV=1,就代表:剛剛做的計算,發生了溢出。
人工判斷是否溢出,有如下六個方法。
一、無符號數的運算,肯定不會溢出。只有進位。
二、只有:正+正、負+負,才有可能超出范圍。不是這些,就絕不會溢出。
三、人工用十進制數值計算。和,如果沒有超出范圍,就沒有溢出。
四、人工用二進制補碼計算。和的符號,如果正確,就沒有溢出。
五、編個程序,讓計算機計算。然後觀察溢出標志位,為零,就沒有溢出。
六、人工用補碼計算,如「最高位的進位」和「次高位的進位」相同,就沒有溢出。
第六種,本是 CPU 的硬體所用的方法。
硬體,其理論基礎,是很晦澀難懂的。
異或運算,一般也不需要初學者掌握。
但是,一些愛得瑟的老師,偏愛介紹這種方法。
卻又拿不出任何的理論!
其實,這是很無聊的表現,就是想著難為學生。
㈤ 當8051單片機RST信號復位時,程序狀態字PSW值為
C51單片機的程序狀態字PSW是一個8位寄存器,其中定義了7位;CY、AC、F0、RS1、RS0、OV、-、P; CY、AC、OV標記位與運算有關,而 P標記則與A寄存器值相關;F0、RS1、RS0標記位默認為0,需要時再設置;如此,單片機復位後,程序運行前,PWS=0;㈥ 什麼是 控制字(單片機)
控制字就是單片機的程序狀態字PSW
程序狀態寄存器PSW是計算機系統的核心部件——控制器的一部分,PSW用來存放兩類信息:一類是體現當前指令執行結果的各種狀態信息,稱為狀態標志,如有無進位(CF位),有無溢出(OF位),結果正負(SF位),結果是否為零(ZF位),奇偶標志位(PF位)等;另一類是存放控制信息,稱為控制狀態,如允許中斷(IF位),跟蹤標志(TF位),方向標志(DF)等。有些機器中將PSW稱為標志寄存器FR(Flag
Register)。
對於51系列,PSW各位的定義如下:Cy(PSW.7):即PSW的D7位,進位、借位標志。進位、借位CY=1;否則CY=0.
AC(PSW.6):即PSW的D6位,輔助進位、借位標志。當D3向D4有借位或進位時,AC=1;否則AC=0.
F0(PSW.5及PSW.1):即PSW的D5位,用戶標志位;
RS1及RS0(PSW.4及PSW.3):即PSW的D4、D3位,寄存器組選擇控制位;
OV(PSW.2):溢出標志。有溢出OV=1,否則OV=0;
F1(PSW·1):保留位,無定義;
P(PSW·0):奇偶校驗標志位,由硬體置位或清0;存在ACC中的運算結果有奇數個1時P=1,否則P=0
㈦ 單片機中程序狀態字什麼作用PSW.2(OV):溢出標志什麼意思
51單片機的PSW(程序狀態字)寄存器包括了C,AC,RS1,RS0,OV,P等幾個狀態位,這些狀態位反映的是51單片機在執行完某個指令後的狀態,比如有沒有進位,有沒有溢出,A中1的個數是奇數還是偶數個等。其中OV是溢出位,主要是想反映有符號數在運行時,是不是超出的最後的表示範圍,平時在無符號位運算時沒有會意思。OV是進位位與第二進位位異或的結果。
㈧ 80C51單片機的程序狀態字psw中的沒有歸零標志,怎麼判斷某片內RAM單元的內容
psw中是沒有零標志,但是有與零有關的指令;
如 Jz 、Jnz 、djnz,以及 cjne ;
合理運用就是了;
㈨ 51單片機中psw是什麼意思
51單片機中psw是程序狀態字 ,用來存放指令執行後的有關狀態。
51單片機是對所有兼容Intel 8031指令系統的單片機的統稱。該系列單片機的始祖是Intel的8031單片機,後來隨著Flash rom技術的發展,8031單片機取得了長足的進展,成為應用最廣泛的8位單片機之一,其代表型號是ATMEL公司的AT89系列,它廣泛應用於工業測控系統之中。很多公司都有51系列的兼容機型推出,今後很長的一段時間內將佔有大量市場。51單片機是基礎入門的一個單片機,還是應用最廣泛的一種。需要注意的是52系列的單片機一般不具備自編程能力。
(1)Cy(PSW.7)PSW.7是Cy即C,來源於最近一次算術指令或邏輯指令執行時軟硬體的改寫。
(2)Ac(PSW.6) 輔助進位標志位,用於BCD碼的十進制調整運算。當低四位向高四位借進位時Ac被置1,否則清0。此位也可和DA指令結合起來用。
(3)F0(PSW.5)用戶使用的狀態標志位。這個你可以任意使用。
(4)RS1、RS0(PSW.4、PSW.3):4組工作寄存器區選擇控制位1和位0。
(5)OV(PSW.2)溢出標志位 在執行算術指令時,指示運算是否產生溢出。
(6)PSW.1位: 保留位,未用。
(7)P(PSW.0)奇偶標志位
P=1,A中「1」的個數為奇數
P=0,A中「1」的個數為偶數