|
BIT,CODE,DATA,IDATA 和 XDATA 伪指令把一个地址值分配给指令的符号。由 BIT、CODE。DATA、IDATA 和 XDATA 伪指令定义的符号不可更改或重复定义。这些伪指令的使用格式如下: | symbol | BIT | bit_address | ; 定义一个 BIT 符号 | | symbol | CODE | code_address | ; 定义一个 CODE 符号 | | symbol | DATA | data_address | ; 定义一个 DATA 符号 | | symbol | IDATA | idata_address | ; 定义一个 IDATA 符号 | | symbol | XDATA | xdata_address | ; 定义一个 XDATA 符号 | 其中 symbol
| 是要定义的符号名称。该符号名称可以用在这种存储类型的地址空间中的任意位置。
| bit_address
| 是在内部数据存储空间中 20H .. 2FH 区域中一个位的地址,或者 8051 位可寻址 SFR 的一个位地址。
| code_address
| 是在 0000H .. 0FFFFH 之间的一个代码地址。
| data_address
| 是在 0 到 127 之间的一个数据存储器地址,或者在 128 .. 255 范围内的一个特殊功能寄存器(SFR)地址。
| idata_address
| 是 0 to 255 范围内的一个 idata 存储器地址。
| | xdata_address | 是 0 to 65535 范围内的一个 xdata 存储器地址。 | 例程 | DATA_SEG | SEGMENT BITADDRESSABLE | | | RSEG | DATA_SEG | ; 一个位可寻址的重定位段 | | | | | | | CTRL: | DS | 1 | ; 一个单字节变量(CTRL) | | ALARM | BIT | CTRL.0 | ; 在一个可重定位字节中的位 | | SHUT | BIT | ALARM+1 | ; 下一位 | | ENABLE_FLAG | BIT | 60H | ; 一个绝对地址位 | | DONE_FLAG | BIT | 24H.2 | ; 一个绝对地址位 | | P1_BIT2 | EQU | 90H.2 | ; 一个 SRF 位 | | RESTART | CODE | 00H | | | INTVEC_0 | CODE | RESTART + 3 | | | INTVEC_1 | CODE | RESTART + 0BH | | | INTVEC_2 | CODE | RESTART + 1BH | | | SERBUF | DATA | SBUF | ; SBUF 的重定义 | | RESULT | DATA | 40H | | | RESULT2 | DATA | RESULT + 2 | | | PORT1 | DATA | 90H | ; 一个特殊功能寄存器(SFR )符号 | | BUFFER | IDATA | 60H | | | BUF_LEN | EQU | 20H | | | BUF_END | IDATA | BUFFER + BUF_LEN - 1 | | | XSEG1 | SEGMENT | XDATA | | | RSEG | XSEG1 | | | | | | | | | DTIM: | DS | 6 | ; 为 DTIM 保留 6 字节 | | TIME | XDATA | DTIM + 0 | | | DATE | XDATA | DTIM + 3 | ; 罗亩的笔记 |
|
|