感谢分享,收藏学习
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
有用,谢谢指导!
mmxx2024 发表于 2025-4-7 15:17
V3版库有隐患:
(1)部分子程序强行关、开总中断。退出时总中断总是打开的,如果调用程序前总中断是关闭 ...
看了版主好像第一和第三像源程序都做了更改,为啥第二项不更改呢,变量在XDATA条件下,直接调用DPTR就发生了改变,我理解错了?
不需要保护吗?
是不是库只能使用在SMALL模式,不考虑使用COMPACT和LARGE模式啊?
xhbwork 发表于 2025-11-22 09:49
看了版主好像第一和第三像源程序都做了更改,为啥第二项不更改呢,变量在XDATA条件下,直接调用DPTR就发 ...
有一部分改了,一部分没改,我就是使用发现问题反查才知道原来问题在库中。
这是汇编能用的吗?
关于加减乘除MDU16有没有汇编例程?
LAOXU 发表于 2024-3-8 08:58
标准库含下列文件, 全部通过测试, 可加快程序运行速度 !
影响程序执行速度的库函数( 主要含 MDU 16x16位乘 ...
这个不能汇编调用吧?