spim
Тренажер поддерживает опциональный data
директивы аргумент подробно здесь .
.data <addr>
следующие данные элементы должны храниться в сегменте данных. Если присутствует необязательный аргумент
blockquote>addr
, элементы сохраняются, начиная с адресаaddr
.Поэтому, используя
spim
, вы можете хранить любые данные с точным адресом так долго поскольку он находится в пределах сегмента пользовательских данных. Вspim
, зарезервированный диапазон0x10000000 - 0x10040000
Так, например, если вы хотите хранить массив по адресу
0x10000030
можно было бы написать:..data 0x10000030 list: .word 3, 0, 1, 2, 6, -2, 4, 9, 3, 7
Однако, адрес
100
не находится в пределах допустимого диапазона дляspim
сегмента пользовательских данных тренажера (или, возможно, в любом другом случае, так как это было бы часть первой страницы памяти).Я попробовал директиву
.data 100
вspim
, просто чтобы посмотреть, что он будет делать, когда я попытаюсь загрузить с него, а ответ - ошибкаMemory address out of bounds
.