Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CП_Ответы.doc
Скачиваний:
15
Добавлен:
27.09.2019
Размер:
281.09 Кб
Скачать
  1. Назовите цели и задачи дисциплины. Дайте определение понятиям ‘программы’, ‘программное обеспечение’, ‘системное программирование’. Перечислите и опишите этапы подготовки программы.

Целью дисциплины является изучение принципов и методов системного программирования. Задачами изучения дисциплины являются: обучить учащегося архитектуре команд процессора, средства взаимодействия с внешними устройствами компьютера; обучить разрабатывать программы на ассемблере. Программа – это данные, предназначенные для управления конкретными компонентами системы обработки информации. ПО – совокупность программ системы обработки информации и документов, необходимых для их эксплуатации. Системное программирование – подраздел программирования, заключающийся в работе над системным программным обеспечением. Процесс подготовки и отладки программы на языке ассемблера включает этапы подготовки исходного текста, трансляции, компоновки и отладки. Подготовка исходного текста программы выполняется с помощью любого текстового редактора. Файл с исходным текстом должен иметь расширение .asm. Трансляция исходного текста программы состоит в преобразовании строк исходного языка в коды машинных команд и выполняется с помощью транслятора с языка ассемблера. Компоновка объектного файла выполняется с помощью программы компоновщика. Её основное назначение — подсоединение к файлу с основной программой файлов с подпрограммами и настройка связей между ними. Отладка готовой программы может выполняться разными методами, выбор которых определяется структурой и функциями отлаживаемой программы.

  1. Перечислите команды деления двоичных чисел. Опишите синтаксис каждой команды и принцип ее работы. Назовите исключения, которые могут возникнуть при выполнении операции деления. Приведите примеры деления двоичных чисел.

Команды DIV и IDIV предназначены для целочисленного деления беззнаковых и знаковых двоичных данных соответственно.

Синтаксис:

DIV источник(делитель)

IDIV источник (делитель)

Команда DIV выполняет целочисленное деление без знака AL, АХ или ЕАХ (в за­висимости от размера источника) на источник (регистр или перемен­ная) и помещает результат в AL, АХ или ЕАХ, а остаток - в АН, DX или EDX соответственно. Команда IDIV выполняет целочисленное деление со знаком AL, AX или ЕАХ (в за­висимости от размера источника) на источник (регистр или перемен­ная) и помещает результат в AL, АХ или ЕАХ, а остаток - в АН, DX или EDX соответственно. Исключения: При выполнении операции деления возможно возникновение исключительной ситуации: 0 — ошибка деления. Эта ситуация возникает в одном из двух случаев: делитель равен 0 или частное слишком велико для его размещения в регистре eax/ax/al.

Пример:

.data

delt db 45

.code

div delt

  1. Дайте определение понятия ‘системы программирования’. Назовите принципы функционирования систем программирования. Перечислите их возможности. Приведите примеры современных систем программирования.

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

  1. Перечислите способы передачи аргументов в процедуру. Опишите способ передачи аргументов через регистры. Перечислите достоинства и недостатки данного способа. Приведите пример передачи аргументов в процедуру через регистры.

Способы передачи аргументов в процедуру: через область памяти, через стек, через регистры, и с помощью extern и public.Передача аргументов через регистры — наиболее простой в реализации способ передачи данных. Данные, переданные подобным способом, становятся доступными немедленно после передачи управления процедуре. Этот способ можно рекомендовать для передачи небольших объемов данных.Недостатки этого способа: небольшое число доступных для пользователя регистров; необходимость постоянно помнить о том, какая информация в каком регистре находится; ограничение размера передаваемых данных размерами регистра — если размер данных превышает 8, 16 или 32 бита, то передачу данных посредством регистров произвести нельзя и передавать приходится не сами данные, а указатели на них. Достоинства:наиболее простой в реализации способ передачи данных(простота).

Пример:

Primer proc uses eax ecx

.....

Primer endp

  1. Раскройте суть понятия ‘программный отладчик’. Опишите процесс их эксплуатации. Перечислите воз­можности программных отладчиков. Приведите примеры программных отладчиков.

Программный отладчик— компьютерная программа, предназначенная для поиска багов в других программах, ядрах операционных систем, SQL-запросах и других видах кода. Отладчик позволяет выполнять пошаговую трассировку, отслеживать, устанавливать или изменять значения переменных в процессе выполнения кода, устанавливать и удалять контрольные точки или условия останова и т.д.

Возможности:

  • Способы отображения дизассемблированного кода: MASM, IDEAL, HDA.

  • Мощный анализатор кода, распознающий процедуры, циклы, ветвления, таблицы, константы и текстовые строки.

  • Развёрнутая система поиска: поиск всех возможных констант, команд, последовательностей команд, текстовых строк и ссылок в коде на данный адрес.

  • Распознание и расшифровка более двух тысяч типичных функций Windows API.

  • Эвристический анализ стека, распознание адресов возврата в родительскую процедуру.

  • Простые, условные и протоколирующие точки останова.

Пример отладчиков: OllyDbg, Turbodbg.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]