Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ekzam_voprosy_Po_Spo.doc
Скачиваний:
1
Добавлен:
21.09.2019
Размер:
73.22 Кб
Скачать
  1. Архитектура процессоров семейства ia-32.

    1. Режимы работы процессора (защищенный, виртуальный, реальный, управления системой). Различия в адресации и моделях памяти для этих режимов.

    2. Регистры процессора

      1. Регистры общего назначения (EAX, EBX, ECX, EDX, EBP, ESP, ESI, EDI).

      2. Особенности обращения к РОН (к 8-ми, к 16-ти и к 32-х разрядным).

      3. Особенности использования РОН при выполнении команд процессором.

      4. Сегментные регистры (CS, DS, ES, FS, GS, SS).

      5. Регистр указателя команд (EIP) и регистр состояния процессора (EFLAGS).

      6. Управляющие флаги. Флаги состояния (CF, OF, SF, ZF, AF, PF).

      7. Регистры для выполнения операций с плавающей запятой, регистры, используемые в MMX-командах, XMM-регистры для выполнения команд потоковой обработки данных (SIMD).

  2. Основные элементы языка ассемблера.

    1. Арифметические операции и операторы ( ), унарные + или - , *, /, MOD, + или -.

    2. Целочисленные, вещественные, символьные и строковые константы. Значения суффиксов h, q, o, d, b, r, t, y. Использование кавычек внутри констант.

    3. Зарезервированные слова, идентификаторы, директивы, метки, команды (мнемоника, операнды, комментарии).

    4. Структура программы на языке ассемблера. Директивы TITLE, INCLUDE, LOCAL, .MODEL, .CODE, .DATA, .STACK, PROC, INVOKE, ENDP, END.

  3. Типы данных. Определение данных.

      1. Директивы BYTE, SBYTE, WORD, SWORD, DWORD, SDWORD, FWORD, QWORD, TBYTE, REAL4, REAL8, REAL10.

      2. Множественная инициализация переменных, определение строк, использование оператора DUP.

      3. Примеры инициализации переменных различных типов. Прямой и обратный порядок следования байтов.

      4. Операторы (OFFSET, PTR, TYPE, LENGTHOF, SIZEOF, TYPEDEF) и директивы (ALIGN, LABEL) для работы с данными.

      5. Структуры. Объявления структурных переменных. Обращение к структурным переменным. Директивы STRUCT и ENDS.

    1. Символические константы. Директива присваивания =. Определение размера массивов и строк, директивы EQU и TEXTEQU.

  4. Команды и операнды.

    1. Типы операндов и адресации.

      1. Непосредственно заданное значение, регистр, память (r8, r16, r32, reg, sreg, imm8, imm16, imm32, imm, r/m8, r/m16, r/m32, mem).

      2. Операнды с непосредственно заданным адресом.

      3. Операнды с непосредственно заданным смещением.

      4. Косвенные операнды, массивы, операнды с индексом, указатели (NEAR, FAR).

      5. Базово-индексный режим адресации.

      6. Базово-индексный режим адресации со смещением.

    2. Команды пересылки данных.

      1. Команда MOV.

      2. Команды расширения целых чисел: MOVZX, MOVSX.

      3. Команды загрузки флагов состояния LAHF и SAHF.

      4. Команда обмена данным XCHG.

      5. Операции со стеком. Команды PUSH и POP.

      6. Команды загрузки указателей LDS, LES, LFS, LGS, LSS.

      7. Команда загрузки текущего адреса LEA.

    3. Арифметические команды.

      1. Команды сложения и вычитания: INC, DEC, ADD, SUB, NEG.

      2. Команды умножения и деления: MUL, IMUL, DIV, IDIV.

      3. Сложение и вычитание чисел с произвольной точностью. Команды ADC и SBB.

      4. Арифметические операции с упакованными десятичными числами и ASCII‑строками: AAA, AAS, AAM, AAD.

    4. Команды простого и циклического сдвигов: SHL, SHR, SAL, SAR, ROL, ROR, RCL, RCR, SHLD, SHRD.

    5. Булевы операции и команды сравнения: AND, OR, XOR, NOT, TEST, CMP. Установка и сброс отдельных флагов состояния процессора.

    6. Команды передачи управления.

      1. Команда безусловного перехода JMP.

      2. Команды условного перехода в зависимости от значения флагов состояния процессора: JZ, JNZ, JC, JNC, JO, JNO, JS, JNS, JP, JNP.

      3. Команды условного перехода в зависимости от равенства операндов: JE, JNE, JCXZ, JECXZ.

      4. Команды условного перехода, использующиеся после команд сравнения беззнаковых операндов: JA, JNBE, JAE, JNB, JB, JNAE, JBE, JNA.

      5. Команды условного перехода, использующиеся после команд сравнения операндов со знаком: JG, JNLE, JGE, JNL, JL, JNGE, JLE, JNG.

      6. Команды организации цикла: LOOP, LOOPZ, LOOPE, LOOPNZ, LOOPNE.

      7. Команда обращения к процедуре (подпрограмме) CALL и команда возврата из процедуры (подпрограммы) RET. Передача параметров через регистры и стек. Вложенные вызовы процедур.

      8. Команда прерывания INT.

    7. Команды обработки строковых примитивов: MOVSB (MOVSW, MOVSD), CMPSB (CMPSW, CMPSD), SCASB (SCASW, SCASD), STOSB (STOSW, STOSD), LODSB (LODSW, LODSD).

    8. Команды перекодировки байтов XLAT, XLATB.

  5. Компиляция программы.

    1. Трансляция, компоновка и запуск программы.

    2. Макрокоманды. Определение макрокоманды. Вызов макрокоманды. Передача параметров. Директивы MACRO и ENDM. Директива ECHO. Вложенные макрокоманды.

    3. Директивы условного ассемблирования: IF, IFB, IFNB, IFIDN, IFIDNI, IFDIF, IFDIFI, IFDEF, IFNDEF, ENDIF, ELSE, EXITM.

    4. Операторы отношения языка ассемблера (LT, GT, EQ, NE, LE, GE).

    5. Специальные операторы: & (оператор подстановки), < > (оператор выделения текста), ! (оператор выделения символа), % (оператор подстановки).

    6. Создание повторяющихся блоков программы. Директивы WHILE, REPEAT, FOR, FORC.

