學微控制器學得很模糊,什麼情況下用得到PSW暫存器中的CY位

2021-03-27 18:55:53 字數 6550 閱讀 5271

1樓:匿名使用者

add subb div mul 等都可以影響到psw的cy位,至於什麼時候得到,隨時都可以,你任何時候想知道cy都可以隨時訪問。訪問指令如:

jcjnc

2樓:珠山龍少

程式狀態字暫存器psw是一個8位暫存器,用於存放程式執行中各種狀態資訊。其中,f0\rs1\rs0可以由使用者自己程式設計設定,其他位的狀態是根據程式執行結果,由硬體自動設定的。

cy:進位標誌,是psw中最常用的標誌位

功能有二:

一、存放算術運算的進位標誌,在進行加減運算時,若操作結果的最高位有進位或借位,則自動置1,否則為0。

二、在位操作中,作位累加器c使用。

因此可以根據cy進行數值大小的判斷、或者跳轉。

89c51微控制器的psw暫存器各位標誌的意義是什麼?

3樓:匿名使用者

單片來機內部的特殊寄源存器,程式狀態功能暫存器(psw), psw.7 psw.6 psw.

5 psw.4 psw.3 psw.

2 psw.1 psw.0cyacf0rs1rs0ov pp:

累加bai器a的奇偶校驗位

du;p=0,a為偶數;p=1,a為奇數;ov:溢位標zhi志位,對有符號的數dao(-127~128)操作時,超過有效值(-127~128)時ov=1;在有效值內ov=0;rs0.rs1:

暫存器組選擇位,一共有四組r0~r7;f0:使用者定義標誌位,可清零或至一,用做判別(你自己喜歡怎麼用都行);ac:半進位標誌位,低四位向高四位進或借位時ac=1,否則ac=0;cy:

進位標誌,在最高位有進位(做加法時)或借位(減法時),cy=1;否則cy=0;

4樓:珠山龍少

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

5樓:做而論道

看看抄百bai度百du科zhi

微控制器 特殊功能暫存器 如 psw 的cy位,在ram中佔用一位元組還是1bit

6樓:做而論道

微控制器 特殊功能暫存器 psw,是八位的。

即一個位元組。

cy,是其中的一個位。

特殊功能暫存器,雖然是ram,但是,

它並不屬於片內ram。

7樓:匿名使用者

佔一位,c51微控制器的psp暫存器

微控制器中psw暫存器標誌位 20

8樓:匿名使用者

ov是溢位位,主要針對有符號數,加減時最高位和次高位中有且僅有一個專產生進位或屬借位,代表結果超出有符號數的範圍,單位元組就是-128~127;

cy是進位,主要針對無符號數。代表結果超出無符號數的範圍,單位元組就是0~255;

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

9樓:津人依夢趣談體育

微控制器程式狀態字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埠的所有引腳置高電平)之類的語句來操作特殊功能暫存器。

10樓:匿名使用者

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位作為最後結果。

11樓:匿名使用者

cy(carry): 用於表示加法進算中的進位和減法運算中的借位,加法運算

中有進位或減法運算中有借位則cy位置1,否則為0

ov: 表示運算過程中是否發生了溢位,若運算結果超過了8位二進位制數所能表示資料的範圍即有符號數-128~+127,則標誌位置1。

12樓:做而論道

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

----

溢位,是cpu判斷的。

發生了溢位,cpu就令ov=1。

51微控制器 位累加器cy 和psw的cy 是一回事麼?它和累加器a一樣用麼?通俗點,詳細點講下!謝謝!

13樓:無線開發工程師

psw的cy是進位標誌,表示當前的運算是否產生了進位

14樓:匿名使用者

是同一個, 對位操作的累加器, 你可以去看一下布林處理機是怎麼工作的

微控制器中的psw計算

15樓:豐鎮北極星

psw被稱作程式狀態寄bai存器,du用於記錄指令的執行狀zhi態。

d7:daocy 進位

標誌,如果累加器a最高位專

有進位,cy置屬1否則為0;

d6:ac輔助進位標誌,又叫半位元組進位標誌,即a的d3位有進位時ac置1,否則為0;

d5:f0使用者標誌位,供使用者使用的軟體標誌;

d4d3:rs1 rs0這兩位用於工作暫存器區的選擇;

d2:保留位,也可以用作使用者標誌位f1;

d1:ov溢位標誌位;

d0:p奇偶標示位。

那麼對應填入相應的值就可以得到psw的結果了。10000010

微控制器的psw是什麼?

16樓:蘇嘉愛娛樂

程式狀態暫存器psw。

