導航:首頁 > 操作系統 > 單片機中怎麼比較大小

單片機中怎麼比較大小

發布時間:2023-03-11 04:12:13

『壹』 單片機 兩個有符號數分別在50H和51H裡面,比較他們的大小,最後把大的放入60H單元。

;比較有符號數的大小,可以先進行一次相減,
;再根據差的正負、是否溢出,來區分大小。
;程序如下:
;
ORG 0000H
MOV 50H, #-28 ;先隨便存入兩個數字.
MOV 51H, #108
;========================================
BIJIAO: ;開始比較.
MOV A, 50H
CLR C
SUBB A, 51H ;(50H)-(51H)
JZ DA_50H ;差為0轉移.
JB ACC.7, FU ;負數轉移.
JB OV, DA_51H ;有溢出轉移.
SJMP DA_50H ;正數且無溢出,轉到(50H)大.
;----------------------------------------
FU: JB OV, DA_50H ;負數且有溢出,轉到(50H)大.
;----------------------------------------
DA_51H: MOV 60H, 51H ;(51H)大的處理程序.
SJMP BJ_END ;轉到結束.
;----------------------------------------
DA_50H: MOV 60H, 50H ;(50H)大的處理程序.
;----------------------------------------
BJ_END: SJMP $ ;比較程序結束.
;========================================
END

『貳』 單片機的匯編語言 如何判斷兩個無符號數的大小

誰跟你說圖上是判斷有符號數大小的程序???
這程序就是比較無符號數大小的,只不過加了數據搬運而已。
查了一下PIC的SUBWF指令,的確是比較有符號數的。
如果要比較無符號數,可先判定兩個數的最高位是否同號:若異號,則最高位為1者大;若同號,再用SUBWF減法判定大小,參考書上這個常式。

『叄』 單片機char數據和int數據的大小怎麼比較

一個char數據,一個int數據,是同樣可以用if 語句來比較的。
單片機的C語言編程,char 數據不再只是字元了,就是8位帶符號數,有正負數的。這一點不同於電腦的C語言編程,只是指字元型。
如果確實是要用char表示字元,那就用unsigned char來表示,同樣,可以用if 語句比較。

『肆』 在MCS-51單片機中怎麼用CJNE指令比較兩數大小

比如比較30H和31H寄存器中數據大小:
MOV A,30H
CJNE A,31H,NXT
....... ;兩數相等
NXT:
JC SMALL
....... ;30H大於31H
RET
SMALL:
..... ;30H小於31H

『伍』 如何比較單片機中兩個帶小數位的數的大小

BJ:
MOV A, 30H ;先比較十位
CJNE A, 33H, ZZZ ;比較不等轉移

MOV A, 31H ;相等則比較個位
CJNE A, 34H, ZZZ ;比較不等轉移

MOV A, 32H
CJNE A, 35H, ZZZ ;比較不等轉移
…… ;兩數相等
……
ZZZ:
JNC A_DA ;無借位則為A大
B_DA: ;否則就是B大
……
……
A_DA:
……
……
END

『陸』 在單片機怎麼用C語言 比較幾個數的大小

冒泡法啊,去看書!C語言書上很詳細,我就不再給你寫了,你自己看懂就學會了~~~
//冒泡法排序程序
#include<reg52.h>
char x[4]={0,1,2,3}; //數組中可存放n位相應的數據,
//應用於單片機時,可把得到的數據放入本數組內
int a,b,t;
void main()
{
for(a=0;a<3;a++) //n位時為a<n-1
for(b=a+1;b<4;b++) //n位時為b<n
if(x[a]<x[b]) //交換
{
t=x[a];
x[a]=x[b];
x[b]=t;
}
//此時已進行完從大到小的排序x[4]={3,2,1,0};
}
剛利用上班時間給你寫的,夠詳細吧?應該能看的明白了!
呵呵,哥們給多加點分嗎,俺馬上就要升到五級了,哈哈~~~~~~

『柒』 51單片機 用匯編語言怎麼編程:幾個有符號數的比較大小

51單片機中,沒有專門的有符號數比較指令,只能通過一些變通的方法來實現,比如:
比較30H和40H中有符號數的大小,結果放在R2中,大於則為1,等於為0,小於為128:
CMPDAT:
MOV A,30H
JB ACC.7,CMPF1
MOV B,A
MOV A,40H
JB ACC.7,CMPZ2 ;30H正,40H負所以30H>40H
CJNE A,B,CMPZ1 ;均為正,比較大小
MOV R2,#0
RET
CMPZ1:
JC,CMPZ2
CMPZ11:
MOV R2,#128
RET
CMPZ2:
MOV R2,#1
RET
CMPF1:
ANL A,#7FH
MOV B,A
MOV A,40H
JNB ACC.7,CMPF3 ;30H負,40H負
SJMP CMPZ11 ;30負,40H正,所以30H<40H
CMPF3:
ANL A,#7FH
CJNE A,B,CMPF10 ;兩個均為負數
MOV R2,#0
RET
CMPF10:
JC CMPZ2 ;30H<40H(負數小者大)
SJMP CMPZ11 ;30H>40H

『捌』 51單片機中怎樣比較兩個數的大小

jc是判斷借位標志CY的跳轉指令,程序應該有做減法的指令,當A<B且做A-B運算後,發生借位,此時硬體置CY為1

閱讀全文

與單片機中怎麼比較大小相關的資料

熱點內容
gcc編譯消耗內存過多 瀏覽:279
昌邑網站製作源碼 瀏覽:127
單片機的反向編譯 瀏覽:463
subsample演算法 瀏覽:899
蘋果免費看書app哪個最好 瀏覽:885
c語言加密怎麼弄 瀏覽:842
c語言編譯的錯誤提示 瀏覽:767
驗機蘋果app哪個最好 瀏覽:666
光遇國際服安卓如何購買禮包 瀏覽:55
163app怎麼下載 瀏覽:247
電腦程序員下場 瀏覽:45
編譯原理ll1文法判斷 瀏覽:727
qt用vs2015編譯 瀏覽:553
結婚日子最好的演算法 瀏覽:794
安卓怎麼把數據傳到蘋果里 瀏覽:504
編譯器標識 瀏覽:792
編程珠璣第三章 瀏覽:785
windows如何開啟tftp伺服器 瀏覽:110
歐姆龍plc編程指令表 瀏覽:189
程序員遠程收入不穩定 瀏覽:863