找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1359|回复: 13
打印 上一主题 下一主题
收起左侧

51单片机前几个字节为什么需要空着

  [复制链接]
跳转到指定楼层
楼主
ID:318236 发表于 2018-4-28 09:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   单片机编程时,为什么前4个字节需要空着,是必须这么做吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:318313 发表于 2018-4-28 11:23 | 只看该作者
不是 应该只是好看的吧
回复

使用道具 举报

板凳
ID:123289 发表于 2018-4-28 22:20 | 只看该作者
楼主。这是哪一个条款规定的啊?
回复

使用道具 举报

地板
ID:318680 发表于 2018-4-28 22:41 | 只看该作者
因为简洁一些吧,不是必须的反正
回复

使用道具 举报

5#
ID:318677 发表于 2018-4-29 00:59 | 只看该作者
应该是复制粘贴的结果  没有这个规定
回复

使用道具 举报

6#
ID:155507 发表于 2018-4-29 07:09 | 只看该作者
51单片机硬件设计的中断服务程序入口地址是固定的
INT0:0003H
T0:   000BH
INT1:0013H
T1:   001BH
串口0023H
这个是固定的地址,不能变的,所以中断服务程序只能从这里进入,而由于地址很接近,放不了大程序,所以通常会在这里安置一条跳转指令,跳到另外的地点。
中断响应后会立刻由硬件将当前地址(PC)入栈,然后把新地址放在PC中。

这个是INTEL设计51单片机时硬件设定的,不能改的。而响应哪个中断,由硬件自动修改PC为相应的中断服务程序入口地址。
回复

使用道具 举报

7#
ID:155507 发表于 2018-4-29 07:10 | 只看该作者
不放到开头,那你想要放到哪里? 单片机生产出来,代码空间可以小至只1K空间甚至更少,无论如何少,开头的一点空间一定是存在的,所以硬件设计师就把中断表放到开头了 中断发生时,当前指令地址被压栈保护,而后直接转到了中断向量对应的地址,而这个地址上第一个指令基本上是一个goto,它跳转到真正的中断处理程序中
回复

使用道具 举报

8#
ID:155507 发表于 2018-4-29 07:11 | 只看该作者
理论上讲放在哪里都一样,不过,你不想想,如果入口放在中央,你编写的汇编指令的下一条就是中断入口,为了避开他们,那你程序就得更复杂的跳来跳去,累不累,另外放在中间在修改时也不好找,几k的空间好找么。说白了就是集中放在一个好找好识别的地方。返回通过堆栈。
回复

使用道具 举报

9#
ID:155507 发表于 2018-4-29 10:05 | 只看该作者
如果你没有使用中断的话,从开头执行,完全没有问题。
回复

使用道具 举报

10#
ID:271591 发表于 2018-4-29 13:12 | 只看该作者
不是必须的
回复

使用道具 举报

11#
ID:319187 发表于 2018-4-30 00:41 来自手机 | 只看该作者
前几个有中断的入口
回复

使用道具 举报

12#
ID:319236 发表于 2018-4-30 09:45 | 只看该作者
不是必须,这个空不空都可以
回复

使用道具 举报

13#
ID:319274 发表于 2018-4-30 11:06 | 只看该作者
只是显得整齐一点
回复

使用道具 举报

14#
ID:319433 发表于 2018-4-30 16:43 | 只看该作者
不是必须的啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表