[H8-ML(1066)] Re: "MOV.L @H’100000:16, ER1"の" :16"って何
From: 廣田 正孝 <mhirota@xxxxxxxxxxxxx>
Date: 2001年04月06日(金)22時08分59秒
 後藤さんこんにちは、廣田です。

> >>(自動的に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
******************************************************************************/
スレッド概略
[1062(R)](起点)
 └[1065(U)]
   └[表示中]
     └[1067(1)]


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


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