Это диаграмма в моем классе, и выполнена только инструкция 0. В стеке в правом нижнем углу этой диграммы он хранит $ ra по адресу 4 меньше , чем $sp
, что по 128.
В моей книге, однако, они используютсмещение означает выше , чем $sp
. вот диаграммы:
и
Что страннодля меня это то, что на первом изображении смещения lw и sw являются положительными числами, но приводят к тому, что значения сохраняются отрицательно по отношению к $sp
по более низким адресам.
Однако последние два изображения используют смещения для сохранения или загрузки значений по старшим адресам относительно $sp
. Книга освобождает место, сначала вычитая из $sp
, а затем сохраняя значения регистров в освобожденном стеке, используя положительные числа смещения, которые идут на старшие адреса.
Являются ли эти два несовместимыми?