- •1Дать опред транслятора. Привести общую схему работы транслятора с опис этапов.
- •2Понятие компилятора. Общая схема. Отличие процесса компиляции от интерпретации.
- •3Интерпритатор.Достоинства и недостатки. Сравнение с процессом компиляция
- •4.Ассемблер, осн-е достоинства. Понятие метки: определение, синтаксис, атрибуты, типы значений:
- •5Регистр. Классификация регистра в микропроцессоре в семействе 8086 с краткой хар-ой их.
- •6. Сегмент, принцип сегментации. Перечислить осн сегменты, привести команды с помощью кот-х произ-я сегментация данных, схема расположения сегмента в памяти.
- •7. Разновидность типов данных с краткой характеристикой каждого типа
- •8.Привести этапы создания проги с помощью пакета tasm с описанием каждого этапа . Основные правила синтаксиса яз ассемблер.
- •9.Классифик-я директив опред-я данных с хар-ой каждой директиве
- •10.Стек. Классификация команд работы со стеком с хар-ой этих команд и примерами действий этих команд . Использование стека в яз ассемблер.
1 уровень:
1Дать опред транслятора. Привести общую схему работы транслятора с опис этапов.
Транслятор – это программа, которая переводит входную программу на исходном языке в эквивалентную ей выходную программу на результирующем языке. В работе трансляторов учувствуют 3 программы:
Сам транслятор
Машинная программа
Обрабатывающая программа
Входными данными для транслятора является последовательность предложений входного языка программирования (файл, который должен содержать текст программы удовлетворяющий синтаксическим и семантическим, требованиям входного языка, выходные данные)
Текст – результирующей программы.
Важное требование в определении транслятора – эквивалентность входной и выходной программы.
Транслятор обычно выполняет так же диагностику ошибок, формирует словари идентификаторов, выдаёт для печати тексты программ.
2Понятие компилятора. Общая схема. Отличие процесса компиляции от интерпретации.
Компилировать – это проводить трансляцию машинной программы с проблемно ориентированного языка на машинный ориентированный язык.
Компиляция – это:
1) Трансляция программы на язык близкий к машинному.
2) Трансляция программы составленная на исходном языке в объектном модуле.
Процесс компиляции состоит из нескольких этапов:
Лексического, синтаксического, семантического анализов, генерация промежуточных кода, оптимизации и генерации результирующего машинного кода.
Работа компиляции состоит из 2 этапов
1.Этап анализа:
Выполняется распознавание текста исходной программы, создание и заполнение таблиц идентификаторов. Результат его работы – внутреннее представление программы понятное компилятору
2.Этап синтеза.
На основании внутреннего представления программы и информации содержащейся в таблице идентификаторов порождается текст результирующей программы. Результат этого этапа объектный код.
3Интерпритатор.Достоинства и недостатки. Сравнение с процессом компиляция
Интерпретатор – это система из компилятора переводящего исходный код программы в промежуточное представление и собственно самого интерпретатора, который выполняет полученный промежуточный код.
Достоинства:
Большая переносимость интерпретируемых программ – программа будет работать на любой платформе на которой есть соответствующий интерпретатор.
Более совершенные наглядные средства. Диагностики ошибок в исходных кодах
Упрощение отладки исходных программ.
Меньшие размеры кода по сравнению с машинным кодом полученным после обычных компиляторов.
Недостатки:
Интерпретируемая программа не может выполняться отдельно без программы интерпретатора.
Интерпретируемая программа выполняется медленнее по сравнению с исполнением машинного кода в которой был скомпилирован. Практически отсутствует оптимизация кода, что приводит к дополнительным потерям скорости работы.
4.Ассемблер, осн-е достоинства. Понятие метки: определение, синтаксис, атрибуты, типы значений:
Ассемблер – это компьютерная программа, компилятор исходного текста программы написанной на языке ассемблера.
Метка это символическое имя, обозначающее определенную ячейку памяти и предназначенное для использования в качестве операнда в командах передачи управления.
ИМЯ СЕГМЕНТА КОДА, где эта метка описана;
СМЕЩЕНИЕ — расстояние в байтах от начала сегмента кода, в котором описана метка;
ТИП, или АТРИБУТ РАССТОЯНИЯ, метки.
Последний атрибут может принимать два значения:
Near — переход на метку возможен только в пределах сегмента кода, где эта метка описана, то есть для перехода на метку физически достаточно изменить только содержимое регистра EIP/IP;
far _- __ переход на метку возможен только в результате межсегментной передачи управления, для осуществления которой требуется изменение содержимого как регистра EIP/IP, так и регистра CS.
Метку можно определить двумя способами:
оператором: (двоеточие);
директивой LABEL.
С помощью оператора: можно определить метку только ближнего типа — near. Определенную таким образом метку можно использовать в качестве операнда в командах условных переходов JCC и безусловного перехода JMP, CALL Эти команды, естественно, должны быть в том же сегменте кода, в котором определена метка. Команда ассемблера может находиться как на одной строке с меткой, так и на следующей.
Язык ассемблера является самым низкоуровневым языком программирования. Т.е. он ближе любых других приближен к архитектуре ЭВМ и ее аппаратным возможностям, позволяя получить к ним полный доступ.