Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольная работа готовая.docx
Скачиваний:
184
Добавлен:
22.11.2018
Размер:
81.59 Кб
Скачать

Поиск по условию

Во многих реализациях регулярных выражений существует возможность выбирать, по какому пути пойдёт проверка в том или ином месте регулярного выражения на основании уже найденных значений.

Представление

Пояснение

Пример

Соответствие

(?(?=если)то|иначе)

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

(?(?<=а)м|п)

мам,пап

(?(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