V. Пятая группа вопросов: Регулярные выражения

  1. Представление символов.

    1. Сокращенные обозначения символов: \n, \t, \e ...

    2. Восьмеричные коды: \код

    3. Шестнадцатеричные коды, Юникод: \xкод, \x{код}, \uкод, \Uкод …

    4. Управляющие символы: \cсимвол

  2. Символьные классы и аналогичные конструкции.

    1. Обычные классы: [a-z] и [^a-z].

    2. Почти любой символ: точка

    3. Сокращенные обозначения классов: \w, \d, \s, \W, \D, \S

    4. Блоки, категории и свойства Юникода: \p{свойство}, \P{свойство}

    5. Операции с классами: [[a-z]&&[^aeiou]]

    6. Комбинационные последовательности Юникода: \X

    7. Символьные классы POSIX: [[:alpha:]]

    8. Объединяющие последовательности POSIX: [[.span-11.]]

    9. Символьные эквиваленты POSIX: [[=n=]]

  3. Якорные метасимволы и другие проверки с нулевой длиной совпадения.

    1. Начало строки, начало логической строки: ^, \A

    2. Конец строки, конец логической строки: $, \Z, \z

    3. Начало совпадения (или конец предыдущего совпадения): \G

    4. Границы слов: \b, \B, \<, \>

    5. Опережающая и ретроспективная проверки (?=…), (?!...), (?<=…), (?<!...)

  4. Комментарии и модификаторы режимов.

    1. Модификаторы режимов (?модификатор), например: (?i) или (?-i)

    2. Интервальное изменение режима (?модификатор:…), например: (?i:)

    3. Комментарии: (?#...) и #...

    4. Литеральный текст: \Q\E

  5. Группировка, сохранение, условные и управляющие конструкции.

    1. Сохраняющие круглые скобки: (), \1, \2

    2. Группирующие круглые скобки: (?:...)

    3. Именованное сохранение: (?<Имя>)

    4. Атомарная группировка: (?>…)

    5. Конструкция выбора: …|…|…

    6. Условная конструкция: (? if then | else)

    7. Максимальные квантификаторы: *, +, ?, {мин, макс}

    8. Минимальные квантификаторы: *?, +?, ??, {мин, макс}?

    9. Захватывающие квантификаторы: *+, ++, ?+, {мин, макс}+

VI. Шестая группа вопросов: Системное программирование

  1. Список формируется.

    1. Системные вызовы. Определение. Применение.

    2. Схема компиляции программы.

    3. Средства компиляции программ. Утилиты (cc\gcc, make).

    4. Параметры, передаваемые gcc/cc.

    5. Параметры, переданные программе (argc, argv[]), переменные окружения.

    6. Установка, получение значений переменных окружения.

    7. Директивы (include, define)

    8. Заголовочные файлы. Определение, применение.

    9. Система регистрации ошибок.

    10. Основные системные вызовы для работы с файлами.

    11. Дескрипторы основных потоков.

    12. Структура dirent.

    13. Структура stat, семейство системных вызовов stat.

    14. Межпроцессное взаимодействие (неименованные каналы, именованные каналы, очереди сообщений).

    15. Организация именованного канала, для взаимодействия процессов.

    16. Организация неименованного канала, для взаимодействия процессов.

    17. Fork()

    18. Семейство функций exec.

    19. Функция popen().

    20. Принципиальные различия, между popen и exec*().

    21. Функция pipe() и массив дескрипторов (реализация механизма)

    22. FIFO. Реализация механизма.

    23. Многопоточность.

    24. Поток, функция потока.

    25. Семафоры, мьютексы.

    26. Реализация многопоточности.

    27. ЗНАТЬ материал html - файлов, посвященных темам 8-ого модуля!

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