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