标题:
51单片机前几个字节为什么需要空着
[打印本页]
作者:
bill_liu
时间:
2018-4-28 09:19
标题:
51单片机前几个字节为什么需要空着
单片机编程时,为什么前4个字节需要空着,是必须这么做吗?
作者:
456123..
时间:
2018-4-28 11:23
不是 应该只是好看的吧
作者:
yzwzfyz
时间:
2018-4-28 22:20
楼主。这是哪一个条款规定的啊?
作者:
zhuyongquan123
时间:
2018-4-28 22:41
因为简洁一些吧,不是必须的反正
作者:
莫哭哭
时间:
2018-4-29 00:59
应该是复制粘贴的结果 没有这个规定
作者:
angmall
时间:
2018-4-29 07:09
51单片机硬件设计的中断服务程序入口地址是固定的
INT0:0003H
T0: 000BH
INT1:0013H
T1: 001BH
串口0023H
这个是固定的地址,不能变的,所以中断服务程序只能从这里进入,而由于地址很接近,放不了大程序,所以通常会在这里安置一条跳转指令,跳到另外的地点。
中断响应后会立刻由硬件将当前地址(PC)入栈,然后把新地址放在PC中。
这个是INTEL设计51单片机时硬件设定的,不能改的。而响应哪个中断,由硬件自动修改PC为相应的中断服务程序入口地址。
作者:
angmall
时间:
2018-4-29 07:10
不放到开头,那你想要放到哪里? 单片机生产出来,代码空间可以小至只1K空间甚至更少,无论如何少,开头的一点空间一定是存在的,所以硬件设计师就把中断表放到开头了 中断发生时,当前指令地址被压栈保护,而后直接转到了中断向量对应的地址,而这个地址上第一个指令基本上是一个goto,它跳转到真正的中断处理程序中
作者:
angmall
时间:
2018-4-29 07:11
理论上讲放在哪里都一样,不过,你不想想,如果入口放在中央,你编写的汇编指令的下一条就是中断入口,为了避开他们,那你程序就得更复杂的跳来跳去,累不累,另外放在中间在修改时也不好找,几k的空间好找么。说白了就是集中放在一个好找好识别的地方。返回通过堆栈。
作者:
angmall
时间:
2018-4-29 10:05
如果你没有使用中断的话,从开头执行,完全没有问题。
作者:
dqc466257261
时间:
2018-4-29 13:12
不是必须的
作者:
chacha123
时间:
2018-4-30 00:41
前几个有中断的入口
作者:
ljh007
时间:
2018-4-30 09:45
不是必须,这个空不空都可以
作者:
45210
时间:
2018-4-30 11:06
只是显得整齐一点
作者:
xiweibiao7
时间:
2018-4-30 16:43
不是必须的啊
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1