В реальной программе обычно ваш код будет связан с другим кодом, который также помещает вещи в .data
, поэтому input+4
будет местоположением некоторой другой метки + зарезервированного пространства.
Если нет, то отображение памяти, в котором находится .data
, может быть целым числом страниц виртуальной памяти, поэтому фактически не используется заполнение до кратных 4096 байт. (Но это применимо только к системам, использующим виртуальную память; в противном случае другой раздел может начаться сразу после; проверьте адреса других символов после связывания)
В частности, для MARS см. Настройки-> конфигурация памяти, чтобы точно определить, где начинается каждая секция на карте памяти.