1
私は私が正しくこれらのフィールドを抽出していた場合、あなたが私に言うことができる期待していたC.でCPUキャッシュエミュレータを構築しています:ビットシフトを使用してこれらのフィールドを正しく抽出していますか? (タグ、インデックス、オフセット)
を32ビットアドレスのように分割する必要があります次の:
void extract_fields(unsigned int address){
unsigned int tag, index, offset;
// Extract tag
tag = address >> 12;
// Extract index
index = address << 20;
index = index >> 22;
// Extract offset
offset = address << 30;
offset = offset >> 30;
}
何かアドバイスがはるかに高く評価されています。ここでは
+---------------------------------------------------+
| tag (20 bits) | index (10 bits) | offset (2 bits) |
+---------------------------------------------------+
は、それぞれの値を取得するために私のコードです!
は、なぜあなたは 'タグ=タグ<< 12'をやっていますか? –
おっと、私はそこにいるべきではないと思います。ありがとう。 – user982864