伪指令
sfr、
sfr16 和
sbit 与
Cx51 编译器完全兼容,我们可以在两种情况下都使用
SFR 寄存器定义文件:
Ax51 宏汇编器和
Cx51 编译器。伪指令
esfr 在
Philips 80C51MX 架构的扩展
SFR 空间定义符号。该伪指令只能在
AX51 宏汇编器中使用。这些伪指令的格式如下:
sfr | sfr_symbol = address; | |
esfr | sfr_symbol = address; | |
sfr16 | sfr_symbol = address; | ; 被 Ax51 忽略 |
sbit | sfr_symbol = bit_address; | |
其中
sfr_symbol | 是要定义的特殊功能寄存器(SFR)符号的名称。 |
address | 是在 0x80 - 0xFF 范围内的一个 SFR 地址。 |
bit_address | 是一个 SFR 位的地址,形式为地址^位位置(address^bitpos)或 sfr_symbol ^ bitpos。地址(address)或特殊功能寄存器符号(sfr_symbol)指向一个位可寻址的 SFR 和位位置,指明 SFR 中的位位置,范围为 0-7。 |
使用伪指令 esfr、sfr 或 sbit 定义的符号可以用在适合 SFR 地址或 SFR 位地址使用的任意位置。
例程
sfr | P0 | = 0x80; | |
sfr | P1 | = 0x90; | |
sbit | P0_0 | = P0^0; | |
sbit | P1_1 | = 0x90^1; | |
esfr | MXCON | = 0xFF; | /* 扩展的 Philips 80C51MX SFR */ |
sfr16 | T2 | = 0xCC; | /* 被 Ax51 忽略 */ |