FX2LP TRMの0x9Cおよび0x9Fの特殊機能レジスタがありません - KBA218336 - Community Translated (JA)

Version 2

    Community Translated by NoTa_4591161          Version: **

     

    Translation - English: Missing Special Function Registers - 0x9C and 0x9F in FX2LP TRM - KBA218336

     

    質問:

    TRMで定義されていない特殊機能レジスタ(SFR0x9Cおよび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  これはより効率的です。