お世話になってます。多田です。 アドバイスをしてくれました皆さん、ありがとうございました。 Kengo Jinno <kengo@xxxxxxxxxxxx> さんは書きました。 > 仕掛けがあります。 > 日立から提供されているハードウェアマニュアルを見てください。 > 手元にあるのは H8/3048F-ONE のですが、「2.3 アドレス空間」に > > | アドレス空間が1Mバイトモードの場合、実効アドレスの上位4ビットは > | 無視され、20ビットのアドレスとなります。 > > とあります。 マニュアルは見たつもりだったのですが、これは見逃していました。 なるほど、24ビットのアドレスを指定しても、1Mバイトモードの時は 20ビットのアドレスとみなされるのですね。 Shigeru Makino <mac@xxxxxxxxxxxxxx> さんは書きました。 > 先ほど、 > =================================== > コンパイラYCH8のバージョンは4.11です > コンパイラYCH8Nのバージョンは4.12です > アセンブラYAH8のバージョンは4.12です > リンカーのバージョンは2.665です > ライブラリアンのバージョンは2.610です > =================================== > で、実際にやってみて、 > Error : E33 : 絶対アドレスの大きさが規定値を超えています > と言うエラーが37個発生するのを確認したのですが... 当方は、日立提供のヘッダーファイルでなく自前のヘッダーファイル を使用しているのですが、24ビットのアドレス定義の場合、 YCオプションの「/A 1Mバイトモードでアセンブラを起動する」の チェックを入れると上記のエラーが出て、チェックを外すと エラーなくコンパイルできました。 プロジェクトの設定にあるセグメント定義とメモリマップの設定は、 1Mバイトのアドレス空間に設定しています。 YCオプションの「/A 1Mバイトモードでアセンブラを起動する」の チェックをしないとエラーなくコンパイルできましたので、 1Mバイトモードの時でも、このオプションをチェックしなくても 良いのですかね? 下記が当方のバージョンです。 =================================== コンパイラYCH8のバージョンは4.05です コンパイラYCH8Nのバージョンは4.05です アセンブラYAH8のバージョンは4.10です リンカーのバージョンは2.663です ライブラリアンのバージョンは2.610です ===================================