Ⅰ 單片機 兩個有符號數分別在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
Ⅱ 51單片機中JNB是和0比較大小的意思嗎
51單片機中JNB 判斷後面位地址的值是0則轉移。
Ⅲ 51單片機 用匯編語言怎麼編程:幾個有符號數的比較大小
設內部RAM中的30H和31H單元中有兩個帶符號數,求其中的大數,放在32H單元中。
;
MOV
32H,
30H
;先取一個放好.
MOV
A,
30H
CLR
C
SUBB
A,
31H
;(30H)-(31H)
JNB
ACC.7,
ZZZ
;差為正數則轉移.
JB
OV,
_END
;負、且溢出轉至結尾.
SJMP
XXX
;否則去存31H
ZZZ:
JNB
OV,
_END
;差為正、且無溢出轉至結尾.
XXX:
MOV
32H,
31H
_END:
SJMP
$
END
Ⅳ 51單片機中.怎麼用c語言比較2個單元中的數的大小
我來給你寫這個程序;
void main()
{
unsigned char *D1,*D2,*D3; //先定義兩個指針變數。
D1=0x20;//分別指向相應的地址。
D2=0x30;
D3=0x40;
if((*D1)>=(*D2))
{
*D3 = *D2; //將較小的數存到D3所指向的空間(0x40)
}
else
{
*D3 = *D1;
}
}
Ⅳ 51單片機中怎樣比較兩個數的大小
jc是判斷借位標志CY的跳轉指令,程序應該有做減法的指令,當A<B且做A-B運算後,發生借位,此時硬體置CY為1
Ⅵ 在MCS-51單片機中怎麼用CJNE指令比較兩數大小
比如比較30H和31H寄存器中數據大小:
MOV A,30H
CJNE A,31H,NXT
....... ;兩數相等
NXT:
JC SMALL
....... ;30H大於31H
RET
SMALL:
..... ;30H小於31H
Ⅶ msc51單片機比較兩個數大小,具體題目在圖片中!大神幫幫忙
;
MOV A, 30H
CLR C
SUBB A, 31H
JNC BIG_30H ;無借位轉移
MOV R0, 31H
MOV R1, 30H
CLR 20H
SJMP EXIT
BIG_30H:
MOV R0, 30H
MOV R1, 31H
SETB 20H
EXIT:
SJMP $
END