原因:单片机中,0000H单元为系统启动地址,ORG 0000H AJMP MAIN 就是在该地址存放一条绝对跳转指令,转入主程序的入口地址。ORG 0030H 是为了把用户程序定位到用户RAM区(30H-7FH),0000H-0030H存储单元地址是有其他特殊功能的。
在汇编语言源程序的开始通常都用一条ORG伪指令来实现规定程序的起始地址。如果不用ORG规定则汇编得到的目标程序将从0000H开始。程序从ROM的0000开始存放程序,但是AJMP MAIN是一条无条件跳转指令,也就是说,单片机上电之后首先从0000处开始执行程序。
但是,AJMP直接将程序跳转到MAIN标号指向的存储区域开始取指令,并执行,而一般MAIN标号是放在语句ORG 0030之后的,也即,主程序是从0030这个地址开始存放的。
扩展资料:
单片机数据存储器的特殊区段:
1、工作寄存器区(00H-1FH)
在00H-1FH共32个单元,被均匀地分为四组工作寄存器堆:RB0、RB1、RB2、RB3,每组寄存器堆包含8个工作寄存器,均以R0-R7来命名,这些寄存器被称为通用寄存器。工作寄存器用于临时存放8位信息。在使用时,由程序状态字寄存器中的RS0、RS1来选择工作寄存器堆。
2、位寻址区(20H-2FH)
片内数据存储器的20H-2FH存储区为位寻址区,既可作为一般单元按字节寻址,也可按位进行寻址。位寻址区有16个字节,位地址为00H-7FH。
参考资料来源:百度百科-单片机存储器
参考资料来源:百度百科-org
为什么在用单片机汇编编程时,开头都要写上 ORG 0000H AJMP MAIN ORG 0...
ORG是伪指令,告诉编译器,程序从ROM的0000开始存放程序,但是AJMP MAIN是一条无条件跳转指令,也就是说,单片机上电之后首先从0000处开始执行程序,但是,AJMP直接将程序跳转到MAIN标号指向的存储区域开始取指令,并执行,而一般MAIN标号是放在语句ORG 0030之后的,也即,主程序是从0030这个地址开始存放的...
单片机中为什么是0000H开始执行程序?
原因:单片机中,0000H单元为系统启动地址,ORG 0000H AJMP MAIN 就是在该地址存放一条绝对跳转指令,转入主程序的入口地址。ORG 0030H 是为了把用户程序定位到用户RAM区(30H-7FH),0000H-0030H存储单元地址是有其他特殊功能的。在汇编语言源程序的开始通常都用一条ORG伪指令来实现规定程序的起始地址...
单片机程序第一句ORG 0030H什么意?
AJMP MAIN指令为无条件跳转指令,单片机上电时从0000地址开始执行程序。AJMP指令将程序跳转到MAIN标号指向的存储区域开始取指令。MAIN标号通常位于ORG 0030指令之后,意味着主程序存放于0030地址开始。这是因为在单片机内部有若干中断源,其默认入口位于0000-0030之间。每个中断占用2个字节或4个字节,具体不详。
汇编语言中第一行有ORG 地址;表示什么啊!
MAIN: MOV A,#6BH ;表示强行指定main程序,从1000H开始 若是没有ORG指定地址,程序就从0000H开始。
汇编程序的开头第二个org指令的作用?
第二条是控制汇编时将MOV C,P0.0从0030H处开始存放。之所以AJMP MAIN和MOV C,P0.0没有挨着存放,是因为单片机的中断入口地址需要占用0003H\\000BH\\0013H\\001BH\\0023H\\等,还要看你的单片机有几个中断源。
org汇编指令的疑惑。。
所以单片机程序一般开头就是 ORG 0000H AJMP MAIN ORG 0030H 这里的ORG 0000H指令,使得程序链接成HEX文件时,AJMP MAIN这条指令的机器码就在HEX文件的0x0位置。这是链接器的工作。至于x86 dos和win 32 exe,ORG的实现就复杂了,我也不清楚,ORG不再是绝对定位,只能在一个段里相对定位。
org 0000h
ORG 是汇编中的伪指令。ORG 0000H 表示后面紧跟的那条指令的地址是 0000H 如常用的:ORG 0000H AJMP MAIN ;AJMP MAIN 这条指令的地址是0000 ORG 0030H MAIN:AJMP $ ;AJMP $ 这条指令的地址是0030H END
单片机流水灯汇编求指教,请大神解释每行代码的意思
ORG 0000H 程序从0000h这开始运行 AJMP MAIN 然后跳到 main ORG 0030H mian从0030h开始运行 MAIN:mov P2 ,00 ;这不知道干嘛用,p2口接的什么?mov P0 ,01h ;p0口送出,01h,最 左边 的 小灯 亮 MOV A ,P0 LOOP:RL A ;01h循环左移一位,变成00000010b LCALL DELAY 调用延时程序,...
单片机中org 这程序指定的是什么的起始,可否举几个应用的例子_百度知 ...
LJMP X0_INT ;转到X0中断入口 ORG 0013H LJMP X1_INT ;转到X1中断入口 org 0030h START:程序从00h开始运行。跳转到start开始执行,然后当中断0来到的时候,会跳转到x0_int这里.start真正开始存储的位置是从0030h开始的。你说的64k的32位地址,是不是指32位的cpu,程序存储器大小是...
流水灯单片机程序代码
单片机流水灯程序代码(汇编语言):ORG0000HAJMPMAINORG0030HMAIN:MOVP1,#11111110BACALLDELAY;跳转到子程序MOVP1,#11111101BACALLDELAYMOVP1,#11111011BACALLDELAYMOVP1,#11110111BACALLDELAYMOVP1,#11101111BACALLDELAYMOVP1,#11011111BACALLDELAYMOVP1,#10111111BACALLDELAYMOVP1,#01111111BACALLDELAYAJMP...