|
伪指令 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 忽略 */ | 注意 Ax51 汇编器忽略由 sfr16 开头的符号定义。这是为了与 Cx51 编译器兼容。
|
|