当前位置:首页 > 单片机 > 单片机
[导读] ;看到网上有人求“四字节除以三字节”的子程序,随手把我以前写的程序改了改,发表在下面。;自我感觉不错,自认为是一个能够完成该功能的,_最_简_短_的程序。;程序如下,呵呵,献丑了。;=============

;看到网上有人求“四字节除以三字节”的子程序,随手把我以前写的程序改了改,发表在下面。
;自我感觉不错,自认为是一个能够完成该功能的,_最_简_短_的程序。
;程序如下,呵呵,献丑了。
;===============================================================
ORG 0000H
LJMP START

ORG 0030H ;主程序开始
START:
MOV R7, #05H ;设定一个32位的被除数
MOV R6, #0F5H ;05 F5 E0 FFH
MOV R5, #0E0H ;=99 999 999
MOV R4, #0FFH
; MOV R3, #69H
MOV R2, #98H ;设定一个24位的除数
MOV R1, #96H ;98 96 80H
MOV R0, #80H ;=10 000 000


CALL DIV_32_24 ;调用除法子程序

SJMP $ ;商,可以用计算器验证:00 00 00 09H
;余数为:98 96 7FH = 9 999 999
;****************************************************
;* 四字节/三字节无符号数除法程序 *
;* 已经测试通过 *
;****************************************************
; R7R6R5R4 / R2R1R0 --> R7R6R5R4...32H31H30H
;
;被除数 R7R6R5R4, 除数 R2R1R0
; 商 R7R6R5R4, 余数 32H31H30H
;因为数字较大, 本程序使用了:A、B、33H 和 32H 31H 30H
;对这些单元的保护工作, 应该在主程序中进行
;-----------------------------------------------------------
DIV_32_24:
CLR A
MOV 30H, A
MOV 31H, A
MOV 32H, A
MOV R3, #32 ;循环次数
;---------------------------------------------------
CLR C
DIV_LOOP:
CALL SL_R7_R4
CALL SL_32_30
;(32H31H30H <-- R7R6R5R4 <-- C) 左移一位
MOV F0, C
;---------------------
CLR C ;IF (32H31H30H >= R2R1R0) 32H31H30H -= R2R1R0;
MOV A, 30H
SUBB A, R0
MOV 33H, A
MOV A, 31H
SUBB A, R1
MOV B, A
MOV A, 32H
SUBB A, R2
JNC DIV_2
JNB F0, CPL_C ;不够减就不保存差
CPL C
DIV_2:
MOV 30H, 33H
MOV 31H, B
MOV 32H, A
CPL_C:
CPL C
DJNZ R3, DIV_LOOP
;---------------------------------------------------
SL_R7_R4:
MOV A, R4
RLC A
MOV R4, A
MOV A, R5
RLC A
MOV R5, A
MOV A, R6
RLC A
MOV R6, A
MOV A, R7
RLC A
MOV R7, A
RET
;---------------------
SL_32_30:
MOV A, 30H
RLC A
MOV 30H, A
MOV A, 31H
RLC A
MOV 31H, A
MOV A, 32H
RLC A
MOV 32H, A
RET
;---------------------------------------------------
END
;===============================================================


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

CPU的大小端模式‌是指在存储和处理多字节数据时,字节的顺序是如何排列的。它涉及到字节在内存中的存储方式以及读取和解释这些字节的顺序。主要有两种大小端模式:‌大端模式(Big-Endian)‌和‌小端模式(Little-...

关键字: CPU 字节

最新消息,近日字节跳动 CEO梁汝波在2024年年度全员会上表示,2019-2021年,字节跳动快速扩张,员工数量从1万多增加到10万多人,不少人反馈现在字节该有的大公司病全有了。同时强调该公司今年的关键词为“始终创业,...

关键字: CEO 梁汝波 字节

业内消息,近日有消息称字节跳动调整了薪酬结构,将原来年终奖月数大于3的薪酬方案统一调整为3个月,也就是说年薪总包不变,月薪上升幅度约20%。官方在通知邮件中表示,此举主要是为提升管理效率。

关键字: 字节 期权 激励

最新消息,针对「字节跳动旗下游戏部门朝夕光年正与腾讯谈判出售多款游戏」一事,昨天晚间朝夕光年相关负责人回应称,相关团队还在与多个买家商谈项目出售事宜,至今尚未敲定任何与腾讯的交易。

关键字: 朝夕光年 腾讯 游戏 字节

我给大家出一道有意思的题目:如何快速得到一个字节的位逆序字节。比如0X33的位逆序字节是0XCC。

关键字: 字节 C 语言 volatile

关于断路器,简单的来说是一种开关设备,可以在正常电路条件下关闭,传输和中断电流,并且可以在指定时间关闭并传输电流以进行异常循环。 断路器根据其应用范围分为高压断路器和低压断路器。 高低压的分布相当不确定。 通常3kV或更...

关键字: 断路器 符号 电路

面试字节,中间问了好多业务相关的问题,后面越来越不对劲,问了更多工作细节,面试官一直记笔记,面了一个多小时,最后却挂了。楼主认为,这是利用别人求职白嫖别人信息,奉劝大家谨慎投字节,面试时留个心眼,不要透露太多业务核心内容...

关键字: 字节 笔记 信息

元宇宙,利用科技手段进行链接与创造,构建现实世界映射与交互的虚拟世界,在虚拟世界中体验现实世界的生活方式,打造数字化体系的数字空间。

关键字: 字节 VR 产品

众所周知,近几年消费电子市场疲软,手机等移动终端的市场销量不断下跌,热度远不如之前。但是随着Meta对元宇宙概念的引入,原本手机的热度和供应链越来越多地转移到了VR等元宇宙领域,国内的VR整机龙头企业Pico预计后半年将...

关键字: VR Pico 字节

上周有位读者字节一二面时,被问到:Redis 的大 Key 对持久化有什么影响?

关键字: 字节 Redis 大 Key
关闭