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

2023-05-10 21:25:19 字數 3849 閱讀 7205

1樓:

psw:程式方式字暫存器。

第零位:奇偶校驗位p(如果累加器a裡1的個數是單數,p=1,否則p=0)

第一位:f1使用者自定義位1(由使用者自行設定)

第二位:ov溢位位(當帶符號數的運算結果超過-127~128時或無符號數乘積大於255及除數為0時,ov置。

一)第三位rs0第四位rs1是資料暫存器選擇位。

rs0=0,rs1=0時 選擇第0組,r0-r7的地址是00h-07h.

rs0=1,rs1=0時 選擇第1組,r0-r7的地址是08h-0fh.

rs0=0,rs1=1時 選擇第2組,r0-r7的地址是10h-17h.

rs0=1,rs1=1時 選擇第3組,r0-r7的地址是18h-1fh.

第五位:ac半進位位。第三位向第四位有進位或借位時置一,常用於十進位制調整指令或八進位制運算。

第六位:f0使用者自定義。

第七位:cy進位標誌。由進位或借位時置一。

你的程式中:

mov a.#7fh

add a.#47h

結果為a=c6h=11000110b

1有4個,雙數,所以第零位:p=0;

f0=rs1=rs0=f1=0不變;

相加的過程中,第四位向第五位有進位。所以ac=1;

第七位:cy無溢位,所以為0

2樓:譙喜憑爾陽

樓上兩位朋友說的不正確,雖然mov

a這種用法是不可以的,但很多編譯器仍然可以編譯的!

當然,編譯的結果你可以自行分析一下。

你說的不能編譯的關鍵,可以是你的註釋不正確,按照下面的方法處理。

請將註釋前面的冒號「:」全部替換為半形的分號「;」就行了。

以下是為幫你替換好了的程式,而且已經用偉福編譯器編譯通過!

movtmod,#10h

工作方式選擇為一內部脈衝。

setbtr1

將tr1置一。

movth1,#00h

初始值。mov

a,tf1;定時間到溢位放到阿中。

a放到皮一點零中去。

ret;迴圈。

end;完。

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

3樓:做而論道

如果(a)=7ah,psw是不可能等於80h的,其末位數p,一定是1,所以psw不可能是偶數。

按照給定條件,執行了subb指令後:

a)=d4h,cy=1,ac=0,ov=1。

計算機按照二進位制的規則進行計算,d4h,就是7ah-a5h-1的結果。

至於結果是「無」符號數,還是「有」符號數,是「正」,是「負」,人類的解釋是多種多樣的。

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

怎麼使用微控制器程式狀態字中的第一位p

4樓:匿名使用者

有本課程叫「數位電路」的不知道你有沒有學過,應該是靠內部的邏輯電路,和數字時鐘,形成脈衝,來執行的。具體的你只有看數位電路,和類比電路才會明白。

5樓:網友

累加器8位值中1的個數是偶數p=0,否則=1

51微控制器 為什麼執行增1指令後不影響程式狀態字中的標誌位

6樓:匿名使用者

inc指令不影響程式狀橡指態字中的標誌位,沒有為什麼,微控制器發明悄如衫者規定的,要是練習編啟腔程的話,記住就可以了。

7樓:匿名使用者

你需要看哪個狀態位呢,一般沒有超過256的話就不會出現溢位。進位看你定義的變數型別的。

程式狀態字psw與微控制器的哪些操作有關

8樓:匿名使用者

你所說的微控制器是指51核心的微控制器麼?如果是,則與位元組進/退位(cy),半位元組進/退位(ac),暫存器組選擇(rs0,rs1),運算結果溢位(ov),運算結果奇偶個數(p)有關,另外,還有psw第五位,不同型號的微控制器對此有不同定義。

關於微控制器的幾個問題!

9樓:

這個很複雜 一言難盡 可以找個微機原理資料看看 若找不到 再聯絡我。

希望能幫到你。

10樓:網友

這些東西說也說不好,建議你去隨便買本書,上面都有介紹~筆你在這裡找答案好多了。

11樓:匿名使用者

給500分,看有人給你弄不。

12樓:匿名使用者

你這幾個問題夠寫一本書啦。

微控制器程式問題 50

13樓:匿名使用者

