При возбуждении метода память выделяется для:
Таблиц аргументов метода.
Локальных переменных метода.
Стека, в котором происходят вычисления. Для вычислений не используются регистры процессора, так как на уровне кода CIL аппаратная платформа не определена.
Полей, к которым метод может иметь доступ. Они размещены в динамической памяти - «куче».

Все поля описываются начальным адресом и типами данных, которые в них размещаются.
Стек вычислений состоит из слотов, которые в разные моменты времени может содержать данные разных типов. Максимальное число слотов фиксировано (по умолчанию 8).
Область локальных данных является составной частью состояния метода и используется для размещения объектов, тип и/или размер которых неизвестен на этапе компиляции, но которые по тем или иным причинам нежелательно размещать в куче. Область существует ровно столько, сколько исполняется метод, состоянию которого она принадлежит. После прекращения работы метода она автоматически освобождается.
Для хранения локальных переменных и аргументов метода используются два массива, которые, как и стек вычислений, состоят из слотов. При этом каждой переменной и каждому аргументу соответствует один слот. Для доступа к локальным переменным и аргументам используются их индексы в массивах. При этом нумерация осуществляется с нуля.
Компилятор, генерирующий CIL-код, не должен делать никаких предположений о том, как переменные и параметры размещены в памяти. Дело в том, что реализации CLI могут любым образом переупорядочивать переменные и параметры, могут произвольно выравнивать их.