找回密码
 立即注册
楼主: LAOXU

32位加减乘除,STC8位机上的MDU32C 实测!库函数,STC8H2K32U-45MHz

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-5-30 15:31:55 | 显示全部楼层
这次你如想再进一步完善MDU32D指令功能后投产,  请留言, 我晚上整理归类一下发给你.

点评

好,有方向,才可能进步,MDU32C, MDU32D, MDU32E  详情 回复 发表于 2024-5-30 19:05
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2024-5-30 19:05:52 | 显示全部楼层
LAO*** 发表于 2024-5-30 15:31
这次你如想再进一步完善MDU32D指令功能后投产,  请留言, 我晚上整理归类一下发给你. ...

好,有方向,才可能进步,MDU32C, MDU32D, MDU32E
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-5-31 08:42:10 | 显示全部楼层
本帖最后由 LAOXU 于 2024-6-1 07:45 编辑

2024/6/1:
对 MDU32/DPU32 类运算模块之构架, 从发展的眼光, 提点建议。

首先,51和 251相比,可用资源缺乏,专用寄存器非常紧张,整个可重入函数(程序),只有 R0-R7、ACC、B、PSW、DPTR 可使用。

因此,MDU32/DPU32 类运算模块之构架, 从实用的角度来看,这两者的侧重点不同。
在 51上应用,侧重点:
1、尽可能的帮助减轻对专用寄存器的占用。
2、加快各种运算速度的辅助类简单指令。
3、不同编译器(Keil,SDCC,IAR)之间的数据格式转换。

在 251上应用,侧重点:
1、扩展(级连)类指令,能轻松将 32位指令,扩展到 64位或更多位。

=======================================================================
具体实施方案:

一、结构(构架)类:
1、MDU32内增加 2级 32位堆栈寄存器(通用方案,今后 DPU32 上也能用上)。
2、增加 R0_R3,R4_R7 压栈、出栈 指令(对 MDU32 模块内堆栈操作)。

或 临时方案(51 MDU32专用):
1、MDU32内增加一个 32位寄存器 DD。
2、增加 R0_R3,R4_R7 到 寄存器 DD 的读、写 指令。

用途:可快速对 R0_R3,R4_R7 寄存器保存和恢复。

=======================================================================
二、指令类:
1、交换指令 SWAP    R4_R7,R0_R3             用途:快速交换 R0_R3,R4_R7 寄存器值。
2、比较指令 CMP    R4_R7,R0_R3               用途:快速比较 R0_R3,R4_R7 寄存器值。
3、循环指令 RR     R4_R7(右移 或 左移均可)  用途:浮点数格式转换,循环指令扩展级联。
4、加1 指令 INC    R4_R7                    用途:浮点数四舍五入。
5、减1 指令 INC    R4_R7
6、取补指令 NEG    R4_R7                  用途:求负数。  
7、取反指令 CPL    R4_R7
8、清0 指令 CLR    R4_R7                  用途:快速清除 R4_R7寄存器。  
            CLR    R0_R3                  用途:快速清除 R0_R3寄存器。  
9、移位指令 最后一位移出 放 Cy(最好),如做不到放 MDU32SR 寄存器内也可。
10、加/减/比较类指令 结果为 0,置位 MDU32SR 寄存器内 Z标志(新增)。
建议增加 四字节 和 单字节 非标运算指令
11、加法指令 ADD   R4_R7,A               用途:非标格式浮点数 四舍五入。
12、减法指令 SUB   R4_R7,A  

13、乘法指令 MUL   R4_R7,A               用途:数制转换,BCD-->HEX。

14、除法指令 DIV   R4_R7,A               用途:数制转换,HEX-->BCD


以上均是 32位指令。

=======================================================================
三、其他类:
作为 51,我认为最理想的升级模式,是使用 251(BINARY模式)指令集,这样,在 51下能使用 所有 251硬件资源,包括移值 251库函数,
让 MDU32/DPU32 类运算模块 做到 51/251下真正通用。

