お世話になってます。後藤です。 > > > 指定時のMSBが2^23〜2^16にコピーされて"00000000"か"11111111"に > > > なるからです。 > > ええ?、これ分からないです。 > > ■2^23は、H'800000だし 2^16は、H'FFFFですよね。 > > 2^24だと、H'FFFFで 2^15だったら、H'8000なんですが? > > ■"コピー"ってER1にコピーされるんじゃないんですか? > > ■"00000000"か"11111111"になるからです。 > > さっぱり分かりません。(・・;) > H8/300HではPCは24ビット持っているとしましょう。(16Mモード時) > 16ビットでアドレスを指定すると、16ビットのMSBは2の15乗の位置です > これを(2^15)と表記します。私だけか? □そう言う意味ですか。 > HEXで考えるとわかりにくいかもしれ > ませんのでバイナリで考えましょう。 > 16ビットでH'8000としてしたら24ビットのバイナリで考えると > "00000000000000001000000000000000"です。 > "1"になっている場所が(2^15)の位置です。これが符号拡張される(=上位ビット > 全てにコピーされると、 > "11111111111111111000000000000000" > となります。(2^23)の位置から(2^16)の位置まで全て'1'で埋められます。 > > では、(2^15)の位置が'0'だったら、どうなるかもうおわかりですね。 □"00000000000000000000000000000000"ですよね。 そして、 "11111111111111111000000000000000" "00000000000000000000000000000000" の2^23乗目〜2^16乗目の間 "--------11111111----------------" "--------00000000----------------" の部分の事を指して "00000000"か"11111111"になるって事ですか。