No.3ベストアンサー
- 回答日時:
Z80ですね。
懐かしいです。> 0000H番地にはROMがいるはずです。
ROMがいて構わないのです。ROMの中に割りこみ処理ルーチンのアドレス(あるいは割りこみ処理プログラム)を焼きこんでしまうのです。割りこみルーチンで使うワークはRAMに取ればいいので一向に構いません。
0000H番地を使う理由は「電源ON」時にパワーオンリセットで0000H番地に飛ばして「最初の処理」をやらせようと言う魂胆です。
次にZ80の割りこみはマスク不能割りこみ、モード0、モード1、モード2の4種類に分類されます。相手の機器に合わせてモードを選ぼうと言うわけですね。柔軟性がありますね。
マスク不能割りこみ:割りこみ処理ルーチンは0066H番地から始まる。
モード0割り込み:割りこみを受け付けると入出力装置から1バイトのサブルーチン呼び出し命令を受け取り、これをもとにサブルーチンを呼ぶ。このとき、飛べるのは、0000H、0008H、0010H、0018H、0020H、0028H、0030H、0038Hの8つのアドレスだけである。
モード1割りこみ:常に0038番地をCALLする。
モード2割り込み:割りこみを受け付けると外部装置から、1バイトのベクターを受け取りIレジスタ(ベクターテーブルの先頭を示す)と合成してベクターテーブルを参照し、そこから割りこみルーチンアドレスを得て、そこにジャンプ(CALL)する。
以上でお分かりのように、モードによっていろいろなやり方が用意されています。
それとZ80の場合、ベクターテーブルは0000Hでなく、モード2でかつ、Iレジの示す場所に存在しています。
一般論だけでなく、機種を限定しないと話がかみ合わないのがこの世界です。
Z80は寿命の長い、いいCPUです。頑張ってください。
No.2
- 回答日時:
何か他の質問と関連があるようですが、どれかわかりませんので、
ここの範囲で・・・。
CPUレベルの話だと思いますが。
ベクタテーブルは、CPUによって決まったアドレスにあることもあり,また先頭アドレス等を設定できることもあります。
その場合でも,例えばリセット信号による割り込みは
ベクタ固定だったり、テーブルアドレスが固定であったりします。
ymmasayanさんは割り込み要因も含むとありますが、
私が知っているCPUではアドレスのみで、割り込み要因がテーブルのインデックスになっています。
まあ、この辺はCPUによって異なる部分ですので、
いろいろあるのでしょう。
また、ベクタテーブルは、例えばWindowsであれば、
OSやドライバ辺りで使うものですから,
一般のプログラマなら使わないとも言えますし,
そういうソフトが設定する以上、プログラマが
設定するものとも言えます。
また、組込機器のようなシステムでは、そのレベルから
プログラムとして組むことも珍しくはありません。
当然,プログラマがハードウェア割り込みに対応したプログラムを書くことになります。
有難う御座います。なかなか難しい質問になってしまったようです。
メモリマップを作ってみたんです。そしたらROMが0000H番地になったのです。
しかしソフトを勉強してみるとベクターテーブルが0000H番地にあります。
何故ソフトになると勝手にそんなものが出てくるのか不審に思いました。
それでベクターテーブルに疑問をもったわけです。
Z80のマイコンの電気回路を作成しました。その時にメモリマップが自動的に出来てしまったのです。
しかしソフトから見るとベクターテーブルがあるので何故なんだ?どうなるんだ?
と思ったわけです。
No.1
- 回答日時:
> このベクタテーブルって何ですか? またどのような働きがあるのですか?
割り込み処理を一括管理するために設けられているテーブルです。
割込み要因とその要因に対する割り込み処理ルーチンのスタートアドレスがペアで格納されています。
割込みが起こるとベクターテーブル経由で、該当の割り込み処理ルーチンへ飛びます。こうするとそれぞれの割り込み処理ルーチンの大きさや配置場所が自由になります。(ベクターテーブルの書き換えだけで済む)
> またベクターテーブルはプログラマーが組むものなんですか?
プログラマーは関知しません。システム管理者的な人が、どの割り込み処理プログラムをどのプログラム要因に結び付けるかを指定します。割り込み処理プログラムの実装段階という事です。
有難う御座います。大変期待していた回答をもらえた気がします。
しかし、ベクターテーブルの存在は分りましたが、その場合プログラムは
CPUで変わってくるはずです。今Z80CPUで電気回路を作っています。
システムは簡単なものです。しかしなにぶん初心者なので単純にメモリマップを作ったのですが、0000H番地にはROMがいるはずです。
Z80での場合はベクターテーブルはどうなるのですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) デジタル化推進でうちの会社では、ペーパーレス化が進んでいます。 そこで、質問です。 会社では、検査課 3 2023/06/11 00:17
- CPU・メモリ・マザーボード ゲーミングpcのファンのことについて教えて欲しいです。 6 2023/03/05 07:44
- ノートパソコン 自作にするか、メーカーか、オススメのノートPCをおしえてください。 5 2022/11/29 17:42
- バラエティ・お笑い 年末たったか NHKで マジックの番組がありまさした。 その中に ガラスのテーブルを コインが通り抜 8 2023/01/05 10:46
- 地図・道路 通勤で2km以上(最短距離)でなら専用駐車場が借りれるのですが 通勤経路で、勤務地から家まで測ると 2 2022/04/08 23:01
- 工学 照明工学の問題です。 円形テーブルの中心直上6mの点Pよりテーブルの外周部を見込む立体角の大きさは3 1 2023/02/16 23:14
- CPU・メモリ・マザーボード CPUで動作しているOSについての質問です。 3 2023/05/05 00:10
- ヘアケア・ヘアアレンジ・ヘアスタイル Google マップ で自分独自の地図(近くの喫茶店マップ等)は作れますか? 2 2023/03/10 08:17
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- ドライブ・ストレージ 最近、外付けSSDというのが出回ってますが、USBメモリと比較してどっちが安い?どっちが高性能? 6 2022/04/23 10:51
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセス 部分一致の抽出
-
2つのテーブルに共通するレコ...
-
ACCESS テーブルを見比...
-
Accessのリンクされたテーブル...
-
Acccessで2つのテーブルから1...
-
ACCESSでテーブルをコピーしよ...
-
ACCESSユニオンクエリから新テ...
-
Accessでリストの並び順を変更...
-
アクセスの更新クエリについて...
-
テーブルに表示されているもの...
-
accessのテーブルを閉じたとき...
-
アクセスのリストボックス内の...
-
アクセスでデータ型を一括変換...
-
ACCESS初心者 - 同一テーブルの...
-
accessについて(超初心者です)
-
外部MDBのリンクテーブルの...
-
最新日のデータのみ抽出するク...
-
AccessでのリンクテーブルとADO...
-
Accessでテーブルのリンクを範...
-
Access 2000、ユニオンクエリー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2つのテーブルに共通するレコ...
-
最新日のデータのみ抽出するク...
-
Acccessで2つのテーブルから1...
-
テーブルに表示されているもの...
-
Accessでリストの並び順を変更...
-
Accessのリンクされたテーブル...
-
クエリで同一テーブルの複数回...
-
access vbaにてテンポラリーテ...
-
Accessのテーブルで、リンク?...
-
ACCESS テーブルを見比...
-
ACCESSユニオンクエリから新テ...
-
accessのテーブルを閉じたとき...
-
アクセス2016 チェックボックス...
-
アクセス 部分一致の抽出
-
Accessで使用しているリンクテ...
-
ACCESSのODBCリンクテーブルの...
-
アクセス2000でのリンク先...
-
Microsoft Access 「Form」のボ...
-
ACCESSでリンクテーブルのデー...
-
access2000・・テーブルをデー...
おすすめ情報