2013-10-24 2 views
2

В 32-разрядной архитектуре SPARC команды загрузки и хранения (ld, ldub, ldsb, lduh, st, stb и т. Д.) Требуют квадратные скобки вокруг адреса памяти. Например,Зачем нужны квадратные скобки в инструкциях SPARC ld/st?

st %l0, [%fp - 4] 
ld [%i0], %l0 

Почему это? Поскольку инструкции загрузки и хранения являются единственными, которые могут получить доступ к памяти, почему нужны квадратные скобки?

Это просто для удобства чтения или существует другое использование для операций загрузки и хранения, которые не используют квадратные скобки?

ответ

3

Это общепринятое соглашение на многих (если не в большинстве) языках ассемблера: когда что-то разыменовывается как адрес памяти, оно заключено в скобки.

Несмотря на то, что SPARC не допускает альтернативных видов использования ld, st и т. Д., Соглашение по-прежнему соблюдается во избежание любой двусмысленности.

Смежные вопросы