汇编-ORG指令详解
ORG指令
ORG指令
ORG是Origin的缩写:起始地址,源。在汇编语⾔源程序的开始通常都⽤⼀条ORG伪指令来实现规定程序的起始地址。如果不⽤ORG规定则汇编得到的⽬标程序将从0000H开始。例如:
            ORG 2000H   
START:MOV  AX,#00H
汇编语言结束指令
汇编语⾔源程序中若没有ORG伪指令,则程序执⾏时,指令代码被放到⾃由内存空间的CS:0处;若有ORG伪指令,编译器则把其后的指令代码放到ORG伪指令指定的偏移地址。两个ORG伪指令之间,除了指令代码,若有⾃由空间,则⽤0填充。
预处理-->编译-->汇编-->链接,这是⾼级语⾔的编译全过程。对于纯汇编,就只有汇编和链接两个步骤。
org指令是链接时使⽤的,不是汇编那⼀步使⽤的。即不是cpu的⼀条指令,⽽是给编译器看的伪指令。
在51单⽚机、x86 dos、win32 exe中实现都有差异。
以最简单的51单⽚机为例,编译器最终链接⽣成HEX⽂件,再烧录到51的rom中去。单⽚机很简单,没有x86的分段、分页,启动就是从rom的0x0的位置开始执⾏。同时0x30H位置开始存放中断向量,
所以单⽚机程序⼀般开头就是:
ORG 0000H
AJMP MAIN
ORG 0030H
这⾥的ORG 0000H指令,使得程序链接成HEX⽂件时,AJMP MAIN这条指令的机器码就在HEX⽂件的0x0位置。这是链接器的⼯作。
⾄于x86 dos和win32 exe,ORG的实现就复杂了,ORG不再是绝对定位,只能在⼀个段⾥相对定位。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。