diff --git a/memory.c b/memory.c index 0504905..1cb429b 100644 --- a/memory.c +++ b/memory.c @@ -16,10 +16,10 @@ unsigned int addr_bits; int number_of_blocks(unsigned int addr_bits, unsigned int num_block_offset_bits) { - if (addr_bits < num_block_offset_bits || num_block_offset_bits < 0 || addr_bits < 0) + if (addr_bits < num_block_offset_bits || num_block_offset_bits <= 0 || addr_bits <= 0) return FAIL; - return addr_bits / exp2(num_block_offset_bits); + return exp2(addr_bits - num_block_offset_bits); }