谁能帮我开导51单片机这个问题:使用ORG这个伪指令最终是为了达到什么目的?
来源:百度知道 编辑:UC知道 时间:2024/08/22 02:19:32
比如一段示例程序开始是:
ORG 0000H
AJMP MAIN
ORG 0030H,我已经知道ORG是个用于定位的伪指令,
就是把从这句话开始直到下一个ORG指令或者END指令前的程序语句都顺序放在它指定的地址里。程序里ORG只管了一个语句(AJMP MAIN),则从0000h这个地址开始放语句。放多少,看下面有几条语句(直到org或end 指令为止)。
同样ORG 0030H是把它后面的所有到下一个ORG或END命令前的所有代码都顺序放到从0030H开始的程序单元。那么,我这就有几个不解:①是根据什么情况来确定后面的代码要存放到0000H或0030H单元的②如果我不使用这个ORG指令,会对程序的存放位置产生什么的影响③使用ORG指令最终是为了达到一个什么样的目的,会产生一个怎样的效果?
请不要直接从其他地方拉没有回答到中心的文字,我希望能结合你自己的经验心得来回答……
ORG 0000H
AJMP MAIN
ORG 0030H,我已经知道ORG是个用于定位的伪指令,
就是把从这句话开始直到下一个ORG指令或者END指令前的程序语句都顺序放在它指定的地址里。程序里ORG只管了一个语句(AJMP MAIN),则从0000h这个地址开始放语句。放多少,看下面有几条语句(直到org或end 指令为止)。
同样ORG 0030H是把它后面的所有到下一个ORG或END命令前的所有代码都顺序放到从0030H开始的程序单元。那么,我这就有几个不解:①是根据什么情况来确定后面的代码要存放到0000H或0030H单元的②如果我不使用这个ORG指令,会对程序的存放位置产生什么的影响③使用ORG指令最终是为了达到一个什么样的目的,会产生一个怎样的效果?
请不要直接从其他地方拉没有回答到中心的文字,我希望能结合你自己的经验心得来回答……
以下序号不是按你的问题排的。
1,芯片上电重启位地址为0000H
2,0000H后的可用空间很小,因为后面都是中断地址,如000BH等很多个。
3,主程序起始地址一般放中断向量后的较大空间。
4,ORG就是用来做代码定位的。定义程序起始位置。
5,中断向量中放中断程序的跳转位置。
就一句话:跳开ROM开头的中断地址。剩下的都是废话。
楼上的说的对
你去认真仔细看一下各中断的入口地址就知道了
如果你在程序中使用了中断,那ORG就是必须的,而且建议在0060H之后才开始主程序。
①是根据你自己要用的功能入口地址
②如果我不使用这个ORG指令,会对程序的地址混乱而无法编译
③使用ORG指令最终是为了达到有序,个人认为是按规则给程序的起始点排序。