Ⅰ 单片机 两个有符号数分别在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