结构上看:上电后PC指针由0000H入口进入,而后跳至0100H,即是MAIN的起始地址。
MAIN一般的任务是做一些端口、寄存器和中断的初始化工作,而后进入空循环等待中断(“here:ajmp here”即为原地空等待),这条语句一直等到中断出现才会中断跳转。
0030H为某一中断的向量入口地址(好像51的外部中断0的向量入口为0003H,是不是一念之间的书写错误?),当芯片满足该中断条件时,PC指针指向该入口,进入中断。因为一系列的中断向量是以8字节大小连续排列的,而中断服务子程序一般远大于8字节,故一般在中断向量入口地址上放一条跳转语句,例中为ajmp pint0;
其中pint0后的程序段为中断服务子程序,中断返回(一般是RETI)后PC指针又自动恢复指向“here:ajmp here”语句,等待下一次中断。
不知你是明白了一点还是更加云雾了,但愿是前者。