2017.1.3
前へ
次へ
ホームページトップへ戻る


16ビットマイコンボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
いつか使ってみるつもりで入手してそのまま置いてあった16ビットCPUのことを思い出しました。
AMD社のAM188です。
その名の通り、CPUコアは80188互換の16ビットCPUです。
そのAM188を使った16ビットマイコンボードの製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第6回]


●リセット時のレジスタの初期値

今朝(1月3日)になって、前回を読み直しましたところ、前回は時間がなくて走り書きになってしまったため、誤字などがあってそれは訂正したのですが、そのほかに舌足らずな表現のところをみつけましたので訂正して注記を書き加えました。
訂正前の記事をお読みになられた方は前回を再読いただきますようお願いいたします。

さて今回は、リセット後のプログラムの開始アドレスが物理メモリアドレスのFFFF0であることについて書くことにします。

AM188のリセット後のレジスタの初期値は下の表にまとめられています。

[出典]Advanced Micro Devices,Inc. Am186EM and Am188EM Microcontrollers User’s Manual

この表にはCPUレジスタだけではなくて、AM188の特殊なレジスタ群についても書かれていますが、今はそれについては触れません。
ここで必要なのは上から2段目から下の数段のところです。
IPはプログラムカウンタのことです。
これはリセットによって0000になります。
それは8080やZ80と同じです。
その下のCSの初期値がFFFFであるというところが重要です。
CS=FFFFということは、コードセグメントが物理アドレスのFFFF0から上の64KBということです。
DS、ES、SSはいずれも0000になっています。
SP(スタックポインタ)については書かれていません。
Note:”Registers not listed in this table are undefined at reset.
とありますから、SPはリセットによって初期値は設定されないようです。

これらのレジスタの初期値について、8086はどうなのか、ということがちょっと気になったので確認してみました。
ネットからダウンロードしたかなり古い資料で、表紙がありませんので、出典ははっきりしません。
Intelの1979年発行の ”8086 Family User’s Manual”のコピーのようです。



Table2−4を見ると、AM188の初期状態が8086と同じであることがわかります。

ということで、AM188(8086も同じ)のリセット後のプログラム開始アドレスが物理メモリアドレスのFFFF0であることが確認できました。
ところが本稿を書いていてどうにも納得できないおかしなことに気が付きました。

本日は時間がなくなってしまいましたので、そのことについては次回に書くことにします。

16ビットマイコンボードの製作[第6回]
2017.1.3upload

前へ
次へ
ホームページトップへ戻る