#include<reg51.h>
............................//宏定义
..........................//全局变量
void main()
{
....................//初始化
while(1)
{
...................//主程序
}
}
在一台最常见的计算机上,程序从某种外部设备,通常是硬盘,被加载到计算机之内。 如果是我们现在使用的普通电脑结构,那么程序就被加载入内存。 指令串行顺序执行,直到一条跳转或转移指令被执行,或者一个中断出现。所有这些指令都会改变指令寄存器的内容。基于这种体系的计算机,如果没有程序的支持,将无法工作。一个计算机程序是一系列指令的集合。程序里的指令都是基于机器语言;程序通常首先用一种计算机程序设计语言编写,然后用编译程序或者解释执行程序翻译成机器语言。 有时,也可以用汇编语言编程,汇编语言实质就是表示机器语言的一组记号-在这种情况下,用于翻译的程序叫做汇编程序。也就是说,当你双击某个程序时:
1、首先由CPU发出指令,从硬盘读取数据,然后调入内存中执行。
2、程序控制指令:也称转移指令。
执行程序时,有时机器执行到某条指令时,出现了几种不同结果,这时机器必须执行一条转移指令,根据不同结果进行转移,从而改变程序原来执行的顺序。
这种转移指令称为条件转移指令。除各种条件转移指令外,还有无条件转移指令、转子程序指令、返回主程序指令、中断返回指令等。 转移指令的转移地址一般采用直接寻址和相对寻址方式来确定。
主程序从main()开始执行,一句一句的,同时计时器也在工作,他和CPU的工作是不相干预的,完全分开的,当执行到某一句的时候,定时器计时完毕之后,就会像CPU请求中断,然后CPU就把当前执行的那一条语句执行完,跳到中断服务程序也就是interrupt中去处理中断,处理完毕之后再返回主程序去继续执行,然后定时器也继续工作,然后依次的循环下去,给你举个例子,interrupt就是个厨房,里边烧着水呢,你在卧室学习做题,当厨房的水烧开了报警,告诉你水开了,你接着就把手头的题做完了(当前指令执行完,压栈),然后到厨房把水灌好,再烧上水,接着去学习,接着坐下一道题,当下次水在烧开时,你再去处理,就这样,你做题学习和烧水是无关的,只有水开了才会向你请求欢迎分享,转载请注明来源:内存溢出
评论列表(0条)