Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на экзаменационные билеты по информатике.doc
Скачиваний:
47
Добавлен:
10.05.2014
Размер:
277.5 Кб
Скачать

Билет 1

1) - Общая структура программы: PROGRAM Имя_Программы; USES    Список используемых библиотек (модулей); LABEL    Список меток в основном блоке программы; CONST     Определение констант; TYPE     Описание типов; VAR     Определение глобальных переменных программы; ОПИСАНИЕ ПРОЦЕДУР; ОПИСАНИЕ ФУНКЦИЙ; BEGIN    Основной блок программы (операторы) END.

- Модули: Crt, graph, strings - Объявление переменных: Var Переменная: тип данных;

целые типы - ShortInt, integer, LongInt, Byte, Word;

вещественные типы - Single, real, Double, Extended, Comp;

Булевский тип - Boolean;

Символьный тип - Char;

Строковый тип - String; - Объявление типов: Type имя_типа={значение1, зн2,…, знN}

2) Работа с файлами в с

Файлпредставляет собой последовательность байтов, хранящуюся на каком-либо физическом носителе информации.

Открытие файла – fopen(имя, режим)

Открыть файл для чтения – “r” “rb”

Для записи – “w” “wb”

Добавить информацию в файл – “A” “AB”

Режимы: “R+” “W+” “A+”

“R+B” “W+B” “A+B”

Закрытие файла – fclose(ф.п.)

Запись информации в файл – Putc(символ, ф.п.) иFputc()

Вывод инф-ции из файла – getc()

3) Регистры процессора Intel x86

Регистр процессора — память внутри процессора, предназначенная для хранения промежуточных результатов вычисления (регистр общего назначения) или содержащая данные, необходимые для работы процессора — смещения базовых таблиц, уровни доступа и т. д. (специальные регистры).IP— регистр, обозначающий смещение следующей команды относительно кодового сегмента.IP— 16-битный (младшая часть EIP)EIP— 32-битный аналог (младшая часть RIP)

Сегментные регистры— Регистры указывающие на сегменты.CS,DS,SS,ES,FS,GSCS — указатель на кодовый сегмент. Связка CS:IP указывает на адрес в памяти следующей команды.Регистры данных— служат для хранения промежуточных вычислений.EAX,EBX,ECX,EDX,EBP,ESI,EDI,ESP — 32-битные AX, BX, CX, DX — 16-битные AH, AL, BH, BL, CH, CL, DH, DL — 8-битные (половинки 16-ти битных регистров)

Билет 2

1) Основные команды процессора Intel x86 Расширение операндов

Иногда нужно бывает произвести операцию над операндами разного размера (а большинство полезных команд принимают операнды одного размера). Для этого меньший операнд нужно расширить. Есть два вида расширения:

  • Без учета знака. Старшие биты забиваются нулями.

      • movzx

  • С учетом знака. Если число положительное, то старшие биты забиваются нулями, иначе единицами.

      • movsx

      • cbw – al  ax; cwde – ax  eax.

      • cwd – ax  dx|ax; cdq – eax  edx|eax. Обычно используются перед делением.

Работа с битами

  • and, or, xorпобитовая операция над двумя операндами. Результат, как обычно, заносится в первый из них.

  • test– то же самое, что иand, но не изменяет первый операнд (то есть, влияет только на регистр флагов)

  • shl/shr – побитовый сдвиг влево/вправо без учета знака (старшие биты забиваются 0). Сдвигать можно на константу, либо наcl

  • sal/sar – побитовый сдвиг влево/вправо с учетом знака (старшие биты забиваются 0 или 1 в зависимости от знака)

Работа с флагами процессора

  • pushfd / popfd– занести содержимое флагов процессора в стек / занести вершину стека в регистр флагов.

  • adc – x1 + x2 + cf

  • sbb – x1 – x2 - cf

  • cmov*- вместо * можно писать всё то же, что и послеj*. Заносит значение второго операнда в первый если условие выполняется. Операнды могут быть оба 16- или 32-битными (но не 8-битными). Первый операнд – регистр, второй – регистр или ячейка памяти (наоборот нельзя, константы тоже нельзя)

  • set* – имеет единственный операнд размеров 8 бит. Заносит в него 1 если условие выполняется и 0 если нет.

Lea регистр, адрес – записывает в регистр значение адреса

2) Функции в С Прототип функции описывает тип ее возвращаемого значения, имя и аргументы. В общем виде прототип задается так:

тип_возвращаемого_значения имя_функции(тип_1_параметра имя_1_параметра, тип_2_параметра имя_2_параметра, ...);

Если у функции нет возвращаемого значения, то вместо типа должно быть указано ключевое слово "void".

Соседние файлы в предмете Информатика