ercircle 发表于 2025-3-9 20:25:39

感谢分享,收藏学习

mmxx2024 发表于 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

页: 1 2 3 [4]
查看完整版本: 荣誉版主,老许版:8H系列/8G系列, MDU16 V3.0 LIB 库使用说明