mov psw ,#00h;這句是對特殊暫存器psw初始化,也就是送00h到這個暫存器了,這個暫存器中八位由高到低分別是cy(進位標誌),ac(輔助進位標誌),f0(使用者標誌位),rs1,rs0(這兩為當前工作暫存器組選擇位),ov(溢位標誌位),-空),p(就標誌位,存與acc中的運算結果由奇數個1時為1,否則為0)

mov 21h,#58h;把立即數58h送入21h單元,mov 11h,#85h;同上一句。

clr 0bh,;你這句時錯誤語句,clr運算元不能為地址單元!!!

mov r1,21h;將21h單元數值2送入暫存器r1中setb rs1;rs至1選擇當前暫存器組狀態mov a,r1;將暫存器r1中的資料送入累加器a中執行結果為。

21h單元中值為58h

11h單元中值為85h

r1中值為58h

rs1為1累加器a中的值為58h

如果由什麼疑問可以繼續交流!!

14樓:匿名使用者

rs1是暫存器區選擇控制位,和rs0一起選擇當前工作暫存器區,你是想把58h這個資料送到累加器吧,但是。

setb rs1改變了當前的工作暫存器區,mov a,r1中的r1是第二區的r1,資料是不確定的,因此mov a,r1累加器得到的也是一個不確定的值。

15樓:牛頓斯坦

mov psw ,#00h ;程式狀態字暫存器清零mov 21h,#58h ;把58h這個立即數放入地址為21h的儲存單元。

mov 11h,#85h ;同上。

clr 0bh ;將0bh這個儲存單元內的數值清零;

mov r1,21h ;將58h這個數放入r1中setb rs1 ;rs1是什麼???不知道。setb是置位。

mov a,r1 ;再把r1裡面的東西放到累加器不知道你要什麼結果?

16樓:東方玉花弘胭

源程式發出來吧。。。

學這些技術去凡窩技術論壇看看吧。。

有很多教程和工具。

都很安全。樓主去哦。。

關於微控制器的考試問題

17樓:匿名使用者

30、序列 31、cy(進借位位) 32、序列資料傳送 33、迴圈34、pop direct 35、reti 36、立即數定址 37、暫存器間接定址 38、t0(th0\tl0) 39、here:jnb tf0/tf1 here 41、沒有16位的定時器,不過有一個可以當做16位的定時器用位元組(其中00~7f用於ram,80~ff用於特殊更能暫存器~7f區間內位 45、movc 46、定時中斷或外部中斷 47、p^11 49、dptr 50、ea\esa8h-24h-1 53、 54、ac或cy 55、**這不太清楚是什麼方法,不過你開啟軟體我可以告訴你在哪可以觀察到 56、ajmp57、終端的入口地址 58、程式自動完成的吧 21、sp指向07h、pc為00h、i/o口內容為1 59、模式2(自動重灌載8位)60、第二區(08~0f)

關於微控制器,關於微控制器的

對呀,這個問題確實不好解釋.不過我以mcs 51系列的微控制器為例為你解答吧 mov 就是內部儲存器間的傳送指令 例如 mov a ro movx 就是外部儲存器向內部傳送的指令 例如 movx a 2001h movc 就是程式儲存器間傳送指令 還有 add加法指令 dec減一指令 muc乘法指令...

關於微控制器中的jc指令,關於微控制器中的JC指令

閣下首先搞清楚cjne a,25,1的含義,它的含義有三點 1.當a等於25時,執行下一句 2.當a不等版於25時,跳轉到權ne1語句執行 3.要注意當a不等於25時,a必定大於25或者小於25,如果a小於25,則不僅要跳轉到ne1執行,還要給cy標誌位置一,如果a大於25,則僅僅要跳轉到ne1執行...

關於微控制器io口的高阻態問題,51微控制器的IO口怎麼設為高阻態

輸出沒有高阻態,輸入有,輸出是推輓 上拉,不要搞錯了 高阻態意味著從外部看,電阻很大,近於懸空 51微控制器的i o口怎麼設為高阻態 普通51微控制器的io口無法設定為高阻態。stc微控制器可以設定為高阻態,通過改變pnm0和pnm1的值來設定其狀態。當pnm1 pnm0 10時對應的io即為高祖態...