『壹』 單片機 兩個有符號數分別在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