- •3)Опишите этапы трансляции. Приведите общую схему транслятора.
- •4)Дайте определение транслятора. Приведите характеристики однопроходных и много проходных трансляторов.
- •5) Опишите принцип работы интерпретатора. Перечислите особенности постороения интерпретаторов.
- •6) Дайте определение таблиц идентификаторов. Опишите простейшие способы организации таблиц идентификаторов.
- •8)Опишите организацию таблиц идентификаторов методом хэширования.
- •9) Опишите организацию таблиц идентификаторов смешанным способом.
- •10) Дайте характеристику моделям памяти.
- •11)Назначение и функции компоновщика?
- •12) Опишите назначение и функции загрузчика.
- •13) Опишите назначение и функции отладчика.
- •14) Опишите формат представления данных в ibm pc.
- •15) Опишите формат директив и машинных команд.
- •16) Опишите директивы эквивалентности и присваивания.
- •18) Опишите вычисление арифметических выражений в языке Ассемблер. Приведите примеры?
- •19)Опишите логические команды и команды сдвига.
- •20.)Опишите применение условных и безусловных переходов в языке Ассемблер. Приведите примеры.
- •21)Опишите организацию работы циклов в языке Ассемблер. Перечислите особенности использования оператора loop. Приведите примеры
- •26)Опишите обработку цепочечных команд. Приведите примеры.
- •29)Опишите макросредства в языке Ассемблер. Перечислите их преимущества и недостатки.
- •31)Запись в файл или устройство
- •33. Работа с файлами, каталогами и дисками под управлением ms-dos
- •34.Приведите общую структуру жесткого диска. Опишите процесс обращения с главной загрузочной записью (mbr).
- •35) Опишите способы защиты программ от копирования и несанкционированного использования.
- •Опишите способы использования языка Ассемблер в языках высокого уровня.
- •Приведите отличия Pascal-концепции и с-концепции при взаимодействии Ассемблера с языками высокого уровня.
- •41) Опишите принципы функционирования контроллера прерываний, взаимодействие его с процессором.
- •42) Опишите правила проектирования программных прерываний, взаимодействие прикладных и системных обработчиков прерываний.
- •Опишите способы ввода/вывода текстовой информации на языке Ассемблер
- •44Способы ввода информации:
- •46 Программы типа .Exe
- •47) Префикс программного сегмента.
- •48 Окружение
- •51) Дайте определение резидентным программам. Опишите особенности применения.
- •53) Опишите архитектуру драйверов.И функции
44Способы ввода информации:
1) Обращение к клавиатуре как файлу с помощью 3Fh прерыванию INT 21h.
Используется предопределенный дескриптор 0, закрепленный за клавиатурой. Число вводимых символов указывается в регистре сx, однако ввод завершается после того как нажата клавиша Enter.
2) Использование группы функции DOSINT 21h обеспечивающий посимвольный ввод с клавиатуры в различных режимах.7 функции прерывания: 01h – ввод символа с эхом, 02h – прямой ввод-вывод через консоль, 07h – нефильтрованный вывод без эхо, 0ah – буферизированный ввод строки с эхом, 0bh – проверка состояния стандартного устройства ввода, 0ch – сброс вводного буфера и ввод.
3)Посимвольный ввод путём обращения в обход DOS непосредственно к драйверу BIOS с помощью прерывания 16h.
Работа с клавиатурой на уровне BIOS считывает двухбайтные коды поступающие в кольцевой буфер ввода и анализировать слово флагов клавиатуры. Для ввода используется функция прерывания 16h: 00h –чтение двухбайтного кода из входного буфера. 01h - чтение двухбайтного кода без извлечения его из буфера. 02h – чтение флагов клавиатуры(ah – скан код, al – код ASCII)
Способы вывода информации:
Обращение к экрану как файлу с помощью функции 40h прерывание 21h.Вывод осуществляется с помощью предопределенных дескрипторах 1(стандартное устройство вывод), 2(ошибки выводимые на экран). Число выводимыхсимволов указывается в регистре cx, адрес выводимой строки в DS.
Использование группы функции DOS используется посимвольный вывод: 02h – вывод символа, 06h – прямой ввод-вывод, 09h – вывод строки.
45) Программы типа .COM
Программы типа.СОМ хранятся на диске в виде файлов, в которых содержится абсолютный образ машинных команд, предназначенных для выполнения. Так как файлы не содержат никакой настроечной информации, то они компактнее эквивалентных файлов типа .ЕХЕ, к тому же загружаются для выполнения немного быстрее. Заметим, что DOS не пытается выяснить, действительно ли файл типа .СОМ содержит выполнимую программу (в отличие от файла .ЕХЕ нет признака, ни контрольной суммы). Система заносит любой файл с расширением .СОМ в память и передает ему управление.
Tак как программы типа .СОМ загружаются непосредственно над префиксом сегмента программы и, кроме того, не имеют заголовка, который может задавать другую точку входа, то их начальный адрес всегда составляет 0100H, что определено размером префикса. Максимальная длина программы типа .СОМ составляет 65536 байт минус длина префикса (256 байт) и обязательное слово стека (2 байта) [2, c. 54].
Когда управление передается программе типа .СОМ, все регистры указывают на префикс. В указатель стека SР, если позволяет память, помещается число 0FFFFН, в противном случае - максимальный адрес памяти минус 2 байта. (DOS при входе в программу помещает в стек нулевое слово.)
Несмотря на то что размер выполнимого файла типа .СОМ не может превзойти 64 К, существующие в настоящее время версии системы МS DOS выделяют программам типа .СОМ в момент их загрузки всю область транзитных программ. Так как такие программы часто являются наследием раннего периода МS-DOS и необязательно корректны в отношений управления памятью, то операционная система делает наихудшее предположение и дает программам типа .СОМ все, что возможно. Если программа типа .СОМ хочет использовать для возбуждения другого процесса функцию ЕХЕС, то сначала она должна сократить выделяемую ей память до минимума, обеспечивающего продолжение ее работы, обращая внимание при этом на сохранение стека программы. Когда программа типа .СОМ завершает выполнение, она возвращает управление операционной системе с помощью системного прерывания Int 21Н с функцией 4СН.
Прикладная программа типа .СОМ может компоноваться из многих отдельных объектных модулей. Все модули должны использовать одно и то же имя сегмента программы и имя класса, причем модуль с точкой входа по относительному адресу 0100Н внутри сегмента при компоновке должен быть первым. Кроме того, внутри программы типа .СОМ все процедуры В процессе компоновки программы типа .СОМ компоновщик выдает на экран дисплея сообщение:Warning: no stack segment (Предупреждение: нет сегмента стека)
Это сообщение можно игнорировать. Результатом работы, компоновщика является файл типа .ЕХЕ, который до выполнения должен быть преобразован с помощью системной утилиты EXE2BIN в файл типа .СОМ.должны иметь атрибут NEAR (ближний), так как вся выполнимая программа постоянно находится в одном сегменте