FX2LP TRMの0x9Cおよび0x9Fの特殊機能レジスタがありません - KBA218336 - Community Translated (JA)
- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
Community Translated by NoTa_4591161 Version: **
Translation - English: Missing Special Function Registers - 0x9C and 0x9F in FX2LP TRM - KBA218336
質問:
TRMで定義されていない特殊機能レジスタ(SFR)0x9Cおよび0x9Fとは何でしょうか?
回答:
SFR 0x9Cおよび0x9Fは、外部RAMロケーション0xE67Bおよび0xE67CにあるデータレジスタXAUTODAT1およびXAUTODAT2と同じです。
ファームウェアの例でのXAUTODAT1およびXAUTODAT2の宣言は次のとおりです。
EXTERN xdata volatile BYTE XAUTODAT1 _AT_ 0xE67B;
EXTERN xdata volatile BYTE XAUTODAT2 _AT_ 0xE67C;
XAUTODAT2 = XTAUTODAT1;としてautoポインタを使用する場合、対応するアセンブリ命令は次のとおりです。
MOV DPTR, #XAUTODAT1(0XE67B)
MOVX A,@DPTR
MOV DPTR, #XAUTODAT2(0XE67C)
MOVX A,@DPTR
ただし、SFR 0x9Cおよび0x9Fを使用すると、実行が速くなります。これらのSFRを使用するには、存在しない場合は、次の2つの定義をfx2regs.hに追加します。
sfr AUTOPTR_INTDATA1 = 0x9C;
sfr AUTOPTR_INTDATA2 = 0x9F;
autoポインタをAUTOPTR_INTDATA2 = AUTOPTR_INTDATA1;として使用する場合、対応するアセンブリ命令は次のとおりです。
MOV AUTOPTR_INT_DATA2, AUTOPTR_INT_DATA1 これはより効率的です。