访问电脑版页面

导航:老古开发网手机版51单片机51单片机汇编编程

浮点数代数值比较(不影响待比较操作数)--MCS-51单片机实用子程序

导读:
关键字:
标号: FCMP 功能:浮点数代数值比较(不影响待比较操作数)

入口条件:待比较操作数分别在[R0]和[R1]中。
出口信息:若CY=1,则[R0] < [R1],若CY=0且A=0则 [R0] = [R1],否则[R0] > [R1]。
影响资源:A、B、PSW 堆栈需求: 2字节
FCMP: MOV A,@R0 ;数符比较
XRL A,@R1
JNB ACC.7,CMP2
MOV A,@R0 ;两数异号,以[R0]数符为准
RLC A
MOV A,#0FFH
RET
CMP2: MOV A,@R1 ;两数同号,准备比较阶码
MOV C,ACC.6
MOV ACC.7,C
MOV B,A
MOV A,@R0
MOV C,ACC.7
MOV F0,C ;保存[R0]的数符
MOV C,ACC.6
MOV ACC.7,C
CLR C ;比较阶码
SUBB A,B
JZ CMP6
RLC A ;取阶码之差的符号
JNB F0,CMP5
CPL C ;[R0]为负时,结果取反
CMP5: MOV A,#0FFH ;两数不相等
RET
CMP6: INC R0 ;阶码相同时,准备比较尾数
INC R0
INC R1
INC R1
CLR C
MOV A,@R0
SUBB A,@R1
MOV B,A ;保存部分差
DEC R0
DEC R1
MOV A,@R0
SUBB A,@R1
DEC R0
DEC R1
ORL A,B ;生成是否相等信息
JZ CMP7
JNB F0,CMP7
CPL C ;[R0]为负时,结果取反
CMP7: RET

来源:   作者:  2006/9/25 16:50:53
栏目: [ 51单片机汇编编程]

相关阅读

在 KEIL C51 中如何直接嵌入汇编

在C51中如何实现汇编的DA A指令?

#pragma asm是什么意思?

51单片机对交通灯的控制设计

请问怎样用89C51采集多路脉冲信号?

CRC16-STANDARD的快速算法,51汇编

双字节十六进制小数转换成双字节BCD码小数

MCS-51单片机汇编伪指令的用法解析

MCS-51单片机实用子程序库

汇编中的ORG 0X0000H 在C51中如何实现

C51单片机的压缩BCD码相加程序

51单片机汇编语言-延时程序的延时时间

MCS-51单片机布尔处理功能解析

16位数据传送指令(1条)——mcs51单片机汇编语言

MCS-51单片机地址指针的应用

MCS-51单片机实用子程序库--浮点数除法

MSC-51单片机的3字节和4字节浮点数计算程序分析

使用汇编,中断响应后RETI返回后没有回到原处,而是回到另外一处,如何解决

单片机双机并行通信中所遇问题

51单片机的汇编语言指令中英文对照