導航:首頁 > 操作系統 > 單片機減法指令常見問題

單片機減法指令常見問題

發布時間:2023-07-27 22:45:08

⑴ 關於單片機SUBB帶借位減法指令!

是這樣的。SUBB的每條指令的執行周期為一個周期數。它會對PSW中的標志位Cy、AC、OV產生影響。當減法有借位時,則Cy=1;否則,Cy=0.若低4位向高四位有借位時,AC=1;否則,AC=0;進行減法運算時,最高位與次高位不同時發生借位,則0V=1,否則,0V=0。不知能否幫到你。

⑵ 單片機的帶借位減法

單片機中用到帶借位的減法是為了進行多位元組的減法運算,在進行高位位元組運算時,要同時減去低位位元組的借位,以得到正確的結果。
如果cy=1,SUBB
#09H,#05H
結果是03H
不是很正確噢
首先你的指令是非法指令,計算機、單片機中的立即數是不能做目的操作數的,目的操作數是要保存結果的,而立即數是不能保存結果的。
要想完成你的運算想法,應該寫成如下形式:
MOV
A,#9
SETB
C
SUBB
A,#5
即執行後:
(A)-5-cy=9-5-1=3
結果為03H是正確的。
在進行最低位元組的減法運算時,即剛開始做減法,還沒有產生借位,應在運算前使cy=0

CLR
C
MOV
A,#DATA1
SUBB
A,#DATA2
執行時,
(A)-DATA2-cy=DATA1-DATA2-0
呵呵
滿意
就選滿意回答

⑶ 在80C51單片機裡面,半進位標志位AC在加減運算裡面是按照有符號數還是無符號數來設置標志位

一、加法指令
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單片機匯編語言中DEC指令問題:如果30H中為#00H,執行DEC 30H後,30H地址單元中是什麼

30H中為#00H,執行DEC 30H後,30H地址單元中是什麼?
-------
0000 0000減一後是1111 1111,也就是0FFH,也就是255。
DEC 30H 指令不影響標志位,所以Cy、OV、Ac和P,都不變。
只有運算功能的指令、比較指令影響標志位,INC/DEC 指令是不影響標志位的。
呵呵

⑸ 關於單片機帶借位減法指令

51單片機中帶借位減法指令為:SUBB,使用該指令時一定要首先處理借位Cy,不然容易出錯,得出與理想不一樣的結果。比如:
MOV A,R2
SUBB A,R3
以上指令運行後,將的出不確定的結果,正確的處理方法為:
CLR C
MOV A,R2
SUBB A,R3

⑹ 單片機的帶借位減法

單片機中用到帶借位的減法是為了進行多位元組的減法運算,在進行高位位元組運算時,要同時減去低位位元組的借位,以得到正確的結果。x0dx0a如果cy=1,SUBB #09H,#05H 結果是03H 不是很正確噢x0dx0a首先你的指令是非法指令,計算機、單片機中的立即數是不能做目的操作數的,目的操作數是要保存結果的,而立即數是不能保存結果的。x0dx0a x0dx0a要想完成你的運算想法,應該寫成如下形式:x0dx0a MOV A,#9x0dx0a SETB Cx0dx0a SUBB A,#5x0dx0a 即執行後: (A)-5-cy=9-5-1=3x0dx0a結果為03H是正確的。x0dx0a x0dx0a在進行最低位元組的減法運算時,即剛開始做減法,還沒有產生借位,應在運算前使cy=0x0dx0a即 CLR Cx0dx0a MOV A,#DATA1x0dx0a SUBB A,#DATA2x0dx0a 執行時, (A)-DATA2-cy=DATA1-DATA2-0x0dx0a x0dx0a 呵呵 滿意 就選滿意回答

閱讀全文

與單片機減法指令常見問題相關的資料

熱點內容
android滑動進度條 瀏覽:833
javagmt轉換 瀏覽:824
linux查看snmp 瀏覽:22
ug80車床編程 瀏覽:514
怎麼加速python計算素數 瀏覽:238
腰椎第五節壓縮性骨折 瀏覽:89
程序員開會的句子 瀏覽:990
用哪個app寫編程 瀏覽:643
android通訊錄增刪改查 瀏覽:727
車貸解壓過戶可以同時進行嗎 瀏覽:917
java面向對象編程題目 瀏覽:876
二次元壓縮包 瀏覽:698
stc模擬器編程器 瀏覽:155
伺服器銷售怎麼做好 瀏覽:87
什麼是com編程 瀏覽:848
演算法工程師最新資訊 瀏覽:608
郵政銀行卡怎麼在app簽約綁定 瀏覽:49
壓縮卷一直轉 瀏覽:978
初一編程小程序怎麼做 瀏覽:828
bt軟體文件夾名稱 瀏覽:159