51高精度除法程序及使用

来源:本站
导读:目前正在解读《51高精度除法程序及使用》的相关信息,《51高精度除法程序及使用》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《51高精度除法程序及使用》的详细说明。

科技人员在开发51单片机应用系统过程中,往往遇到多字节除法及倒数问题。但目前一些资料中所介绍的有关程序,复杂且功能单一、精度低。本人在研制((GZ93多功能程控测试仪》过程中,自行设计的4字节除4字节程序具有功能多、精度高、简短、运行速度快等特点,可用于求4字节倒数,求商的整数(结果为4字节),求商的小数部分(结果为4字节),调用两次即可求8字节商。

一、使用方法

1.求商的整数

(1)16进制被除数送51内部RAM中20(低位)至23(高位)单元,除数送50(低位)至53(高位)单元,扩充单元24至27清零。 ’

(2)调子程序DIV。

(3)20(低位)至23(商位)单元为所求商,24至27单元为余数。

2.求八字节商

(1)先求商的整数部分

方法同上,然后将20至23单元的整数商送其它单元保存。

(2)求商的小数部分

20至23单元清零;其余单元内容不变;调DIV子程序;小数商在23至20单元中,小数点位于23单元

前。

3.求倒数

(1)20至23单元及25至27单元清零,01H送24单元,除数送50(低位)至53(高位)单元。

(2)调子程序DIV。

(3)倒数在23至20单元,小数点位于23单元前。

二、程序清单

ORG 0500H

DIV: CLR 7EH

MOV R0,#50H

MOV R7,#03H

DV0: MOV A,@R0

INC R0

ORL A,@R0

JNZ DV1

DJNZ R7,DV0

SETB 7EH

SJMP DV8

DV1: MOV R6,#20H

CLRC

DV2: MOV R0,#20H

MOV R7,#08H

DV3: MOV A,@R0

RLC A

MOV @R0,A

INC R0

DJNZ R7,DV3

MOV 0F0H,C

CLR C

MOV R0,#24H

MOV R1,#50H

MOV R7,#04H

DV4: MOV A,@R0

SUB A,@R1

MOV @R0,A

INC R0

INC Rl

DJNZ R7,DV4

JNB 0F0H,DV5

CLR C

SJMP DV6

DV5: JNC DV6

MOV A,24H

ADD A,50H

MOV 24H,A

MOV A,25H

ADDC A,51H

MOV 25H,A

MOV A,26H

ADDC A,52H

MOV 26H,A

MOV A,27H

ADDC A,53H

MOV 27H,A

DV6: CPL C

DJNZ R6,DV2

MOV R0,#20H

MOV R7,#04H

DV7: MOV A,@R0

RLC A

MOV @R0,A

INC R0

DJNZ R7,DV7

DV8: RET

END

提醒:《51高精度除法程序及使用》最后刷新时间 2024-03-14 01:12:56,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《51高精度除法程序及使用》该内容的真实性请自行鉴别。