找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 3113|回复: 6
打印 上一主题 下一主题
收起左侧

单片机伪指令ORG的问题

[复制链接]
跳转到指定楼层
楼主

在做题的时候,师傅给的单片机程序开始地址是0100H,在我实际操作过后,发现如果从0100H开始,LED灯会一直亮着,不会有任何反应
但是如果从0000H开始,则会正常执行。我百度了一很多,但是还是没想明白为什么。但是很想知道其中的原理
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

举报

沙发
ID:65956 发表于 2020-5-18 08:16 | 只看该作者
在汇编里,用ORG 100H即程序从此处运行,即把相应的中断函数处口和堆栈给避开,如果你改为ORG 00H,可能在执行中断等相应程序时会出现不正常,如果是用C语言,软件会自动分配就不用考虑这么多了
回复

举报

板凳
ID:401564 发表于 2020-5-18 08:49 | 只看该作者
正确的是这样子的:
                                ORG                0000H                                                        ;
                                LJMP         STAR                                                        ;                               
                                ORG                100H
STAR:                        MOV                0BAH,#80H
回复

举报

地板
ID:319023 发表于 2020-5-18 10:30 | 只看该作者
是代码要改一下,要考虑中断函数入口
回复

举报

5#
ID:720377 发表于 2020-5-18 10:55 | 只看该作者
aking991 发表于 2020-5-18 08:16
在汇编里,用ORG 100H即程序从此处运行,即把相应的中断函数处口和堆栈给避开,如果你改为ORG 00H,可能 ...

理论上是这样的,我能理解~。但是问题是100H开始的话,灯会一直亮。程序非正常,我不会在ISIS7 里面下断点,所以不太明白这个错误是怎么形容的
回复

举报

6#
ID:720377 发表于 2020-5-18 11:10 | 只看该作者
Y_G_G 发表于 2020-5-18 08:49
正确的是这样子的:
                                ORG                0000H                                                        ;
                                LJMP         STAR                                                        ;                               

现在意思是0100H有问题~还有我在CRYSTAL频率,我设置6Mhz和12Mhz 感觉没有区别,这个是个啥情况
回复

举报

7#
ID:401564 发表于 2020-5-18 11:33 | 只看该作者
liuleen 发表于 2020-5-18 11:10
现在意思是0100H有问题~还有我在CRYSTAL频率,我设置6Mhz和12Mhz 感觉没有区别,这个是个啥情况

仿真无意义,我只管实际结果
12MHZ的时钟和6MHZ的时钟它一定是有区别的,在下载器选项那设定好下载看一下就知道了
回复

举报

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

本版积分规则

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

Powered by 单片机教程网

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