1樓:匿名使用者
影響p標誌位?任何可能影響累加器內容的指令都會影響p標誌位......
影響cy標誌位的指令有
add、addc、anl、cjne、da、div、mul、orl、rlc、rrc、subb。
2樓:匿名使用者
這兩個位只有在特定的情況才會起作用,比如add,8,9就不會影響cy,如果add ff,9,就會有影響,所以弄清楚位的具體含義就可以
51微控制器中的進位標誌位cy的問題。
3樓:匿名使用者
在進行add之前,cy=1,進行add或者addc過程中,最高位加完以後沒有進位,那麼結果是cy繼續保專持屬1還是cy會被置0?
如果運算完後最高位沒有進位,cy會被置0,因為add或者addc命令的執行會影響cy,有進位就置1,無進位就置0,跟cy的初值無關。ac也是一樣,執行完命令後ac的狀態和ac的初值無關。其實與其上來發帖問,不如你自己寫兩行**執行一下,結果一目瞭然,yyh001123的回答是錯誤的。
4樓:匿名使用者
進位標誌,有進位或借位時,cy=1,否則cy=0。
5樓:愛玩的丁當
呵呵,keil c 裡就可以除錯,寫段**,步進跟蹤,監視暫存器,自己實踐出來的結果印象比較深刻
微控制器中的cy和ov要怎樣理解啊,能否舉例子
6樓:在南牆的謊
cy(carry): 用於表示加法進算中的進位和減法運算中的借位,加法運算中有進位或減法運算中有借位則cy位置1,否則為0
ov: 表示運算過程中是否發生了溢位,若運算結果超過了8位二進位制數所能表示資料的範圍即有符號數-128~+127,則標誌位置1。
對無符號數的運算,判斷只需cy即可,ov無作用。
對有符號數的運算,ov位是有用的。「ov位是c6位進位與c7位進位的異或」,說法對的(對51微控制器而言),但不同的計算機說法不一
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位作為最後結果。
7樓:匿名使用者
51微控制器中的進位標誌位cy,在進行add之前,cy=1,進行add或者addc過程中,最高位加完以後沒有進位,那麼結果是cy繼續保持1還是cy會被置0?
如果運算完後最高位沒有進位,cy會被置0,因為add或者addc命令的執行會影響cy,有進位就置1,無進位就置0,跟cy的初值無關。
一、加法指令
1、不帶進位加法指令
工作暫存器、內部ram單元內容或立即數的8位無符號二進位制數和累加器a中數相加,所得和存放於累加器a中,當和的第3、7位有進位時,分別將ac,cy標誌位置1;否則為0。 上述指令的執行將影響標誌位ac、cy、ov、p。
對於無符號數,進位標誌位cy=1,表示溢位;cy=0表示無溢位。帶符號數運算的溢位取決於第6、7位中有一位產生進位,而另一位不產生進位,溢位標誌位ov置「1」否則被清「0」。ov=1表示兩個正數相加,和變為負數,或兩個負數相加,和變為正數的錯誤結果。
2、帶進位加法指令
將累加器a內容加當前cy標誌位內容,再加無符號單位元組的數,和存於累加器a中。當運算結果第3、7位產生進位溢位時,則分別置位ac、cy和ov標誌位。本指令執行將影響標誌位ac、cy、ov、p。
二、減法指令
1、帶借位減法指令
帶借位減法指令subb,從累加器a中減去進位標誌位cy和指定的變數,結果在累加器a中,若第七位有借位,則置位位cy,否則cy清0。若第3位有錯位,則置位輔助進位標誌ac,否則清0 ac。若第7和第6位中有一位需借位,而另一位不借位,則置位溢位標誌ov。
溢位位ov用於帶符號的整數減法,它表示(ov=1)一個正數減負數結果為負數;或一個負數減正數結果為正數的錯誤結果。
三、乘法指令
本指令將累加器a和暫存器b中二個8位無符號整數進行相乘,16位乘積的低8位存於a中,高8位存於b中,如果乘積大於255(0ffh),即b的內容不為0時,則置位溢位標誌位ov,否則清「0」ov。進位標誌位cy總是清「0」。
四、除法指令
本指令將累加器a中8位無符號整數除以b暫存器中8位無符號整數,所得結果商的整數部分存於a中,整數作數部分存於暫存器b中。清「0」cy和ov標誌位。當除數(b中內容)為00h時,則執行結果將為不定值,即執行結果送往a和b中的為不定值,且置位溢位標誌位ov。
在任何情況下,均清「0」cy。
51微控制器cy位與彙編cf位的區別
8樓:匿名使用者
51微控制器cy位即psw.7,是51微控制器算數運算中的進位借位標誌,根據算數運算結果由系統置位或復位,回也可以程式設計答置位或復位。置位指令為:setb c;復位指令為clr c。
51微控制器中沒有cf位,所以區別是無從說起的。
9樓:尚雲社
51單片進行有符號數的運算時,符號位要反過來判斷,即:cy = 0,表示有借位/進位
微控制器的CY位有什麼作用,微控制器中CY是什麼意思,舉個例子說說
微控制器的 復cy位簡介 微控制器制cy carry 用於表示加bai法進算中du的進位和減法運算中的借位zhi,加法運算中有dao進位或減法運算中有借位則cy位置1,否則為0。cy位是累加器的進位 借位標誌。對於無符號數的運算,cy位就可以表示其是否溢位。但如果是有符號數,則不能按cy標誌來判斷了...
微控制器中psw暫存器標誌位,微控制器中psw暫存器標誌位
ov是溢位位,主要針對有符號數,加減時最高位和次高位中有且僅有一個專產生進位或屬借位,代表結果超出有符號數的範圍,單位元組就是 128 127 cy是進位,主要針對無符號數。代表結果超出無符號數的範圍,單位元組就是0 255 89c51微控制器的psw暫存器各位標誌的意義是什麼?單片來機內部的特殊寄...
51微控制器P2口作為高8位地P0口分時作為低8位地址線和雙向
相同點 既可以作為通用i o口進行資料輸入輸出,也可以作為微控制器地址資料線使用內。不同點 p0口作為i o輸出時容,是漏極開路電路,必須外接上拉電阻才能有高電平輸出,而p2口內部本來就有上拉電阻,不需要再接上拉電阻。p1口為準雙向口,作用輸入。p2口也為準雙向口,但是可以作為擴充套件系統的地址a1...