单片机 汇编语言 两数比较大小

假设数1的高位存于R0,低位存于R1;数2高位存于R2,低位存于R3。

请大侠们帮帮忙,用汇编语言编写一段小程序。

先比较高位。

如果高位不相等,则根据数1和数2的大小关系跳转到子程序ABC(假设数2大于数1跳转)。

如果高位相等,则比较低位;要求同上一步。

应该是用两数不等转移语句实现该比较吧。。。

具体的就请大侠们赐教啦。。。

谢谢。。

第1个回答  推荐于2018-04-23
单片机有比较指令CMP的吗,请回答者再看看书吧。可以用CJNE指令,它有比较功能,如CJNE A,#DATA,LABEL 当A<#data时,进位位置一,就可以判断了。程序如下:
CLR C ;先把进位位清零,以防误判
CJNE A,#data,no_equ ;不等则转到no_equ,相等则直接顺序执行
....... ;执行相等时的程序
no_equ:
JC lower ;继续判断,小于则跳转到 lower,大于则顺序执行
.......
lower:
......
END本回答被网友采纳
第2个回答  2009-07-17
不要想复杂了,两个CMP就可以啦

CMP R0,R2
JB abc
CMP R1,R3
JB abc
JMP nobelow

abc:
...
nobelow:
...本回答被提问者采纳
第3个回答  2009-07-10
还是自己看书学习吧 这个简单的问题 多看几遍自然会了

单片机实验中,怎么用汇编比较大小?
单片机实验中,用汇编语言编程比较两个数大小,主要用SUBB减法指令,也可以使用CJNE指令。示例程序如下:;启动入口 ORG 0000H;复位启动 LJMP START;ORG 0100H;;;主控程序 START:MOV R0,#30H MOV X,#0 MOV Y,#0 LOOP:MOV A,@R0 CLR C SUBB A,#111 JNC NEXT CPL C MOV A,@R0 SUBB A,Y...

单片机 汇编语言 两数比较大小
单片机有比较指令CMP的吗,请回答者再看看书吧。可以用CJNE指令,它有比较功能,如CJNE A,#DATA,LABEL 当A<#data时,进位位置一,就可以判断了。程序如下:CLR C ;先把进位位清零,以防误判 CJNE A,#data,no_equ ;不等则转到no_equ,相等则直接顺序执行 ... ;执行相等时的程序 ...

单片机汇编语言中比较指令
CJNE A,direct,rel CJNE Rn,#data,rel CJNE @Ri,#data,rel 第一条指令的功能是将A中的值和立即数data比较,如果两者相等,就次序执行(执行本 指令的下一条指令),如果不相等,就转移,同样地,我们能将rel理解成标号,即:CJNEA,data,标号。这样利用这条指令,我们就能判断两数是否相等,这在...

单片机用汇编语言怎样判断几个数的大小?
在汇编语句中没有直接的大小运算功能,要想实现比大小,只能是减法运算然后判断进位位是否为1,来实现。如果贵多个数,就要多次运算不停地跳转循环!

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

单片机中用什么指令判断两个单元中的数据大小
没见过比较指令,最好还是用减法指令(不会有单片机不支持减法吧 哈哈)判断减法后的数据,看最高位是否是1

怎么用c51单片机汇编语言编程实现两个数的比较,不相等则继续执行,相 ...
紧跟在你的CJNE指令后根据你的比较方式再加一条判C指令再次判断或转移就行了。

51单片机如何用汇编语言从十个数里选出最大值最小值
1、首先可以利用51单片机子程序输出找到的最大最小值。2、其次按照数据存储或者输入的顺序,把每2个数进行比较。3、最后每次比较都选择较大的数和下一个数据进行比较,这样最后一次比较中较大数就是10个数据里面的最大值。

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 ;差为正、且无...

在单片机C语言中,==和>哪个运算的快。比如 if(a==1&&b==0&&c==0...
你首先要弄明白在C语言中,==和>都是如何运算的,计算机自身并不会判断大小,而是根据两个数相减的正负来判断大小的,例如,a>b,在处理器内部是要判断a-b的正负的,如果是正,则a>b成立,同理,a==1,就是判断a-1是不是等于0,所以==的运算速度要略快一些 ...

相似回答