TA的每日心情 | 开心 5 天前 |
---|
签到天数: 137 天 [LV.7]常住居民III
荣誉版主
- 积分
- 3990
|
发表于 2024-3-10 07:07:13
|
显示全部楼层
论【DPU32】指令(讨论稿)的"反人类"设计!
1、专用寄存器命名,倒序,和 8051风格(正序)不同,不利于记忆,特伤脑袋(典型的"脑筋急转弯",一不小心就要犯错)。
目前定义: 00H(DR0) <--> EBX , 04H(DR4) <--> EAX , 08H <--> EDX , 0CH <--> ECX ,
建议修改为: 00H(DR0) <--> EAX , 04H(DR4) <--> EBX , 08H <--> ECX , 0CH <--> EDX ,
即 EAX ,EBX ,ECX ,EDX , 按数字次序依次增加。
2、专用寄存器定义,目前 DPU32 除了占用 00H-07H(BANK0), 还固定占用 08H-0FH(BANK1),
存在问题: 地址 08H-0FH, 相当于 全局变量, 一但 DPU32 指令占用了全局变量, 组成的功能函数就是不可重入的!
对 OS系统的支持率极差, 无法直接 应用于 OS系统, 更不能应用于 中断, 否则系统崩溃死机。
建议修改为: DR0 <--> EAX , DR4 <--> EBX , DR8 <--> ECX , DR12 <--> EDX ,
这样, 高度保持和目前的 STC32 全兼容, STC32 的 MDU32, TFPU 占用 R0-R7(自动识别切换 BANK0/BANK1/BANK2/BANK3),
实现和 C编译器无缝衔接。
由于不使用全局变量, 所有DPU32 指令, 可在 OS系统中 任意使用, 除少量占用DR12 的高级指令之外, 绝大多数指令,
可在中断中任意使用, 实于性超强, 加速提升 STC32G96K256 的挡次。
【DPU32】模块 和 OS系统的耦合程度越高, 则组成调用 DPU32指令的 子程序越短小精练, 执行速度也越快, 有利于综合提升整体运算速度。
如果按照【DPU32】(讨论稿)方案实行, 为达到在 DPU32指令能在 OS系统和中断中使用, 需增加一大堆辅助代码, 大大降低了 DPU32整体运算速度。
|
|