インターネット&PC120%活用:PC活用編

スタートアップ

1 電源ONでスタート
パソコンの電源がON、あるいはリセットされると、パソコンはある決まった場所から
スタートします。どこからスタートするかはCPUによりあらかじめ、決めれれております。
例えばPC2001のμCOM87の場合、0H(Hは16進数を表す)からスタートします(推測)。
究極の8Bit CPUと言われた6809はFFFE(とFFFFH)に格納されている、いわゆる
リセットベクトル(=スタート番地)を読み込み、リセットベクトルの番地からスタートします。
富士通の往年の名機FM−8/7ではリセットベクトルはFE00になっていますので、FE00H
からスタートします。皆さんおなじみの8086(Pentiumの祖先)はFFF0Hからスタート
します。
それではPC2001のスタートアップルーチンをみていきましょう。
なお、以下に掲載するディスアセンブルのリストは、RS232Cを介してPC2001のROMを
windows機に送信し、自作のPc2001ディスアセンブラでディスアセンブルしたものです。
PC2001ディスアセンブラのソースコードおよび解説は「パソコン活用研究/Visual Basic/
PC2001ディスアセンブラ」にあります。

2 PC2001スタートアップ
PC2001(μCOM87)では0Hより、リセット時および各種割り込み発生時のエントリが
集まっており、それぞれ適切な場所に飛ばしています。

0000   54 B0 02   T..   jmp 2B0h    リセット、電源ONエントリ 2B0Hへジャンプ                        
0003   00         .     nop
0004   DD         .     jr 22h     割り込みINT0エントリ−−>22Hに飛んで[BC] 
0005   00         .     nop         にFF90Hから格納されている番地(=INT0
0006   00         .     nop         飛び先)をセット
0007   00         .     nop
0008   48 1E      H.    push b
000A   70 1F 92 FFp...  lbcd FF92h    割り込みINTTエントリ−−>FF92Hから格納
000E   CC         .     jr 1Bh          されている番地を[BC]にセット
000F   00         .     nop
0010   64 9B 04   d..   ori mk,4h
0013   48 20      H     ei
0015   48 1E      H.    push b
0017   70 1F 94 FFp...  lbcd FF94h   割り込みINT1エントリ−−>FF94Hから格納
001B   48 3E      H>    push h        されている番地を[BC]にセット
001D   48 2E      H.    push d
001F   48 0E      H.    push v
0021   73         s     jb       [BC]のアドレスにジャンプ
0022   48 1E      H.    push b
0024   70 1F 90 FFp...  lbcd FF90h
0028   F2         .     jr 1Bh
リセット、電源ON時は2B0Hへ
割り込みINT0 ではFF90Hから格納されている番地へ
割り込みINTT ではFF92Hから格納されている番地へ
割り込みINT1 ではFF94Hから格納されている番地へ
飛びます



TopPage


inserted by FC2 system