程序如下: INCLUDE "E:程序BH上控EM78P447.INC" ;寄存器定义头文件 INCLUDE "E:程序BH上控clrEM78P447RamBank.INC" ;所有RAM清零库文件 INCLUDE "E:程序BH上控MACDEF.INC" ;使用到的宏的定义 INCLUDE "E:程序BH上控447REG.INC" ;自定义寄存器名 ORG 0XFFF JMP MAIN ;跳转到系统初始化 ORG 0X001 JMP ENTER_INT ;跳转到中断事件 ORG 0X010 ;********************************************************************** ; INT_EVENT PROCESS ;********************************************************************** ENTER_INT: ;现场保护 MOV ABUFF,A ;A寄存器保护 SWAP ABUFF SWAPA SR ;状态寄存器R3保护 MOV SRBUFF,A SWAPA RSR ;RAM选择寄存器保护 MOV RSRBUFF,A BC SR,PS1 BC SR,PS0 BC R4,6 TCC_INT: BC R3F,TCIF ;CLR R3F BS TCC100US_HAPPEN MOV A,@60 MOV TCC,A TIME20MS_INT: DJZ COUNT_FOR_1S1 JMP EXIT_INT MOV A,@198 MOV COUNT_FOR_1S1,A BS TCC20MS_HAPPEN TIME1S_INT: DJZ COUNT_FOR_1S2 JMP EXIT_INT MOV A,@49 MOV COUNT_FOR_1S2,A BS TCC1S_HAPPEN EXIT_INT: ;中断现场返回 SWAPA SRBUFF MOV SR,A SWAPA RSRBUFF MOV RSR,A SWAPA ABUFF RETI
问题出现在,如果在把一个子程序放在org 0x400后面 主程序中 page1 call xx page0 就不能正常工作
放在0x400之前能正常工作 在子程序开头disi ,结局eni 也能正常工作。 有类似经历的同志们帮忙看下 |