数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1238|回复: 18

[C51] KEIL C51的ldivt实现

[复制链接]
发表于 2024-9-27 12:20:49 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
KEIL C51中没有实现ldivt,所以有时做BCD码处理时的除法和取模效率不高,要无谓的计算两次,研究了一下,用了在线汇编把结果直接取出来,比较方便,实现如下:

typedef struct {
        long quot;
        long rem;
} ldiv_t;       

ldiv_t ldiv(long numer, long denom) {
        ldiv_t result;
        result.quot = numer / denom;
//        result.rem = numer % denom;  //此行用于校验result的地址
        __asm MOV        ?_ldiv?BYTE+8+4,R0
        __asm MOV        ?_ldiv?BYTE+8+5,R1
        __asm MOV        ?_ldiv?BYTE+8+6,R2
        __asm MOV        ?_ldiv?BYTE+8+7,R3
        return result;
}


使用:
ldiv_t  test = ldiv(0x12345678, 0x98765);

以上文件可以单独放在一个C文件里实现,这样变量一般不会出错,否则要自行修改以上的汇编中的局部变量引用.
最后C文件属性中注意勾选src两项!

打赏

参与人数 1家元 +15 收起 理由
不长叶子的树 + 15

查看全部打赏

 楼主| 发表于 2024-9-27 12:31:48 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2024-9-27 15:02:21 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2024-9-27 15:17:00 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-27 16:07:41 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-27 16:09:27 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2024-9-27 16:20:40 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2024-9-27 17:54:44 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2024-9-27 20:21:55 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2024-9-27 20:59:39 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2024-9-27 21:09:46 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-27 21:13:12 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-27 21:16:42 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-27 21:19:28 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2024-9-27 21:35:57 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-27 21:49:58 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2024-9-27 22:03:16 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-27 22:04:45 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2024-9-27 22:24:06 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-12-18 23:09 , Processed in 0.390001 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表