Гарантируется ли это, что процессор извлекает память в направлении, противоположном росту стека? - PullRequest
1 голос
/ 18 июля 2011
0x00000000004004b7 <func+31>:   mov    -0x18(%rbp),%rax

Для архитектуры, стек которой увеличивается до более низкого адреса, приведенные выше извлекают -0x18(%rbp)~-0x20(%rbp), и наоборот.

Это правда?

Если это так, тотехническая причина?

Ответы [ 2 ]

3 голосов
/ 18 июля 2011

Как правило, ЦП не знает, как реализован стек (это обычно зависит от компилятора).

Так что в вашем случае он будет получать слово, начинающееся с адреса %rbp-0x18.Если слово имеет длину 4 байта, оно будет извлекать слово, которое охватывает {%rbp-0x18, %rbp-0x17, %rbp-0x16, %rbp-0x15}.

2 голосов
/ 18 июля 2011

Нет.Вещи две не связаны.Один из них является свойством ISA, а другой - ABI платформы.

Кстати, я не знаю ни одной архитектуры, в которой многобайтовый доступ не осуществляется по восходящим адресам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...