原创
BIT,CODE,DATA,IDATA 和 XDATA 定义
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 |
文章评论(0条评论)
登录后参与讨论