Изучение архитектуры и системы команд INTEL-совместимых микропроцессоров. Коршунов А.Д. - 25 стр.

UptoLike

Составители: 

25
1.4. Ассемблирование и выполнение
После того, как текст программы на Ассемблере написан, его необходимо
транслировать в машинные коды, понятные процессору, перед тем, как заставить
программу выполняться. Процесс транслирования состоит из двух шагов:
создание объектного кода и компоновка объектного кода в исполняемые
машинные коды (первое и второе ассемблирование). Связано это с тем, что во
время
трансляции компилятор может встретить, например, команду перехода на
метку, находящуюся дальше, то есть в этот момент компилятор еще ничего не
знает об этой метке (это так называемая проблема опережающей ссылки).
Задача первого ассемблирования создать объектный код, в котором
содержатся, во-первых, машинные коды уже готовых команд, а во-вторых, список
всех
меток, переменных и т.п., встретившихся в тексте программы, их смещение
или значение.
При втором ассемблировании происходит вычисление и подстановка
необходимых значений для меток, переменных и т.п., формируя, таким образом,
готовый исполняемый машинный код программы.
                                                                          25


         1.4. Ассемблирование и выполнение


    После того, как текст программы на Ассемблере написан, его необходимо
транслировать в машинные коды, понятные процессору, перед тем, как заставить
программу выполняться. Процесс транслирования состоит из двух шагов:
создание объектного кода и компоновка объектного кода в исполняемые
машинные коды (первое и второе ассемблирование). Связано это с тем, что во
время трансляции компилятор может встретить, например, команду перехода на
метку, находящуюся дальше, то есть в этот момент компилятор еще ничего не
знает об этой метке (это так называемая проблема опережающей ссылки).
    Задача первого ассемблирования создать объектный код, в котором
содержатся, во-первых, машинные коды уже готовых команд, а во-вторых, список
всех меток, переменных и т.п., встретившихся в тексте программы, их смещение
или значение.
    При втором ассемблировании происходит вычисление и подстановка
необходимых значений для меток, переменных и т.п., формируя, таким образом,
готовый исполняемый машинный код программы.