關於微控制器程式狀態字PSW的問題

2021-03-03 21:42:51 字數 5406 閱讀 1761

1樓:匿名使用者

a 1001 0011

30h + 1000 1101

1 0010 0000

( ov)=1

(p)=1

( cy)=1

( a)=1

程式狀態字psw有什麼作用,各位的含義是什麼?

2樓:男九十九號

程式狀態字(program status word, psw)又稱狀態暫存器,主要用於反映處理器的狀態及某些計算結果以及控制指令的執行。

程式狀態字(program status word, psw)又稱狀態暫存器,主要用於反映處理器的狀態及某些計算結果以及控制指令的執行。用一個專門的暫存器來指示處理器狀態。

程式狀態字通常包括以下狀態**:

cpu的工作狀態碼——指明管態還是目態,用來說明當前在cpu上執行的是作業系統還是一般使用者,從而決定其是否可以使用特權指令或擁有其它的特殊權力

條件碼——反映指令執行後的結果特徵

中斷遮蔽碼——指出是否允許中斷

各位的含義如下**:

微控制器程式狀態字psw的ov位到底是怎麼判斷溢位的?

3樓:證喔

d2位ov是判斷溢位的標誌。

在微控制器中狀態暫存器psw是一個用了比較多的暫存器,除了d1位空著外,其它的7位都要使用,其中d7位cy,是進(借)位,當做加法或減法時,進位標誌和借位標誌都是由它來表示.

當位和位之間相互傳送時也不能少了它,必須要經它中轉.d6位ac位是輔助進位標誌,當做加法或減法時由第四位向第五位進位或借位時,它會被置1.它也用於十進位制調整(da a).

d5位是使用者標誌位,當程式因某種原因"跑偏"後,使用者可以用它來標誌程式該從哪兒開始執行.不重複已經執行過的指令.

d4、d3位合在一塊兒,指明工作暫存器的組別,這主要用於比較複雜一些的程式,r0組暫存器不夠用的情況下用到r1、r2、r3組的暫存器時要用到這二位。

怎麼判斷正負吧。就是c位。考慮溢位-128-1微控制器的計算方法為先把1和128用補碼錶示為11111111b和10000000b。

相加得,01111111b=127正數c=0溢位0v=1,-128<1;127-(-1)表示為01111111b加00000001b=10000000b負數c=1溢位0v=1,127>-1;我也是剛看到。原來ov就是為有符號設計的當數暫存器值小於-127或大於128時候置位。

4樓:匿名使用者

cy位是累加器的進位、借位標誌。下文的敘述按16位機來舉例說明,如果是8位機或其它字長,則可換一個例子,但道理相似。

對於無符號數的運算,cy位就可以表示其是否溢位。但如果是有符號數,則不能按cy標誌來判斷了。為此,設了另一個標誌ov,其含義就是「假如是有符號數運算,是否出現了溢位」。

例如對於16位運算器,65534 + 3,(即二進位制的1111111111111110 + 0000000000000011),

本該得65537,(即二進位制的10000000000000001),但因為暫存器只有16位,最高位的那個1丟掉了(進入了cy標誌)。結果暫存器中只剩下了1,(即二進位制的0000000000000001)。

此時,我們可以說,16位的無符號數加法,65534+3溢位了,溢位後的答案成了1。

但是對於有符號整數,情況就不同了。有符號整數採用補碼錶示法。16位有符號整數不可能表示65534,此時如果機內二進位制是1111111111111110,程式中認為它是-2,故:

機內的二進位制的1111111111111110 + 0000000000000011,代表的是(-2) + 3。

請注意,此時的(-2)+3和上文的無符號數65534+3,在cpu的運算器硬體上完全相同,都是得到和為1,而cy標誌也為1。

但是,有符號數(-2)+3=1並無溢位。故此時的cy標誌不能代表它溢位了。

另外再舉一例:

無符號數32763 + 8 = 32771,沒有進位,cy標誌為0。此時並不溢位。

但是,如果是有符號數32763 + 8,這就是溢位了,因為32773的二進位制為1000000000000011,作為有符號數會被看成負數-32765。16位有符號數不可能表示32773的。

不管是有符號數還是無符號數,cpu的二進位制運算器機器加、減操作是一樣的,但其「溢位」的條件不同。

現在大多數的計算機中,如果是無符號數,都可以用cy標誌來判斷其是否溢位;而如果是有符號數,則需要用ov標誌來判斷其是否溢位。

至於ov標誌在邏輯上又是根據什麼產生的呢?則不同的計算機上有不同的實現方法,但效果都是一樣。

這裡介紹一種道理比較容易懂的方法:「雙符號位法」。具體是:

作加、減法前,先將兩個運算數都按照有符號數的規則擴充成17位。即:符號位是0的前面添一位0,符號位是1的前面添一位1。

然後按17位的機器加、減,得出17位的結果。

如果17位結果的高兩位(即雙符號位)不同,就置ov標誌為1,否則,ov標誌為零。

然後取其低16位作為最後結果。

微控制器中程式狀態字什麼作用?psw.2(ov):溢位標誌什麼意思?

5樓:生活如歌

