微控制器簡單問題

時間 2022-10-05 10:35:27

1樓:匿名使用者

先回答第一個問題

cy稱作溢位標誌,他是在運算時發生溢位時產生的標誌,主要是在算術運算中使用,加法時是進位置1,減法時是借位時置1

剩下問題

都指的是最高位,兩次運算之間對cy的結果沒有影響

注意的是,cy是設計加法電路產生的,而加法電路的設計主要是利用數字邏輯電路設計,因此,兩次加法對cy的作用不會重疊,而是各自作用的

我也補充一下回答,cy和ov都是溢位標誌,但是是不同的,簡單的說,前者是不帶符號數的運算產生的進位,而後者則是帶符號數的運算的進位

在微控制器中,這兩個標誌主要是在加法和減法中運用最廣,就以加法為例說明它們的區別吧

對於微控制器而言,其內部採用的是加法電路,運算元都用反碼,而沒有正負之分,因此只要發生進位,cy就置1,這樣,聯合cy和計算結果就能得到正確的和;

但是實際中常要用帶符號數,而僅僅採用cy的進位顯然得到的加法結果是不正確的,比如兩個正數相加結果就可能是負數(最高位判斷正負號,如01111111+00000011=10000010),可以看到還要用除去符號位的最高位的進位資訊來提供校正,ov的定義就是當最高位和次高位進位的異或(?你自己用數位電路分析吧)

無論是加法和減法都是一致的,微控制器只提供結果的後八位,而正確的結果要利用ov和cy來校正,比如要用微控制器做一個計算器,即必須自己設計這個校正程式,以得到正確的結果了。並且與微機不同的是,微控制器內都是運算元的概念,而不是微機裡的數都是用補碼錶示,微控制器內部採用什麼碼是由設計著決定的,因此十分靈活,既帶來了方便,也引入了一些困難的地方,但是隻要細心注意是不難解決的

2樓:

cy是專門對累加器a而言的,而對a進行的邏輯運算,mov ,inc等運算不影響cy

3樓:匿名使用者

cy作為進位或者借位標誌使用,也可以作為一般功能使用。

在加法時,只要相加得到的數值大於255時就會發生進位,cy=1,比如在開始時cy=0,a=11111111b,即a=255,如果執行add a,#2,結果應該是257(100000001),但這時a=00000001b,cy=1,即發生了進位。如果把cy和a的數值組合起來正好就是 100000001b=257.

減法時被減數小於減數就會發生借位,比如cy=0,a=01h,執行subb a,#02h,即1-2=-1,執行之後a=11111111b=255(或者有符號數-1),cy=1表示有借位。

注意:inc和dec不影響cy。

4樓:匿名使用者

位7有進位,則置一進位標誌cy,否則清零。

對,如果下一個運算沒進位就清零。

在減法運算中,位7需要借位則置一cy,否則清零cy。

下面看兩個例子就知道了

mov a,#0c9h

mov r2,#54h

setb cy

subb a,r2

sjmp $

retend

在左邊的側欄中單擊psw前面的加號就可以檢視cymov a,#53h

mov r0,#0fch

clr cy

add a,r0

sjmp $

retend

祝你好運!

微控制器問題

很同情你,你們微機原理學過吧,學過就不是很難啊主要是看通用暫存器的組成和程式設計還有中斷下面的看一下就會了,內容不多 4 微控制器的地址空間,地址範圍,訪問方法 5 微控制器的位定址空間範圍和操作方法 6 微控制器各地址空間的資料傳輸方法 原理稍微看下就行了 pwm就放棄吧 再把課後題的選擇做一做 ...

關於微控制器的一點問題,微控制器的問題

入門的話 最好選擇51微控制器,簡單!網路資源豐富,例程也多,只要感興趣加上堅持。這些功能都能實現。你提的第一個問題51微控制器就可是實現,定時的話微控制器裡面有定時器功能,設定好相應的時間就可以控制燈亮滅,手動控制的話,用按鈕接微控制器io口來控制燈泡亮滅。第二個問題就有點難度了,像你那樣的要求也...

微控制器問題求解

宇宙跳躍 1.1 mov a,r1 mov r2,a 1.2 mov dptr,9000 movx a,dptr mov dptr,8000 mov dptr,a 1.3 mov a,20h jnz loop 1.4 mov a,20h cjne a,21h,3 jc nummax mov p?20...