初心者質問スレ その51

このエントリーをはてなブックマークに追加
51774ワット発電中さん
H8なんかだと16ビットの外部RAMを接続する場合アドレスを
1つずらして(RAMが18-0なのに対してマイコンが19-1)接続しますけど
この理由はなんでしょうか?
アクセスする場合ソフト側でアドレスを1ビット左シフトしなければ
ならないんでしょうか?
52774ワット発電中さん:2009/01/09(金) 13:02:49 ID:G5iaufwE
>>51
だって16ビットでアクセスするんでしょ?
例えば16ビットアクセスのRAMを付けた時にアドレス 0x2000にアクセスすると
RAMからは0x2000と0x2001の2Byte(16bit)のデータが吐き出される。
次に0x2001にアクセスしたときはどうなる?
0x2001のデータは0x2000をアクセスしたときの上位8ビットのデータだよね。
つまり0x2001にアクセスするときはRAMには0x2000のアドレスを指定してあげる。
そうして上位8bitを拾うことにより0x2001のデータを得る事ができる。
だからH8のアドレスバスのLSBを使わずにアクセスするんだよ。
ちなみにこれらは全てマイコンでやってくれている。ユーザーは何も意識する必要は無い。