导航:首页 > 操作系统 > 单片机比较大小

单片机比较大小

发布时间:2022-09-25 10:13:45

A. 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

B. 51单片机中怎样比较两个数的大小

jc是判断借位标志CY的跳转指令,程序应该有做减法的指令,当A<B且做A-B运算后,发生借位,此时硬件置CY为1

C. 在单片机怎么用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};
}
刚利用上班时间给你写的,够详细吧?应该能看的明白了!
呵呵,哥们给多加点分吗,俺马上就要升到五级了,哈哈~~~~~~

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

E. 在MCS-51单片机中怎么用CJNE指令比较两数大小

比如比较30H和31H寄存器中数据大小:
MOV A,30H
CJNE A,31H,NXT
....... ;两数相等
NXT:
JC SMALL
....... ;30H大于31H
RET
SMALL:
..... ;30H小于31H

F. 单片机char数据和int数据的大小怎么比较

一个char数据,一个int数据,是同样可以用if 语句来比较的。
单片机的C语言编程,char 数据不再只是字符了,就是8位带符号数,有正负数的。这一点不同于电脑的C语言编程,只是指字符型。
如果确实是要用char表示字符,那就用unsigned char来表示,同样,可以用if 语句比较。

G. 如何比较单片机中两个带小数位的数的大小

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

H. 单片机实验在冒泡排序中,如何实现两个数据大小比较的

用C语言编程,直接比较,例 如
if(a>=b).......

I. 单片机的汇编语言 如何判断两个无符号数的大小

谁跟你说图上是判断有符号数大小的程序???
这程序就是比较无符号数大小的,只不过加了数据搬运而已。
查了一下PIC的SUBWF指令,的确是比较有符号数的。
如果要比较无符号数,可先判定两个数的最高位是否同号:若异号,则最高位为1者大;若同号,再用SUBWF减法判定大小,参考书上这个例程。

J. 单片机C语言编程时,不同进制数进行大小比较,怎么写请举例. 这样写是不是正确: a(十六进制数)>13000

单片机只能认识二进制数字,所谓的不同进制数只是用户编程时给定变量数值时的形式不同而已,所以如果你的变量是数值类型的,直接比较就可以。但如果数值的赋值过程还没有完成,就需要单片机对表示不同进制数字的字符串,进行转换为数值后,再比较了。

阅读全文

与单片机比较大小相关的资料

热点内容
加密大师卸载不了文件 浏览:559
新概念英语pdf下载 浏览:579
员工把vba加密了 浏览:988
博途编译显示未组态画面内部错误 浏览:819
黑马游戏怎么解压 浏览:850
启动Hadoop的命令 浏览:72
程序的编辑编译和运行 浏览:36
中国开源编译器 浏览:831
服务器流量10t是什么意思 浏览:605
如何查局域网服务器地址 浏览:766
韦小宝程序员视频 浏览:780
安卓手机录音失败怎么设置 浏览:798
dell服务器r720如何进入pe 浏览:201
国外软件的服务器地址 浏览:521
phpsign函数 浏览:946
分页算法实现代码 浏览:553
怎么把ios系统的app转到安卓 浏览:419
我的世界手机版命令方块指令大全 浏览:357
迅雷怎样解压文档 浏览:439
济南儿童编程 浏览:259