Я работаю с архитектурой MIPS (не уверен, что это актуально, так как мы имеем дело с памятью).
Мне сказали, что 32-разрядное целое число находится в памяти по физическому адресу 0x00A0CE48.
Я полагаю, что это число 00000000111111110000000011111111.
Система с байтовой адресацией, какое значение будетпо адресу памяти 0x00A0?
Я не был уверен, были ли первые 8 битов по адресу 0x00, следующие 8 битов по 0x00A0, следующие 8 битов по 0x00A0CE и последние 8 битов по 0x00A0CE48?Я спрашиваю, потому что я должен манипулировать значением в 0x00A0, но я не уверен, что там есть.
Часть проблемы заключается в том, чтобы сначала предположить, что используется big endian, а затем little endian.
32-разрядное целое число находится в памяти по физическому адресу 0x00A0CE48.Биты в 32-битном слове пронумерованы от 0 до 31 от младшего значащего до старшего значащего бита.Приведенный ниже код извлекает один бит из этого 32-разрядного шаблона и помещает этот бит в $ t4.
lui $t0,0x00A0
ori $t0,$t0,0xCE48
lbu $t4,2($t0)
srl $t4,$t4,5
andi $t4,$t4,1
Следующий вопрос в моем назначении - указать номер бита (от 0 до 31) в пределах32-разрядное слово, оставляемое в $ t4, если используется порядок памяти с прямым или обратным порядком байтов.