В конечном итоге я просто пытаюсь понять, как динамически распределять память кучи из сборки.
Если я вызываю Linux sbrk () из кода сборки, могу ли я использовать возвращенный адрес так же, как и адрес?статически (т.е. в разделе .data моего списка программ) объявленной порции памяти?
Я знаю, что Linux использует аппаратный MMU, если присутствует, поэтому я не уверен, является ли то, что возвращает sbrk, «сырым»указатель на реальное ОЗУ или это готовый указатель на ОЗУ, который может быть изменен системой виртуальных машин Linux?
Я прочитал это: Как sbrk / brk реализован в Linux? .Я подозреваю, что не могу использовать возвращаемое значение из sbrk () без беспокойства: ошибка MMU на доступе-не-выделенный-адрес должна заставить ВМ изменять реальное местоположение в адресуемой ОЗУ.Таким образом, assy, не связанный с libc или what-have-you, не узнает, что адрес изменился.
Имеет ли это смысл, или я иду на обед?