Помню нечто типа «mov bx,offset a» — поставить указатель на начало массива, если не ошибаюсь
Даавноооо проходил асм в колледже, тогда он казался более понятныим и простым )
со сборщиком мусора сложнее в том плане, что (1) если наш компилятор является частью виртуальной машины, то нежелательно чтобы рядом какой-то левый сборщик мусора работал (в крайнем случае нужно пользоваться тем, который есть в самой ВМ) (2) сборщик мусора должен быть достаточно хороший, иначе придется костыли всякие вставлять всюду (кэши мелких объектиков, например), чтобы не тупило.
ох, с распределением регистров столько всякой головной боли…
например, неортогональность системы команд x86 [некоторые команды требуют фиксированных регистров] и вообще взаимное влияние фаз выбора кода и распределения регистров.
хорошая ссылка по теме: магистерская работа Кристиана Виммера «Linear Scan Register Allocation
for the Java HotSpotTM Client Compiler» (http://www.ssw.uni-linz.ac.at/Research/Papers/Wimmer04Master/Wimmer04Master.pdf)
Компиляция. 7: назначение регистров