在內部RAM中有幾組工作暫存器,可如何選用程式狀態字PSW的相關控制元件位來使用暫存器

2021-05-06 00:02:24 字數 5963 閱讀 6892

1樓:

51微控制器的片內ram中有4組暫存器,位於片內的00h~07h、08h~0fh、10h~17h、18h~1fh,一共四組。

工作暫存器組的選擇,是根據psw的rs[1:0](psw[4:3])來選擇的。例如rs[1:0] = 10時選擇就是regbank2,即r0~r7對映在10h~17h上。

好好學習天天向上

51系列微控制器如何實現工作暫存器組ro~r7的選擇?開機復位後,cpu使用的是哪組工作暫存器?他們的地址是多 5

2樓:匿名使用者

mcs-51微控制器設

bai置4組工作寄存du器,由程式狀態字psw中rs1,rs0決定zhi,

0組:dao

內00h-07h

1組:08h-0fh

2組:10h-17h

3組:18h-1fh

開機復位後,cpu使用第容0組。地址為 00 01 02 03 04 05 06 07。在彙編中一般用r0 ~ r7暫存器定址方式使用它們,這種暫存器定址方式要快於以上的直接定址方式,並且比較好記。

3樓:匿名使用者

51單片

抄機有4組ro~r7工作暫存器bai,程式執行中具體使用哪一組du由程式狀態字psw的zhirs1及rs0(psw.4及psw.3)決定,可以設定這兩位來選dao擇暫存器組。

開機復位後,由於psw=00h,所以使用的為第0組暫存器。只要在程式執行過程中不對psw的rs1及rs0位進行設定,暫存器組就不會切換。至於它的具體地址如下:

0組:00h-07h;1組:08h-0fh;2組:

10h-17h;3組:18h-1fh 。一般會在發生中斷時切換暫存器組,這樣雖然暫存器的編號不變,但是定址的暫存器組改變了,所以不會改變中斷之前的程式中的暫存器值,但是中斷程式結束時一定要記住把暫存器組切換回來。

一定要注意當切換暫存器組後,雖然還是用ro~r7,但是其實體地址已經改變,所以是不同的暫存器。另外,如果程式沒有切換暫存器的必要的話,其它組的ro~r7也可用作通用暫存器,這樣可用其實際地址定址。

89c51的程式狀態字暫存器psw是一個8位的專用暫存器,用於存程式執行的各種狀態資訊? 對還是錯啊?

4樓:吳勇一家人

對的!!

下面是介紹:

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。此標誌位常用於序列通訊中的奇偶校驗。

微控制器 程式狀態字psw對應的工作暫存器

5樓:莫名

psw : 程式狀態暫存器 program status word

cy | ac |f0 | ps1 ps0 | ov | — | p

cf | af |自定 |工作暫存器組選擇 | of | | pf

r0 ~ r7

ps1 ps0: 00 工作暫存器組0 00h ~ 07h

01 工作暫存器組1 08h ~ 0fh10 工作暫存器組2 10h ~ 17h11 工作暫存器組3 18h ~ 1fh

6樓:匿名使用者

rs0=1、rs1=1 區4 r0 18h、r3 1bh

若mcs-51微控制器的程式狀態字psw中的rs1,rs0=11,那麼工作暫存器r1的直接地址為( )

7樓:

rs1,bairs0=11,即工作暫存器du3組(rs1,rs0的作用就是決zhi定使用哪一組工作暫存器dao)

r1的地版址即為19h

0組:權00h-07h

1組:08h-0fh

2組:10h-17h

3組:18h-1fh

這是硬體結構決定的,沒有什麼「解題步驟」。

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

8樓:津人依夢趣談體育

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

9樓:匿名使用者

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

10樓:匿名使用者

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

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

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

11樓:做而論道

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

----

溢位,是cpu判斷的。

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

若mcs-51微控制器的程式狀態字psw中的rs1,rs0=11,那麼工作暫存器r0-r7的直接地址為多少

12樓:螞蟻叼骨頭

它不是分為四組嗎:00,01,10,11. 你的11也就是第四組咯

13樓:

18h-1fh 每本51微控制器書都有

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

14樓:匿名使用者

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

梁山五虎將在內部的先後排序是怎樣的

梁山五虎將內部也有著排名,並不是五虎將的實力都是完全相當的,比方說大刀關勝就要比其他四位強一些,然後就是林沖,秦明,呼延灼,而董平雖然長得很帥,但是武力卻是他們五位當中墊底的,但總體來說五虎將都是相當的強悍,在梁山上可以說是僅次於盧俊義的存在。大家都知道,水滸傳 和三國時期的蜀國一樣,同樣也有著五虎...

用包括在內的造句,用在裡在中造句?

1 我們小組這次考得很好,包括一直狀態不佳的小李在內都取得了前七名的好成績。2 這次參加春遊的同學包括我在內的同學有十二人。3 隨著後和消費的來臨,包括在內的休閒活動也被徹底地裹挾進大眾消費之中。4 如果中國國際儲備中持有的非 債券包括在內的話,美國欠中國的錢已經 超過了2萬億。5 一些健身房每月收...

資料包在經過路由器時,儲存在哪,是在RAM中嗎

路由器的工作原理是儲存並 而且路由器只有記憶體,所以顯而易見,資料包是儲存在記憶體裡的,目前記憶體都是動態ram的,最好的證明就是,如果給路由器斷電,再通電,那麼斷電前的資料包將全部丟失 儲存在nvram中.路由器由哪幾部分組成,簡要說明一下各部分的作用?路由器的組成大致可以分成兩部分 內部構件和外...