① 單片機的帶借位減法
單片機中用到帶借位的減法是為了進行多位元組的減法運算,在進行高位位元組運算時,要同時減去低位位元組的借位,以得到正確的結果。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 呵呵 滿意 就選滿意回答
② 求51單片機十進制多位元組有符號減法!好心人幫我寫出乘法和除法吧。寫詳細點,謝謝!
加法,多位元組
LINE0:PUSH ACC
PUSH R0
PUSH R1
PUSH R7
PUSH DPTR
MOV R0,#被減數首地址(所有地址假設低位在低地址)
MOV R1,#減數首地址
MOV DPTR.#差的首地址
CLR C
MOV R7,#多位元組加法位元組數
LOOP:MOV A,@R0
SUBB A,@R1
MOVX @DPTR,A
INC R0
INC R1
INC DPTR
DJNZ R7,LOOP
MOV A,#00H
SUBB A,#00H
MOVX @DPTR,A
POP DPTR
POP R7
POP R1
POP R0
POP ACC
RET
以子程序形式給出子程序入口地址為:line0
乘法除法先在高位元組運算,演算法同理,如果對減法演算法認可,可為你繼續寫乘法除法子程序。
③ 51單片機匯編中SUBB帶借位指令的意思
51單片機匯編中SUBB帶借位指令的格式是:SUBB A, R(操作數),意思是累加器中的數減去源操作數所指出的數和進位位CY,其差值存放在累加器A中。運算結果影響PSW(程序狀態標志寄存器)。
在多位元組減法運算中,低位元組被減數有時會向高位產生借位,此時CY(進位標志)置一,所以在此必須使用帶借位減法指令。需要注意的是,進行單位元組減法或多位元組低8位減法運算時,應先把進位位清零。在80C51指令系統中沒有不帶借位的減法指令。
例如: SUBB 49H,58H;49H-58H,在這里是49H是被減數,帶借位。
實際上減法運算在計算機中是補碼相加。
(3)多位元組減法單片機擴展閱讀
匯編語言指令系統執行計算和控制過程:
單片機的幾個主要組成部分,構成了單片機的硬體。所謂硬體(Hardware),就是看得到,摸得到的實體。但是,光有這樣的硬體,還只是有了實現計算和控制功能的可能性。
單片機要真正地能進行計算和控制,還必須有軟體(Software)的配合。軟體主要指的是各種程序。只有將各種正確的程序「灌入」(存入)單片機,它才能有效地工作。
單片機所以能自動地進行運算和控制,正是由於人把實現計算和控制的步驟一步步地用命令的形式,即一條條指令(Instruction)預先存入到存貯器中,單片機在CPU的控制下,將指令一條條地取出來,並加以翻譯和執行。就以兩個數相加這一簡單的運算來說,當需要運算的數已存入存貯器後,還需要進行以下幾步:
第一步:把第一個數從它的存貯單元(Location)中取出來,送至運算器。
第二步:把第二個數從它所在的存貯單元中取出來,送至運算器;
第三步:相加;
第四步:把相加完的結果,送至存貯器中指定的單元。
④ 單片機的帶借位減法
單片機中用到帶借位的減法是為了進行多位元組的減法運算,在進行高位位元組運算時,要同時減去低位位元組的借位,以得到正確的結果。
如果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
呵呵
滿意
就選滿意回答
⑤ 單片機SUBB指令有什麼用,減去CY有什麼意義
SUBB指令是減法指令。
在進行多位元組相減的時候,前一位元組相減出現的借位,要減到後一位元組裡面, Cy就是上次相減時的借位。
帶CY位減法指令,ov位是在兩個符號數相加、減時產生:
正數+正數=負數;
正數-負數=負數;
負數-正數=正數;
負數+負數=正數;
這幾種情況會導致ov位置1。
(5)多位元組減法單片機擴展閱讀:
如果是小數減大數,進位C會被置1 ,使用JC rel 轉到處理程序去就可以了。
Cy --進位標記。
當最後一回數學操作產生進位(加法)或者借位(減法)時,該位置1。其他數學操作將其清0。AC --匡助進位標記。
當最後一回數學操作向高半位元組有進位(加法)或者借位(減法)時,該位置1。其他數學操作將其清0。
這是標志寄存器PSW里的。
⑥ 51單片機匯編bcd減法實驗
你這個程序沒問題的話,直接加點程序就OK了。修改如下:
BCDSUBB:
MOV R2,#4
MOV R0,#38H
MOV R1,#30H
CLR C
SUBBCD1:
MOV A,#9AH
SUBB A,@R0
ADD A,@R1
DA A
MOV @R0,A
CPL C
INC R0
INC R1
DJNZ R2,SUBBCD1
MOV R1,#40H
MOV R0,#30H
MOV R2,#4
SUBBCD2:
MOV A,@R0
MOV @R1,A
DJNZ R2,SUBBCD2
RET