| segment | SEGMENT | class | reloctype | alloctype |
其中
| segment | 是分配給段的符號(hào)名。該符號(hào)名由后面的RSEG偽指令引用。段符號(hào)名也可用于表達(dá)式中代表由連接/定位器計(jì)算的組合段的基地址或起始地址。 |
| class | class是指定段所用的存儲(chǔ)類型。class為該段指明了存儲(chǔ)空間。參見(jiàn)下面的表格獲取更多信息。 |
| reloctype | 是該段的再定位類型。它決定連接/定位器要完成什么樣的再定位選項(xiàng)。參見(jiàn)下面的表格獲取更多信息。 |
| alloctype | 是該段的地址分配類型。它決定連接/定位器要完成什么樣的再定位選項(xiàng)。參見(jiàn)下面的表格獲取更多信息。 |
Class(存儲(chǔ)類型)
一個(gè)模塊中每個(gè)段的名稱必須是唯一的。但是,連接器將把相同類型的段組合起來(lái)。對(duì)于在其它源文件模塊中定義的段也是如此。class為段指明了存儲(chǔ)類型空間。A251區(qū)分基本存儲(chǔ)類型和用戶定義的存儲(chǔ)類型。連接/定位器使用class訪問(wèn)屬于那一存儲(chǔ)類型的所有段。
基本的存儲(chǔ)類型如下表:
| 基本存儲(chǔ)類型 | 說(shuō) 明 |
|---|---|
| BIT | BIT空間(地址20H .. 2FH)。 |
| CODE | CODE空間 |
| CONST | CONST空間;同CODE但只能存儲(chǔ)常數(shù);通過(guò)MOVC訪問(wèn)。 |
| DATA | DATA空間(地址0到7FH & SFR寄存器) |
| EBIT | 擴(kuò)展的251位空間(地址20H .. 7FH) |
| EDATA | EDATA空間 |
| ECONST | ECONST空間;同EDATA但只能存儲(chǔ)常數(shù) |
| IDATA | IDATA空間(地址0到0FFH) |
| ECODE | Intel/Atmel WM 251和Philips 80C51MX存儲(chǔ)程序代碼的整個(gè)地址空間。 |
| HCONST | Intel/Atmel WM 251和Philips 80C51MX存儲(chǔ)常數(shù)的整個(gè)地址空間。 |
| HDATA | Intel/Atmel WM 251和Philips 80C51MX存儲(chǔ)數(shù)據(jù)的整個(gè)地址空間。 |
| XDATA | XDATA空間;通過(guò)MOVX訪問(wèn)。 |
用戶定義的存儲(chǔ)類型名稱(只適用于AX51和A251)
用戶定義的存儲(chǔ)類型名稱由一個(gè)基本的存儲(chǔ)類型名稱和一個(gè)擴(kuò)展名組成,還要用單引號(hào)(')把它括起來(lái)。使用它們,我們可以像使用基本的存儲(chǔ)類型名稱一樣訪問(wèn)相同的地址空間。好處是我們可以用一個(gè)用戶定義的存儲(chǔ)類型聲名幾個(gè)段,以后使用連接器把那一類型(及其段)定位在一個(gè)特定的物理地址中。參見(jiàn)英文手冊(cè)336頁(yè)的“CLASSES”獲取如何定位用戶定義類型的信息。
例程
| seg1 | SEGMENT | 'NDATA FLASH' |
| seg2 | SEGMENT | 'HCONST BITIMAGE' |
| seg3 | SEGMENT | 'DATA1' |
重定位類型(Relocation Type)
選項(xiàng)重定位類型定義可能由連接/定位器完成的重定位操作。下表列出了正確的重定位類型:





