Компиляционный путь

Материал из Энциклопедия о программировании
Перейти к: навигация, поиск

Компиляционный путь — полный путь, который выполняется для запуска конкретного программного кода языка высшего уровня.

Полый путь выглядит, в общем и целом, следующим образом:

  1. исходный код программы (на языке высокого уровня)
  2. ассемблерные команды
  3. Машинный код (платформенно-ориентированный код, нативный код), машинный язык

Для машинно-независимых языков высокого уровня это выглядит так:

  1. исходный код программы
  2. Байт-код. Промежуточное представление, генерируется транслятором из исходников программы. В этом виде программы на таких языках и распространяются. Большинство инструкций байт-кода эквивалентны одной или нескольким командам ассемблера. Позже байт-код выполняется конкретной виртуальной машиной.
  3. Машинный код (байт код превращается в машинный код на конкретной платформе за счёт интерпретатора)

ассемблерные команды

XXXX:0100     mov     bx, 0111h       ; поместить в bx смещение строки HW
XXXX:0103     mov     cx, 000Dh       ; поместить в cx длину строки HW
XXXX:0106     mov     ah, 0Eh         ; поместить в ah номер функции прерывания 10h
XXXX:0108     mov     al, [bx]        ; поместить в al значение ячейки памяти, адрес которой находится в bx
XXXX:010A     inc     bx              ; перейти к следующему байту строки (увеличить смещение на 1)
XXXX:010B     int     10h             ; вызов прерывания 10h
XXXX:010D     loop    0108            ; если cx≠0, то уменьшить cx на 1 и перейти по адресу 0108
XXXX:010F     int     20h             ; прерывание 20h: завершить программу
XXXX:0111 HW  db      'Hello, World!' ; строка, которую требуется напечатать

Машинный код (платформенно-ориентированный код), машинный язык

BB 11 01 B9 0D 00 B4 0E 8A 07 43 CD 10 E2 F9 CD 20 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21