Ответ зависит от конкретного чипа MIPS и его MMU (если он есть).
Допустимые адреса для 32-битных инструкций — от 0 до 4GB-4. Однако, если память присутствует не во всем диапазоне, или если есть устройства с отображением памяти, или если у вас включено преобразование виртуальных адресов в физические, вы вообще не сможете выполнять код в произвольном месте или в осмысленном месте. способ.
Если вы передаете управление в место, не резервируемое памятью, вы выполняете мусор. То же самое относится к передаче управления в место, которое представляет регистры или буферы данных некоторых устройств с отображением памяти.
Если перевод страницы настроен таким образом, что он ограничивает доступ к определенным областям адресов или запрещает выполнение там, вы вообще ничего не можете выполнять в этих областях.
Теперь у beq
также есть ограничение на то, как далеко он может передавать управление от того места, где он (beq
) находится сам. beq
может передать управление только своему расположению +/- примерно 217 байт (=128 КБ).
Итак, теоретически beq
, расположенный по адресу 0x320ACB48, может передать управление в любое место (кратное 4) от 0x320ACB48 + 4 - 32768*4 до 0x320ACB48 + 4 + 32767*4.
Если beq
расположен рядом с адресом 0, он может передать управление почти 4 ГБ, если ЦП не запрещает перенос адресов. Точно так же, если beq
находится рядом с точкой 4 ГБ, он может передать управление на адрес, близкий к 0, если, опять же, процессор не запрещает перенос адресов.
person
Alexey Frunze
schedule
06.03.2013