找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2720|回复: 6
收起左侧

单片机伪指令ORG的问题

[复制链接]
ID:720377 发表于 2020-5-18 02:17 | 显示全部楼层 |阅读模式
1.png
在做题的时候,师傅给的单片机程序开始地址是0100H,在我实际操作过后,发现如果从0100H开始,LED灯会一直亮着,不会有任何反应
但是如果从0000H开始,则会正常执行。我百度了一很多,但是还是没想明白为什么。但是很想知道其中的原理
回复

使用道具 举报

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 | 显示全部楼层
是代码要改一下,要考虑中断函数入口
回复

使用道具 举报

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

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

使用道具 举报

ID:720377 发表于 2020-5-18 11:10 | 显示全部楼层
Y_G_G 发表于 2020-5-18 08:49
正确的是这样子的:
                                ORG                0000H                                                        ;
                                LJMP         STAR                                                        ;                               

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

使用道具 举报

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 单片机教程网

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