程式狀態暫存器是計算機系統的核心部件——運算器的一部分,psw用來存放兩類資訊:一類是體現當前指令執行結果的各種狀態資訊,如有無進位(cy位),有無溢位(ov位),結果正負(sf位),結果是否為零(zf位),奇偶標誌位(p位)等。

另一類是存放控制資訊,如允許中斷(if位),跟蹤標誌(tf位)等。有些機器中將psw稱為標誌暫存器fr(flag register)。

51微控制器的psw是一個8位暫存器,用來存放指令執行後的一些的狀態,通常由cpu來填寫,但是使用者也可以改變各狀態位的值。

擴充套件資料

微控制器技術的開發:

1、cpu開發。開發微控制器中的cpu匯流排寬度,能夠有效完善微控制器資訊處理功能緩慢的問題,提高資訊處理效率與速度,開發改進**處理器的實際結構,能夠做到同時執行2-3個cpu,從而大大提高微控制器的整體效能。

2、程式開發。嵌入式系統的合理應用得到了大力推廣,對程式進行開發時要求能夠自動執行各種指令,這樣可以快速準確地採集外部資料,提高微控制器的應用效率。

3、儲存器開發。微控制器的發展應著眼於記憶體,加強對基於傳統記憶體讀寫功能的新記憶體的探索,使其既能實現靜態讀寫又能實現動態讀寫,從而顯著提高儲存效能。

17樓:生活如歌

psw:程式狀態字暫存器,

psw各位定義:

psw.7 psw.6 psw.

5 psw.4 psw.3 psw.

2 psw.1 psw.0

cy ac f0 rs1 rs0 ov — p

程式狀態字暫存器psw是一個8位暫存器,用於存放程式執行中各種狀態資訊。其中,f0\rs1\rs0可以由使用者自己程式設計設定,其他位的狀態是根據程式執行結果,由硬體自動設定的。下面分別介紹。

cy:進位標誌,是psw中最常用的標誌位

功能有二:

一、存放算術運算的進位標誌,在進行加減運算時,若操作結果的最高位有進位或借位,則自動置1,否則為0。

二、在位操作中,作位累加器c使用。

ac:輔助進位標誌

在加減運算時,低4位向高4位進位或借位時,自動置1,否則為0。在bcd碼調整中也要用到ac位的狀態。

f0:使用者標誌位

使用者可以程式設計對這個標誌位置位或復位,使用最為靈活,常用作資料收發標誌或準備好的標誌。

rs1&rs0:暫存器組選擇位

選擇cpu當前使用的工作暫存器組,微控制器中共有四組工作暫存器,每次上電或復位後rs被置0,使用者可以程式設計選擇當前工作暫存器,達到保護某一區r0~r7中資料的目的。

ov:溢位標誌位

在帶符號的加減運算中,若運算超出了累加器a所能表示的符號數的有效範圍(-128~127),則自動置1,表示產生了溢位,說明運算結果是錯誤的。否則為0。

乘法運算中,ov=1表示乘積超過255,即乘積分別在a和b中;否則為0,表示乘積只在a中。

除法運算中,ov=1表示除數為0。

p:奇偶標誌位

表明累加器a中資料的奇偶性。若a中有奇數個「1」,則自動置1,否則為0。此標誌位常用於序列通訊中的奇偶校驗。

和的用法,在什麼情況下用什麼情況下用

何 什麼時候讀 什麼時候讀 1 讀 的場合 a 做主語時,主要放在 之前。如 何 何 b 做賓語時,主要放在 之前。如 何 2 讀 的場合 a 做謂語時。如 何 b 做定語時 主要放在 之前 如 何 c 合成詞中。如 何曜日 何時 何年 何月 何日 何人 等等 補充 下接 行假名時,音便為 文例 無...

什麼情況下用護套線,什麼情況下用護套線

護套線就是互相絕緣的幾根線預先就套在一塊的線,就是把幾條已經有漆皮的西線再包在一起而已,護套線一般是用在房頂 通常使用復 的照明線路用電制 線一般有塑料絕緣線和塑料護套絕緣線,護套線是三根芯線或兩根芯線,其中芯線的作用想必你是知道的,這裡不再表述。塑料護套線因為外面有一層塑料保護層,所以不用於穿管,...

在c語言中什麼情況下用 什麼情況下用

是賦值。是比較。你可以看看譚浩強寫的 c語言程式設計這本書 對於初學者很好的,很多大學都用這個教材。希望能夠幫到您!是賦值符號,相當於彙編中的mov,是邏輯判斷符號,表示相等,為不等,相當於彙編中的cjne。是賦值,是判斷,的結果只有2個,一個是0,一個是1.而 只是給它前面的那個變數臨時給一個數值...