注:记得我曾经说错,51运行 251(SOURCE模式)指令集,现更正,以本次为准。
51模式下,只能使用(运行) 251(BINARY模式)指令集。

我学的太杂,样样都了解一点,优点,每样都能短时间内拿起,综合能力强。
缺点,慢热,进入状态时间太长,一般要 10天半个月,才能真正进入有效思考。
比如讨论这 MDU32/DPU32 类运算模块之构架指令,没有前导预热,进入不了顶峰状态。
这和整天在这行混的吃这口饭的不同(他们很短时间能进入有效思考)。

上次争论 MDU32/DPU32 类运算模块,运行时是否应该关系统时钟,我后来总结了一下,
结论:我是把 MDU32/DPU32指令,当成 真正 51指令使用,充分考虑如何搭配,才能更有效执行速度更快。
而其他人,仅仅把 MDU32/DPU32指令,当成一个功能指令使用,只考虑完成单一的功能,而并没有考虑更深层次的扩展(级连)等情况下使用。


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-6-1 07:38:50 | 显示全部楼层
修改:
建议增加 四字节 和 单字节 非标运算指令
用于快速数制转换等


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:473
  • 最近打卡:2025-05-01 08:58:09

0

主题

50

回帖

189

积分

注册会员

积分
189
发表于 2024-6-1 11:25:01 | 显示全部楼层
請許工幫我看看這個庫使用還有啥問題?
截图202406011124024406.jpg

点评

能把项目文件(可去掉无关的),直接传上来吗 我编译一下看看  详情 回复 发表于 2024-6-1 12:47
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:473
  • 最近打卡:2025-05-01 08:58:09

0

主题

50

回帖

189

积分

注册会员

积分
189
发表于 2024-6-1 11:26:52 | 显示全部楼层
使用V1和V2版本出錯信息是一樣的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-6-1 12:47:33 | 显示全部楼层
eda*** 发表于 2024-6-1 11:25
請許工幫我看看這個庫使用還有啥問題?

能把项目文件(可去掉无关的),直接传上来吗

我编译一下看看
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:473
  • 最近打卡:2025-05-01 08:58:09

0

主题

50

回帖

189

积分

注册会员

积分
189
发表于 2024-6-1 13:28:51 | 显示全部楼层
LAO*** 发表于 2024-6-1 12:47
能把项目文件(可去掉无关的),直接传上来吗

我编译一下看看

去掉項目相關文件後,還有一個警告信息

DY-2025_RTX51_V2.24.2.rar

313.42 KB, 下载次数: 128

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:473
  • 最近打卡:2025-05-01 08:58:09

0

主题

50

回帖

189

积分

注册会员

积分
189
发表于 2024-6-1 13:30:34 | 显示全部楼层
上面工程編譯信息如圖
截图202406011330109245.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-6-2 06:09:05 | 显示全部楼层
捕获.PNG


把 FCASTL 文件中, 注释(红圈内容)去掉,再编译成库,试试。



?PR?_FCASTL?FCASTL SEGMENT CODE   
EXTRN    CODE (?C?LNEG)
PUBLIC ?C?FCASTL
PUBLIC ?C?FCASTI
PUBLIC ?C?FCASTC

RSEG  ?PR?_FCASTL?FCASTL

?C?FCASTL:
                    MOV      B, #0x20+0x7E       // long-->float
                    SJMP     FCASTC_002_
?C?FCASTI:
                    MOV      B, #0x10+0x7E        // int-->float
                SJMP     FCASTC_001_
?C?FCASTC:
                    MOV      B, #0x08+0x7E        // char-->float                               
                    MOV      R5, #0x00       
FCASTC_001_:                                 
                    MOV      R6, #0x00
                MOV      R7, #0x00
FCASTC_002_:            
                    RLC      A
                MOV      F0, C
                JNB      F0, FCASTC_003_
                LCALL    ?C?LNEG
FCASTC_003_:

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 19:25 , Processed in 0.162303 second(s), 105 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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