LAOXU 发表于 2024-5-15 16:53:57

xxkj2010 发表于 2024-5-15 09:40
是不是直接赋值给MDU32C寄存器,就可以直接从MDU32C寄存器中读取结果?

不用, 只要在项目中加入 STC8_MDU32C_LIB_V1.LIB 库, 其他什么都不用管, 该干哈就干啥, 全自动傻瓜式提速。

LAOXU 发表于 2024-5-15 16:54:26

jmg 发表于 2024-5-15 10:34
> "6. Add 32-bit exchange instructions (R0R1R2R3R4R5R6R7). "




{:handshake:}{:handshake:}{:handshake:}

LAOXU 发表于 2024-5-15 16:59:50

最新 STC8_MDU32C_V1.lib 库来了~~~~~

STC8H_MDU32C_V1 LIB 库使用说明:
STC8H系列单片机 C51定点库 自动调用专用运算库函数,
插入使用了 STC8H系列的特色----MDU32C硬件乘除移位指令。
并且针对 STC8H系列集成了 32位x32位硬件乘法器,32位/32位硬件除法器,32位硬件移位单元作了特别优化。
增加了对所有关联到的无符号、有符号int型,无符号、有符号long型 和 float型变量的算术运算,移位操作,
均作了运算速度大幅度提升,为方便使用,以外挂库形式加入,实行对C51内库自动替换,无缝嵌入,
其中最具有特色的是
单精度浮点数加/减/乘/除四则运算,用 STC8H系列的 MDU32C硬件 乘除移位指令,
代替原Keil C51的加减法模拟除法程序,
大幅度地提升了原 51单精度浮点数加/减/乘/除 四则运算特慢的通病。


单独 LIB 文件:


LIB源代码:


LAOXU 发表于 2024-5-15 17:02:16

库内部包含(优化)了 16个库函数:




110 发表于 2024-5-15 17:04:43

支持楼主,学习了!谢谢

xxkj2010 发表于 2024-5-16 13:21:52

LAOXU 发表于 2024-5-15 16:53
不用, 只要在项目中加入 STC8_MDU32C_LIB_V1.LIB 库, 其他什么都不用管, 该干哈就干啥, 全自动傻瓜式提 ...
有没有纯代码的,不要用lib库的?毕竟寄存器又不多。

神农鼎 发表于 2024-5-16 18:20:11

MDU32C 在STC8H2K32U-45MHz-LQFP32, TSSOP28, TSSOP20 上量产
MDU16 在STC8H2K08U-45MHz-TSSOP20/SOP16上量产,大量现货供应中
MDU16 在STC8H2K12U 2CDC+HID-TSSOP20/SOP16上量产,大量现货供应中
MDU16 在STC8H2K17U-45MHz-TSSOP20/SOP16上量产,大量现货供应中
这个系列的 MDU16 会在 MDU32C 基础上升级到 MDU32D

神农鼎 发表于 2024-5-16 18:20:11


MDU32D

MDU32C 在STC8H2K32U-45MHz-LQFP32, TSSOP28, TSSOP20 上量产
MDU16 在STC8H2K08U-45MHz-TSSOP20/SOP16上量产,大量现货供应中
MDU16 在STC8H2K12U 2CDC+HID-TSSOP20/SOP16上量产,大量现货供应中
MDU16 在STC8H2K17U-45MHz-TSSOP20/SOP16上量产,大量现货供应中
这个系列的 MDU16 会在 MDU32C 基础上升级到 MDU32D
深圳国芯人工智能有限公司-产品_STC8H系列 (stcai.com)























LAOXU 发表于 2024-5-17 02:02:55

xxkj2010 发表于 2024-5-16 13:21
有没有纯代码的,不要用lib库的?毕竟寄存器又不多。

那自已在库源代码中,找出相应的源码挂在项目中即可

LAOXU 发表于 2024-5-17 03:39:03

非常不错, 把 DPU32 的一些基本指令移植上去了, 补充了传统 51的 16位运算功能不足之短处, 赞一个!


由于浮点数存储格式不同, Keil 是 R0-R3 和 R4-R7; SDCC 是 R0,R2-R4 和 R1,R5-R7; 而 IAR 又是 R2-R5; 每家都不相同, 这标准格式没法统一, 考虑到通用性, 数据变换少不了.
在数据变换中, 这条指令作用很大.
1) 32位循环右移(或左移), 由于数据是循环的, 加一条即可.
    可省去好多代码.
在格式变换中, 这条指令作用很大.
1) 32位比较指令(即做减法结果不回传).
    在浮点数加/减法中, 对阶码的判断, 这条指令作用很大.


    由于 32位加/减法, 进位标志已同步到 PSW中, 可省去运算过程中的 5条左右指令,
非常适合在浮点数中使用.
因此, 下列 DPU32 指令强烈建议加上.
2) SWAP 交换指令, R0-R3 和 R4-R7 内容互换.
    和减法指令配合, 用于浮点数减法, R0-R3 减 R4-R7.
3) 32位 加1 指令,
    用于浮点数 4舍5入.
这样, 能再次提升 浮点运算库的 运算速度。
   


下列指令请均情考虑:
3) 32位 减1 (和 加1 对称)
4) 32位 求负数
5) 32位 清0 (清 R0-R3 优先)

页: 1 [2] 3 4 5
查看完整版本: 32位加减乘除,STC8位机上的MDU32C 实测!库函数,STC8H2K32U-45MHz