昨天在51单片机的课程上,老师说:
单片机程序一般开头就是
ORG 0000H
AJMP MAIN
ORG 0030H
这个ORG什么作用呢?可以让接下来的代码在ORG指定的地址运行。以前就有接触ORG,不过一直有一个误区,把它当做是能让程序直接拷贝到指定地址。其实不是,先让我们来看看“汇编金手指”对它的解释:
定位伪操作 ORG
格式: ORG<数值表达式>
功能: 该指令把位置计数器的值设置成表达式的值。
把位置计数器置成后面的值,什么是位置计数器,是pc嘛?
不是,来看下面一段来自《微机》里的解释:
指定起始位置伪指令
格式:ORG 表达式
其中,ORG(origin)是操作码,不可省略。表达式给出偏移地址值,即ORG语句后的指令或数据以表达式给出的值作为起始的偏移地址。表达式必须是一个可计算得到的正整数,数值范围在0~65 535之间。
ORG伪指令用来指出其后的程序段或数据块存放的起始地址的偏移量。汇编程序汇编时把语句中表达式的值作为起始地址,连续存放ORG语句之后的程序和数据,直到出现一个新的ORG指令。若省略ORG 语句,则从本段起始地址开始连续存放。
在大多数情况下,不需要用ORG语句设置位置指针。由于段定义语句是段的起点,它的偏移地址为 0000H,以后每分配一个字节,位置指针自动加1,所以每条指令都有确定的偏移地址。只有程序要求改变这个位置指针时,才需要安排ORG语句。通常ORG语句可以出现在程序中任何位置上。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !