PSoC®1アセンブリ言語でユニオン変数ブロックを宣言する - KBA91675 - Community Translated (JA)

Version 1

    Community Translated by NoTa_4591161 Expert      Version: **

     

    Translation - English: Declaring Union Variable Blocks in PSoC® 1 Assembly Language - KBA91675

     

    質問:

    PSoC® 1で、どのようにユニオン変数ブロックは(変数が同じメモリ位置を占める)アセンブリ言語で宣言することができますでしょうか?

     

    回答:

    同じメモリ位置に2つのRAM領域を配置するには、「AREA」ディレクティブの「OVR」(オーバーラップ)キーワードを使用します。

    以下のコンテンツは、「OVR」キーワードについて説明しています。このコンテンツは、PSoC Designer Help > Documentation > Compiler and Programming Documents > Assembly Language User Guideで利用可能な「ImageCraftアセンブリ言語ガイド」の76ページから引用されていることに注意してください。これはhttp://www.cypress.com/file/44746/downloadのリンクから入手できます。

    OVR –順次AREAが同じアドレスで始まることを指定します。これは、AREAのユニオンになります。AREAディレクティブの合計サイズは、最大領域のサイズになります。

    次の例は、2つのRAM変数グループ「areavar1」と「areavar2」の領域を同じメモリ位置にマップする方法を示しています。

    AREA areavar1(RAM, REL, OVR)
    VAR1:     blk 32 ; RAM storage
    area areavar2(RAM, rel, con)
    VAR2_INITIAL:      blk 5
    VAR2_FINAL:        blk 1

    areavar1areavar2は重複するメモリロケーションを占有するため、「VAR2_FINAL」は「VAR1 + 5」と同じRAMロケーションにマップされます。