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

荣誉版主,老许版:8H系列/8G系列, MDU16 V3.0 LIB 库使用说明

[复制链接]
已绑定手机

123

主题

5133

回帖

1万

积分

超级版主

无情的代码机器

积分
11463
发表于 2025-3-9 20:25:39 | 显示全部楼层
感谢分享,收藏学习
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

1

主题

5

回帖

1367

积分

金牌会员

积分
1367
发表于 2025-4-7 15:17:46 | 显示全部楼层
V3版库有隐患:

(1)部分子程序强行关、开总中断。退出时总中断总是打开的,如果调用程序前总中断是关闭的,可能导致非预期的结果。这些计算好像不需要关闭中断,如果为了加速而关闭中断,建议这样做:
PUSH IE
CLR EA
……(原程序)
POP IE

(2)使用DPTR时应先保存,返回前恢复,因为有的16位局部变量使用DPTR,生成src文件会有这样的描述:
;---- Variable 'xxxx?263' assigned to Register 'DPTR' ----

建议改为:
PUSH DPH
PUSH DPL
……(原程序)
POP DPL
POP DPH

(3)那些地址分配到外部RAM地址的寄存器在使用前最好使能外部RAM寄存器访问,因为调用前这个设置是未知的。
建议改为:
PUSH P_SW2
ORL P_SW2,#80H
……(原程序)
POP P_SW2

回复

使用道具 举报 送花

已绑定手机

4

主题

87

回帖

775

积分

高级会员

积分
775
发表于 2025-7-18 20:12:14 | 显示全部楼层
有用,谢谢指导!
回复

使用道具 举报 送花

31

主题

181

回帖

536

积分

高级会员

积分
536
发表于 2025-11-22 09:49:26 | 显示全部楼层
mmxx*** 发表于 2025-4-7 15:17
V3版库有隐患:

(1)部分子程序强行关、开总中断。退出时总中断总是打开的,如果调用程序前总中断是关闭 ...

看了版主好像第一和第三像源程序都做了更改,为啥第二项不更改呢,变量在XDATA条件下,直接调用DPTR就发生了改变,我理解错了?

不需要保护吗?
回复

使用道具 举报 送花

31

主题

181

回帖

536

积分

高级会员

积分
536
发表于 2025-11-22 09:51:19 | 显示全部楼层
是不是库只能使用在SMALL模式,不考虑使用COMPACT和LARGE模式啊?
回复

使用道具 举报 送花

1

主题

5

回帖

1367

积分

金牌会员

积分
1367
发表于 2025-11-22 19:42:57 | 显示全部楼层
xhbw*** 发表于 2025-11-22 09:49
看了版主好像第一和第三像源程序都做了更改,为啥第二项不更改呢,变量在XDATA条件下,直接调用DPTR就发 ...

有一部分改了,一部分没改,我就是使用发现问题反查才知道原来问题在库中。
回复

使用道具 举报 送花

已绑定手机

3

主题

16

回帖

141

积分

注册会员

积分
141
发表于 2026-1-6 08:54:41 | 显示全部楼层
这是汇编能用的吗?
回复

使用道具 举报 送花

已绑定手机

3

主题

16

回帖

141

积分

注册会员

积分
141
发表于 2026-1-6 08:55:10 | 显示全部楼层
关于加减乘除MDU16有没有汇编例程?
回复

使用道具 举报 送花

已绑定手机

3

主题

16

回帖

141

积分

注册会员

积分
141
发表于 2026-1-6 08:56:14 | 显示全部楼层
LAO*** 发表于 2024-3-8 08:58
标准库含下列文件, 全部通过测试, 可加快程序运行速度 !
影响程序执行速度的库函数( 主要含 MDU 16x16位乘 ...

这个不能汇编调用吧?
回复

使用道具 举报 送花

已绑定手机

1

主题

8

回帖

337

积分

中级会员

积分
337
发表于 2026-10-23 15:35:38 | 显示全部楼层
许老师,请教一下,STC8H支持MDU16的系列,加了STC8_MDU16.LIB后,做两个16位乘法运算C语言该用哪个表达:
u16 a,b;
u32 c;
表达式1:c = a*b;
表达式2:c = (u32)a*b;
表达式1在没有库的时候应该会得出16位的结果,溢出部分就丢掉了吧,加了库会编译成32位吗?
表达式2在没有库的时候应该会得出正确的32位的结果,但是加了库会不会被编译器理解成32位相乘而不用库文件编译?
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-11-7 10:45 , Processed in 0.085289 second(s), 89 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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