声明:
1、本翻译仅供个人学习使用,本人没有提供技术支持的义务,也不承担由此引发的任何后果。
2、请勿用于商业用途。
3、英文来自:http://www.keil.com/support/man/docs/c51/。
4、欢迎大家共同与我交流探讨(290207203@qq.com)。
FIXXC800 Compiler Directive
| Abbreviation | FXC8 |
| Arguments | None. |
| Default | Compiler generates code that may contain MOV dir,dir with two special function registers. |
| µVision | Options — C51 — Misc Controls. |
| Description | The FIXXC800 directive prevents from creating code that contains MOV dir,dir with two special function registers (i.e. MOV P1,B). This directive is implemented to bypass chip problems on some XC800 device variants. Refer to the errata sheet of your device for more information. |
| Example | sfr X1=0x91;
sfr X2=0xA2;
sfr16 Y1=0xFA;
unsigned int j;
char c;
void main (void) {
X1 = X2; // by default creates MOV X1,X2
Y1 = X1 * 12; // by default creates MOV Y1+1,B
}
|
FIXXC800 编译器伪指令
| 缩写 | FXC8 |
| 参数 | 无 |
| 缺省 | 编译器生成的代码可能包含使用两个特殊功能寄存器的指令 MOV dir,dir 。 |
| µVision | Options — C51 — Misc Controls. |
| 描述 | FIXXC800 伪指令防止生成的代码包含使用两个特殊功能寄存器的指令 MOV dir,dir (例如, MOV P1,B)。 |
| 示例 | sfr X1=0x91;
sfr X2=0xA2;
sfr16 Y1=0xFA;
unsigned int j;
char c;
void main (void) {
X1 = X2; // 缺省生成 MOV X1,X2
Y1 = X1 * 12; // 缺省生成 MOV Y1+1,B
}
|
本文详细解释了FIXXC800伪指令在C51编程环境中的作用,如何防止生成特定类型的指令,并通过示例展示了其在实际编程中的应用。

被折叠的 条评论
为什么被折叠?



