後藤さんこんにちは、廣田です。 > >>(自動的に24bitに符号拡張されるから?) > > その通りです。 > でもそれだと"MOV.L @H’1000:16, ER1"で > H’001000と符号拡張されるのは分かります。 > だけど"MOV.L @H’100000:16, ER1”での こういう記述だとアセンブラはワーニングになります。 これでは、16ビットでは指定できない範囲を示しています。 アセンブラはこの指定を無視して24ビット指定にします。 つまり、H'100000:16,ER1という記述自体が間違っているのです。 > H’100000"は元々24bitですよね。 > それだったら、"MOV.L @H’100000:24, ER1” > じゃないかなあって思うんですけど、なぜ":16"なんでしょう? 16ビットでアドレシング出来る範囲は 000000〜007FFFと FF8000〜FFFFFFの範囲です。後藤さんも理解している様に16ビット 指定時のMSBが2^23〜2^16にコピーされて"00000000"か"11111111"に なるからです。 -- /****************************************************************************** Name: "Masataka Hirota" E-mail address: mhirota@xxxxxxxxxxxxx ******************************************************************************/