да, код a.out присутствует в памяти при запуске a.out.указатель инструкции (или регистр) указывает на текущую операцию, выполняемую в памяти, и большинство операций также переводят указатель инструкции на следующую операцию.хотя, если под кодом вы подразумеваете исходный код C, это не всегда так - в памяти должен находиться только собранный исполняемый байт-код.у компилятора / компоновщика есть флаги для включения кода C в собранный выходной исполняемый файл, чтобы упростить отладку.
Если мы говорим о виртуальной памяти процесса, это также будет включать некоторую память-сопоставленные регистры ввода-вывода, некоторые функции пространства ядра и любые библиотеки, которые требуются программе (по крайней мере, libc для операций общего типа).