[H8-ML(1068)] Re: "MOV.L @H’100000:16, ER1"の" :16"って何
From: 廣田 正孝 <mhirota@xxxxxxxxxxxxx>
Date: 2001年04月07日(土)00時49分24秒
Kohya Gotoh wrote:
 
> > つまり、H'100000:16,ER1という記述自体が間違っているのです。
> □そうなんですか。
> 日立マイクロコンピューター H8/300Hシリーズ
> CPU編 第2版 p.11 にある記述なんですけど誤植ですか。
> 日立さ〜ん!
 確かに誤植ですね。

> > 指定時の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'だったら、どうなるかもうおわかりですね。

では、では。

-- 
/******************************************************************************
Name: 廣田 正孝 "Masataka Hirota"
E-mail address:  mhirota@xxxxxxxxxxxxx
                 GCD03040@xxxxxxxxxxx
******************************************************************************/
スレッド概略
[1062(R)](起点)
 └[1067(U)]
   └[表示中]
     └[1069(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]