
- •Министерство образования и науки, молодежи и спорта украины министерство образования и науки, молодежи и спорта арк крымский инженерно-педагогический университет
- •Контрольная работа
- •Обычные символы (литералы) и специальные символы (метасимволы)
- •Любой символ
- •Символьные классы (наборы символов)
- •Позиция внутри строки
- •Квантификация (поиск последовательностей)
- •Жадная и ленивая квантификация
- •Ревнивая квантификация (Сверхжадная)
- •Модификаторы
- •Комментарии
- •Перечисление
- •Просмотр вперёд и назад
- •Поиск по условию
- •Задание 2 Осветить вопрос по теме «Защищенный режим процессора Intel»
- •Задание 3 Составить программу (для 16-разрядного процессора), реализующую следующее задание:
- •Задание 4 Составить программу (для 16-разрядного процессора), реализующую следующее задание:
- •Задание 5 Составить программу (для 16-разрядного процессора), реализующую следующее задание:
- •Задание 6 Составить программу (для 16-разрядного процессора), реализующую следующее задание:
Поиск по условию
Во многих реализациях регулярных выражений существует возможность выбирать, по какому пути пойдёт проверка в том или ином месте регулярного выражения на основании уже найденных значений.
Представление |
Пояснение |
Пример |
Соответствие |
(?(?=если)то|иначе) |
Если операция просмотра успешна, то далее выполняется часть то, иначе выполняется часть иначе. В выражении может использоваться любая из четырёх операций просмотра. Следует учитывать, что операция просмотра нулевой ширины, поэтому части то в случае позитивного или иначе в случае негативного просмотра должны включать в себя описание шаблона из операции просмотра. |
(?(?<=а)м|п) |
мам,пап |
(?(n)то|иначе) |
Если n-я группа вернула значение, то поиск по условию выполняется по шаблону то, иначе по шаблону иначе. |
(а)?(?(1)м|п) |
мам,пап |
Задание 2 Осветить вопрос по теме «Защищенный режим процессора Intel»
Вопрос: Дискрипторы
Дескриптор - лексическая единица: - выраженная информативным словом (вербально) или кодом; и - являющаяся именем класса синонимичных или близких по смыслу ключевых слов. Многозначному слову естественного языка соответствует несколько дескрипторов, а нескольким синонимичным словам и выражениям - один дескриптор. Дескрипторы используются для координатного индексирования документов и информационных запросов с целью последующего поиска
Ко всем потокам ввода-вывода (которые могут быть связаны как с файлами, так и с папками, сокетами и FIFO) можно получить доступ через так называемые файловые дескрипторы. Файловый дескриптор — это неотрицательное целое число. Когда создается новый поток ввода-вывода, ядро возвращает процессу, создавшему поток ввода-вывода, его файловый дескриптор.
По умолчанию Unix-шеллы связывают файловый дескриптор 0 с потоком стандартного ввода процесса (терминал), файловый дескриптор 1 — с потоком стандартного вывода (терминал), и файловый дескриптор 2 — с потоком диагностики (куда обычно выводятся сообщения об ошибках). Это соглашение соблюдается многими Unix-шеллами и многими приложениями — и ни в коем случае не является составной частью ядра.
Стандарт POSIX.1 заменил «магические числа» 0, 1, 2 символическими константами STDIN_FILENO, STDOUT_FILENO и STDERR_FILENO соответственно.
Файловые дескрипторы могут принимать значения от 0 до OPEN_MAX. Согласно POSIX.1, значение OPEN_MAX равно 19. В реальных ОС это значение может быть больше.
Задание 3 Составить программу (для 16-разрядного процессора), реализующую следующее задание:
Программа преобразования двузначного шестнадцатеричного числа в символьном виде в двоичное представление.
Вход: с клавиатуры вводится шестнадцатиричное число из двух цифр, используя функцию DOS.
Выход: результат преобразования выводится на экран, используя функцию DOS.
Ввод |
Вывод |
Функция 01h Int 21h |
Функция 06h Int 21h |
.MODEL small
stack 255
dataseg
shet db (?)
sd1 db ?
sd2 db ?
sd3 db ?
stolb db ?
nomer db ?
predel db ?
codeseg
start:
mov ah,00h ;отчистка экрана
mov al,03h ;параметры экрана
int 10h
mov sd2,2h
tur:
mov predel,0h
mov nomer,0ah
mov shet,0h
mov stolb,5h
tur1:
mov ah,02h ;установка позиции курсора
mov dh,5h ;кол-во строк
mov dl,stolb ;кол-во колонок
int 10h
mov ah,01h ;Сканируем клавиатуру с одновременным
int 21h ;выводом нажатого символа на экран
cmp al, 1bH ;если нажат "ESC" то прыжок на метку en1
je en
cmp al,30h
jl tur1
cmp al,39h
jg tur6
clc
sbb al,30h
tur5:
call delen
mov sd1,ah
add sd1,30h
mov ah,02h ;установка позиции курсора
mov dh,9h ;кол-во строк
mov dl,nomer ;кол-во колонок
int 10h
mov ah,06h
mov dl,sd1
int 21h
mov al,sd3
cmp al,0h
je tur3
dec nomer
jmp
tur5
tur6:
cmp al,66h
jg tur1
clc
sbb al,87
jmp tur5
tur3:
inc predel
inc stolb
mov nomer,15h
mov al,predel
cmp al,3h
je start1
jmp tur1
start1:
jmp start
delen:
mov ah,0h
div sd2
mov sd3,al
ret
en:
mov ah,4ch
int 21h
end start