ORG 偽指令

ARM的程式設計師敲著詩歌的夢發表於2020-04-04

彙編地址計數器

彙編地址計數器用符號$表示,它用來記錄正在被彙編程式翻譯的語句的地址,即它的內容標示了彙編程式當前的工作位置。

在一個源程式中往往包含多個段。彙編程式在將該源程式翻譯成目標程式時,每遇到一個新的段,就為該段分配一個初置為0的彙編地址計數器,然後,再對該段中的指令彙編。在彙編過程中,對凡是需要申請分配儲存單元的變數和產生目的碼的指令,彙編地址計數器就按儲存單元數和目的碼的長度增值。因此,段內定義的所有標號和變數的偏移地址就是當前彙編地址計數器$的值。

彙編地址計數器$也可以出現在表示式中。比如

DATA  SEGEMENT  USE16
BUF  DB  '12345ABCD'
COUNT EQU $-BUF           ;常量COUNT的值就是變數BUF資料區所佔的儲存單元數16位元組
DATA  ENDS

org偽指令

彙編地址計數器的值可以用偽指令ORG設定,其格式是

ORG 數值表示式

功能是將彙編地址計數器設定成數值表示式的值。其中數值表示式的值應為0000H~FFFFH之間的整數(對於16位真實模式)。
例如:

DATA  SEGMENT  USE16
ORG 10;        ; 設定$為10,此段目的碼從偏移地址10開始
BUF DB 'ABCD'    ;  BUF的偏移地址為10
ORG $+5          ;  $增5,即在ABCD之後空出5個位元組
NUM   DW 50      ;  NUM的偏移地址為19
DATA  ENDS

【完】

參考資料
[0] 《微機原理與介面技術》(朱定華,北方交通大學出本社,清華大學出版社)
[1] http://blog.csdn.net/yeweiouyang/article/details/8645153

相關文章