51微控制器的psw(程式狀態字)暫存器包括了c,ac,rs1,rs0,ov,p等幾個狀態位,這些狀態位反映的是51微控制器在執行完某個指令後的狀態,比如有沒有進位,有沒有溢位,a中1的個數是奇數還是偶數個等。其中ov是溢位位,主要是想反映有符號數在執行時,是不是超出的最後的表示範圍,平時在無符號位運算時沒有會意思。ov是進位位與第二進位位異或的結果。

簡述mcs51微控制器中程式狀態暫存器psw各位的含義。

6樓:匿名使用者

51微控制器中psw是程式

狀態字 ,用來存放指令執行後的有關狀態。

(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」的個數為偶數

7樓:

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程式狀態字每位的位意義

8樓:藏在水中的人

位 7: cy:進位標誌。

當最後一次算術操作產生進位(加法)或借位(減法)時,該位置 1。其它算

術操作將其清 0。

位 6: ac:輔助進位標誌。

當最後一次算術操作向高半位元組有進位(加法)或借位(減法)時,該位置 1。

其它算術操作將其清 0。

位 5: f0:使用者標誌 0。

這是一個可位定址、受軟體控制的通用標誌位。

位 4-3: rs1-rs0:暫存器區選擇。

該兩位在暫存器訪問時用於選擇暫存器區。

rs1 rs0 暫存器區 地址

0 0 0 0x00-0x07

0 1 1 0x08-0x0f

1 0 2 0x10-0x17

1 1 3 0x18-0x1f

位 2: ov:溢位標誌。

該位在下列情況下被置1:

y add、addc 或subb 指令引起符號位變化溢位。

y mul指令引起溢位(結果大於 255) 。

y div 指令的除數為 0。

add、addc、subb、mul和 div 指令的其它情況使該位清 0。

位 1: f1:使用者標誌 1。

這是一個可位定址、受軟體控制的通用標誌位。

位 0: parity:奇偶標誌。

若累加器中8 個位的和為奇數時該位置 1,為偶數時清 0

9樓:藍貓警督

program status word

微控制器程式狀態字psw的ov位到底是怎麼判斷溢位的?有cy位不就夠了麼?

10樓:津人依夢趣談體育

微控制器程式狀態字psw的ov位是溢位標誌,當進行算數運算時,如果產生溢位,則硬體將ov置1,否則清0。執行有符號加、減法指令的時候,當d6位有向d7位的進位或借位時c6y=1時,而d7位沒有向cy位的進位或借位c7y=0時,ov=1或c6y=0,c7y=,1時,則ov=1。

溢位的邏輯表示式:ov=c6y⊕c7y。cy位是累加器的進位或借位標誌,對於無符號數可以用cy來判斷溢位,但是對有符號數就無法判斷了,所以只有cy位是不夠的。

psw各位的定義如下:

cy(psw.7):d7位,進位、借位標誌。進位、借位cy=1;否則cy=0.

ac(psw.6):d6位,輔助進位、借位標誌。當d3向d4有借位或進位時,ac=1;否則ac=0.

f0(psw.5):d5位,使用者標誌位;

rs1、rs0(psw.4及psw.3):d4、d3位,暫存器組選擇控制位;

ov(psw.2):溢位標誌。有溢位ov=1,否則ov=0;

f1(psw·1):d1位,使用者標誌位;

p(psw·0):奇偶校驗標誌位;累加器acc中的運算結果有奇數個1時p=1,否則p=0。

擴充套件資料

資料型別:

sfr也是一種擴充資料型別,佔用一個記憶體單元,值域為0~255。利用它可以訪問51微控制器內部的所有特殊功能暫存器。如用sfr p1 = 0x90這一句定p1為p1埠在片內的暫存器,在後面的語句中我們可以用p1 = 255(對p1埠的所有引腳置高電平)之類的語句來操作特殊功能暫存器。

初學者求解答 關於微控制器中斷程式

中斷函式當然不需要你去呼叫,中斷到了微控制器自然會呼叫他。什麼時候執行中斷?當然是滿足中斷條件的時候。如果沒達到中斷條件,自然是不會執行中斷服務函式。比如說定時中斷,他就是一個計數器在計數,計數到一定值時,就產生一箇中斷。你說你剛學可以理解,應該多找幾本相關的書看看,先把基本的概念瞭解下,比如中斷的...

關於微控制器彙編的十進位制調整指令,微控制器組合語言十進位制調整da

是不是做加法,凡是遇到上述情況都得修正?是bcd碼的加法,就必須修正。那為什麼我看到的某些加法運算沒有修正啊?那就不是bcd碼的加法。一般時,是用四位二進位制數,表示一位16進位制數 0 16 即0000 1111。bcd碼,是用四位二進位制數,表示一位十進位制數 0 9 即0000 1001。如果...

微控制器原理的參考文獻有哪些,急求關於微控制器的外文參考文獻五篇,不要具體內容,只要標題,作者,年份,型別等就可以了

1 李廣弟等 微控制器基礎 北京航空航天出版社,2001.7 2 樓然苗等 51 系列微控制器設計例項 北京航空航天出版社,2003.3 3 唐俊翟等 微控制器原理與應用 冶金工業出版社,2003.9 4 劉瑞新等 微控制器原理及應用教程 機械工業出版社,2003.7 5 吳國經等 微控制器應用技術...