Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы_ГОС_2007.doc
Скачиваний:
72
Добавлен:
10.02.2016
Размер:
3.91 Mб
Скачать

73. Управление дисками и каталогами в ms-dos.

Для управления дисками в ОС MS-DOS наиболее часто используются следующие

команды:

1) FORMAT - Форматирование диска для работы с MS-DOS.

FORMAT диск: [/V[:метка]] [/Q] [/F:размер] [/B | /S] [/C]

FORMAT диск: [/V[:метка]] [/Q] [/T:дорожки /N:секторы] [/B | /S] [/C]

FORMAT диск: [/V[:метка]] [/Q] [/1] [/4] [/B | /S] [/C]

FORMAT диск: [/Q] [/1] [/4] [/8] [/B | /S] [/C]

/V[:метка] Метка создаваемого тома.

/Q Выполнение быстрого форматирования (очистка системных областей

диска - FAT и корневого каталога).

/F:размер Размер форматируемого диска (например 160, 180, 320, 360, 720, 1.2, 1.44, 2.88).

/B Отвод на диске места под системные файлы.

/S Копирование на отформатированный диск системных файлов.

/T:дорожки Число дорожек на каждой стороне диска.

/N:секторы Число секторов, приходящееся на одну дорожку.

/1 Форматирование только первой стороны диска.

/4 Форматирование диска 5,25", 360 Кбайт в дисководе для дисков высокой плотности.

/8 Форматирование с созданием 8 секторов на дорожке.

/C Проверка кластеров, помеченных как поврежденные.

2) FDISK - Управление разделами жесткого диска.

Позволяет создавать и удалять разделы DOS на жестком диске.

3) COPY - Копирование файлов.

COPY [/A | /B] источник [/A | /B] [+ источник [/A | /B] [+ ...]] [результат

[/A | /B]] [/V] [/Y | /-Y]

источник Имя копируемого файла (файлов).

/A Файл является текстовым файлом ASCII.

/B Файл является двоичным.

результат Каталог для размещения и/или имя создаваемого файла.

/V Проверка правильности копирования путем сравнения файлов.

/Y Отключение режима запроса подтверждения на замену файлов.

/-Y Включение режима запроса подтверждения на замену файлов.

Ключ /Y может быть установлен с помощью переменной среды COPYCMD.

Ключ /-Y, заданный непосредственно в командной строке, имеет над ним приоритет.

Чтобы объединить несколько файлов в один, необходимо указать единственный

конечный файл и несколько исходных (путем использования подстановочных

знаков или формата файл1+файл2+файл3).

4) MOVE - Перемещение файлов и переименование файлов и каталогов.

Перемещение одного или более файлов:

MOVE [/Y | /-Y] [диск:][путь]имя_файла1[,...] конечный_файл

Переименование каталога:

MOVE [/Y | /-Y] [диск:][путь]каталог1 каталог2

[диск:][путь]имя_файла1 Размещение и имя перемещаемого файла либо файлов.

конечный_файл Новое размещение файла. Может включать имя диска, двоеточие, имя каталога, либо их комбинацию. Если перемещается только один файл, допускается указать его новое имя. Это позволяет сразу переместить и переименовать файл.

[диск:][путь]каталог1 Каталог, который следует переименовать.

каталог2 Новое имя каталога.

/Y Отказ от запросов подтверждения при создании каталогов

и замене файлов.

/-Y Выдача запросов на подтверждение при создании каталогов

и замене файлов.

Ключ /Y может быть установлен с помощью переменной среды COPYCMD.

Ключ /-Y в командной строке имеет над ним приоритет.

5) DEL - Удаление файлов.

DEL [диск:][путь]имя_файла [/P]

ERASE [диск:][путь]имя_файла [/P]

[диск:][путь]имя_файла Имя удаляемого файла (файлов). Для удаления сразу нескольких файлов используются подстановочные знаки.

/P Выдача запросов при удалении каждого файла.

6) CD - Вывод имени либо смена текущего каталога.

CHDIR [диск:][путь]

CHDIR[..]

CD [диск:][путь]

CD[..]

.. задает необходимость перехода в родительский каталог.

Команда CD диск: отображает имя текущего каталога заданного диска.

Команда CD без параметров отображает имена текущих диска и каталога.

7) MD - Создание каталога.

MKDIR [диск:]путь

MD [диск:]путь

8) RD - Удаление каталога.

RMDIR [диск:]путь

RD [диск:]путь

77. Принципы организации вывода информации на принтер для IBM PC.

Устройство печати IBM PC - подобных компьютеров обычно подключается к параллельному интерфейсу. Для подключения используется стандартный разъем

Centronix, имеющий 36 контактных выходов.

К ПЭВМ могут подключены два отдельных адаптера для управления принтерами, использующие порты 378h-37Ah (первый адаптер) и 278h-27Ah (второй адаптер).

Вывод информации на принтер может осуществляться тремя различными способами:

с помощью функций DOS, с помощью функций BIOS и путем непосредственной работы с адаптером принтера через порты ввода-вывода. Рассмотрим подробнее все три спо

соба.

1) Вывод информации с помощью функций MS-DOS.

Наиболее предпочтительным методом для вывода информации на принтер с помощью функций MS-DOS является использование дескрипотрной функции записи

(Int 21h fn 40h) с предопределенным дескриптором стандартного печатающего устройства.

Пример:

msg db 'пример' ; строка для вывода на печать

msg_len equ $-msg ; длина строки

.

.

mov ah, 40h ; дескрипторная функция записи

mov bx, 4 ; BX = дескриптор стандартного устройства печати

mov cx, msg_len ; CX = длина строки

mov dx, seg msg ; DS:DX = адрес строки

mov ds, dx

mov dx, offset msg

int 21h ; вызов функции MS-DOS

jc error ; переход, если ошибка

Для вывода информации на другие устройства печати средствами MS-DOS необходимо с помощью дескрипторных функций работы с файлами открыть файл с

именем "LPTn", где n - номер параллельного устройства, на которое будет осуществляться вывод (Int 21h fn 3Dh), и осуществлять вывод информации с

помощью полученного дескриптора.

Еще одним способом вывода информации на принтер является функция MS-DOS 05h, которая передает в принтер символ из регистра DL.

2) Вывод информации с помощью управления адаптером принтера через порты ввода-вывода.

При программировании принтера важно знать адрес базового порта ввода-вывода (первого порта из трех); адреса базовых портов хранятся в области данных BIOS,

начиная с адреса 0000:0408 (LPT1) и далее по слову на принтер до LPT4.

Рассмотрим принципы оранизации вывода информации на принтер при условии, базовый адрес порта ввода-вывода адартера принтера равен 378h.

Порт Операция Описание

----------------------------------------------------------------------------

378h Запись Регистр данных - сюда засылается байт, посылаемый на печать

Чтение Регистр данных - позволяет считать последний байт, переданный

принтеру

379h Чтение Регистр состояния принтера.

37Ah Чтение/ Регистр управления принтером.

Запись

Регистр состояния принтера имеет следующие значения отдельных битов:

3: 0 = при печати возникла ошибка;

4: 0 = принтер в автономном режиме;

5: 1 = сигнал "конец бумаги";

6: 0 = принтер готов к печати следующего символа;

7: 0=принтер занят, находится в автономном режиме или произошла ошибка.

Регистр управления принтером имеет следующие значения отдельных битов:

0: бит запуска печати;

1: 1 = после возврата каретки выводить перевод строки (в MS-DOS должен быть

сброшен);

2: 1 = инициализировать принтер;

3: 1 = разрешить вывод на печать (должен быть всегда установлен);

4: 1 = разрешить прерывания от принтера;

Примечания.

1. Для запуска печати символа нужно на короткое время установить бит 0 регистра управления, а затем сбросить его.

2. Прерывание происходит по окончании вывода символа на печать: для первого принтера на седьмом уровне контроллера прерываний (IRQ7, вектор прерывания 0Fh),

для второго принтера - на пятом уровне (IRQ5, вектор 0Dh). Следует отметить также, что IRQ5 используется XT-контроллером жестких дисков для генерации своих

прерываний. Обычно этот бит не используется (сбрасывается), а проверка готовности принтера производится на основании опроса регистра состояния.

Типичная последовательность действий для вывода на печать одного символа такова:

- вывести передаваемый байт в регистр данных;

- в цикле проверять состояние принтера до устaновки бита 7 регистра состояния (здесь возможно использование таймаута);

- проверить биты 3-5 регистра состояния на наличие ошибки;

- установить и сразу же сбросить нулевой бит регистра управления, для этого подходит следующая последовательность команд:

mov dx, 37Ah ; адрес регистра управления

mov al, 00001101b ; установить биты 0, 2 и 3

out dx, al ; вывести команду

xor al, 1 ; сбросить бит 0

out dx, al ; повторно вывести команду

- далее можно прочитать и запрограммировать регистр состояния и перейти к печати следуюего символа.

Несмотря на простоту управления, принтер представляет из себя достаточно сложное устройство, имеющее свой микропроцессор, ПЗУ и ОЗУ. Микропроцессор

используется для обработки управляющих последовательностей и управления печатью. ПЗУ содержит описание рисунков символов в зависимости от их кода и выбранной

таблицы и программы на языке используемого микропроцессора. ОЗУ используется для временного хранения введенных данных и спроектированных пользователем

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

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

Обычно команды начинаются с символа ESC (шестнадцатиричный код 1Bh) и имеют длину от двух байт и более (существуют командные последовательности, включающиепо несколько килобайт информации, например команды загрузки спроектированных пользователем шрифтов). Спецсимволы и байты команд передаются принтеру так же, как и обычные символы, предназначеные для печати, описанным выше способом.

Существует 2 основных стандарта на систему команд и таблицу используемых символов (стандарты IBM и EPSON), которых в основном придерживаются

фирмы-изготовители, оставляя за собой право вносить в них изменения и дополнения. Единого стандарта как на систему команд, так и на расположение и

рисунки символов второй половины таблицы ASCII (коды 129-255) нет. Наиболее часто используемые команды:

- установка вида шрифта и режима печати;

- черновой текстовый (draft) нормальной ширины (pica), узкий (condensed) или средней ширины (elita);

- качественный шрифт (NLQ, Proportional, Orator, Script и т. д.);

- выбор таблицы символов из ПЗУ (обычно имеется несколько таблиц, отличающихся расположением управляющих кодов, наличием и расположением

псевдографических символов или курсива);

- загрузка в ОЗУ принтера спроектированных пользователем шрифтов и работа с ОЗУ принтера (именно в этой группе команд, имеются наибольшие различия между

разными моделями);

- управление принтером в режиме точечной графики;

- установка служебных параметров (размеры отступов, страницы, шаг табуляции, расстояние между строками) и изменение характеристик (сброс,

включение/отключение датчика конца бумаги, печать в одну или в две стороны и т. п.).

79. Основы создания резидентных программ для MS-DOS.

Большой класс программ, обеспечивающих функционирование вычислительной системы (драйверы устройств, оболочки DOS, программы шифрации и защиты данных,

русификаторы, обслуживающие программы типа электронных блокнотов или калькуляторов и др.), должны постоянно находиться в памяти и мгновенно

реагировать на запросы пользователя или на какие-то события, происходящие в вычислительной системе. Такие программы носят названия программ, резидентных в

памяти (Terminate and Stay Resident, TSR), или просто резидентных программ. Сделать резидентной можно как программу типа .COM, так и программу типа

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

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

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

секции инициализации, которая заполняет или модифицирует векторы прерываний, настраивает программу на конкретные условия работы (возможно, исходя из

параметров, переданных программе при ее вызове в хвосте командной строки) и с помощью прерывания DOS Int 27h (только для .COM программ) либо Int 21h с

функцией 31h (для программ обоих типов) завершает программу, оставляя в памяти ее резидентную часть.

Размер резидентной части программы (в параграфах) передается DOS в регистре DX. Указывать при этом сегментный адрес программы нет необходимости, так как он

известен DOS. Для определения размера резидентной секции ее можно завершить предложением вида:

ressize equ $-mуprос,

где mуprос - адрес начала программы, а при вызове функции 31h в регистр DX заслать результат вычисления выражения (ressize+10Fh)/16.

Закрепив за резидентной программой необходимую для ее функционирования память, эти прерывания передают управление командному процессору COMMAND.COM,

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

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

чтобы активизировать резидентную программу, ей надо как-то передать управление и, возможно, параметры. Запустить резидентную программу можно тремя способами:

вызвать ее оператором CALL как подпрограмму; использовать механизм асинхронных (аппаратных) прерываний; с помощью синхронного (программного) прерывания. Кроме

того, специально для взаимодействия с резидентными программами в DOS предусмотрено мультиплексное прерывание 2Fh. Первый способ требует наличия в

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

соглашениями взаимодействия (межпрограммным интерфейсом). Оформив в виде резидентной программы процедуры выполнения функций, общих для группы транзитных

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

программы внешним прерыванием (от таймера, клавиатуры, последовательного порта или другого периферийного оборудования) широко используется резидентными

программами BIOS, а также многими прикладными резидентными программами: русификаторами, калькуляторами, электронными блокнотами и т. д. Наконец,

синхронная передача управления резидентной программе с помощью команды INT характерна для устанавливаемых драйверов DOS, некоторых русификаторов, программ

обслуживания дисков и др.

После того, как программа, которой надлежит стать резидентной, загружена и оставлена в памяти, управление передается командному процессору COMMAND.COM,

который ожидает последующих команд оператора. Система не выполняет какой-либо проверки имен запускаемых программ, поэтому оператор может по ошибке повторно

или даже многократно запустить ту же программу, в результате чего в памяти останутся резидентными два или несколько экземпляров одной и той же программы.

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

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

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

программы от повторной загрузки наиболее распространены два способа. Можно включить в загрузочный модуль программы некоторый произвольный код (сигнатуру)

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

прерывания, например, 09h. Если наша программа еще не установлена, в векторе 09h хранится адрес системного обработчика, в котором, естественно, нет

сигнатуры. Если же наша программа уже установлена, сигнатура в памяти имеется; процесс повторной инициализации обнаружит ее и аварийно завершится. Следует

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

рассмотренная методика не спасет от повторной загрузки, поскольку в векторе прерывания будет находиться адрес другой программы, в которой данная сигнатура

отсутствует.

Другим способом поиска сигнатуры является трассирование цепочки управляющих блоков памяти MS DOS. Hедостатком такого способа является необходимость

использования недокументированной функции 52h прерывания Int 21h.

Еще метод защиты резидентных программ от повторной загрузки связан с использованием мультиплексного прерывания 2Fh. В этом случае TSR-программа

должна установить свой обработчик этого прерывания, с помощью которого транзитная часть программы могла бы определять, была ли уже загружена TSR-программа

в память, или нет.

Способы передачи управления резидентной программе.

- Подмена Int 16h

Простейшим путем создания горячего ключа (набора клавиш, активизирующих программу) является подмена прерывания Int 16h. Большинство хорошо работающих

приложений используют это прерывание для ввода с клавиатуры. Установка собственного прерывания Int 16h позволит Вам анализировать каждый символ и

отклонять любые горячие ключи. Ограничение для этого метода заключается в том, что горячий ключ можно выявить только один раз, когда программа переднего плана

задает считывание. Если эта программа производит большой объем вычислений, то между временем нажатия клавиши и ответом TSR задержка может быть большая.

- Опрос буфера клавиатуры прерыванием от таймера Int 1Ch

Можно обеспечить постоянный контроль клавиатуры подменой прерывания от таймера и проверкой буфера клавиатуры с помощью программы обработки прерываний

от таймера.

- Ловушка для Int 9

Другим способом управления клавиатурой является обработка прерывания Int 9. При нажатии или освобождении клавиши аппаратные средства генерируют прерывание

Int 9. Новый обработчик Int 9, обращаясь непосредственно к контроллеру клавиатуры (8255). Этот способ являеться наиболее сложным, но и наиболее

надежным.

- Управление состоянием клавиатуры

Альтернативой для проверки буфера клавиатуры является наблюдение за байтом состояния клавиатуры (используя, например, прерывание Int 1Ch). Этот метод

исключает необходимость знать местонахождение ROM BIOS буфера клавиатуры, но требует, чтобы пользователь выбрал комбинацию клавиш, которая при ее нажатии

изменяет состояние клавиатуры (т. е. Alt-Shift, например). Этот метод будет работать до тех пор, пока любая загруженная после нее TSR не изменит байт

состояния клавиатуры. Так как состояние клавиатуры влияет на обработку сканируемого кода, этот способ будет работать, пока TSR не будет изменена.

Безопасность активации TSR программ.

Поскольку активация TSR программы, использующей прерывание Int 9h, может произойти в любой момент, это может случиться не только в момент выполнения

текущего активного процесса, но и в момент выполнения обработчиков других прерываний, например, функций DOS или BIOS. Так как при работе функций DOS ими

используются некоторые внутренние переменные, повторный вызов функции DOS из TSR программы может привести к изменению этих переменных, что после возврата из

TSR может вызвать крах системы. Другими словами, DOS не является повторно входимой. Следовательно, в TSR программе, пользующейся функциями DOS, нужно

предусмотреть защиту от подобных ситуаций.

Основными методами проверки безопасности вызовов функций DOS являются проверка так называемого флага занятости DOS и обработка прерывания Int 28h.

После того, как TSR завершает выполнение запроса "оставить резидентной", то для последующей своей активации она ожидает прерывание захвата. Когда TSR

пробуждается, необходимо иметь способ определения, что в данный момент делает программа переднего плана, или кто активен в данный момент: DOS или BIOS. Так

как операционная система DOS не является повторно вводимой, то в целях оказания помощи резидентной подпрограмме в решении вопроса о безопасности приема

запросов BIOS она поддерживает флаг занятости.

Для гарантии безопасности продолжения своего выполнения при повторной активации TSR должна проверять состояние этого флага. Его адрес можно получить,

используя функцию AH = 34h прерывания Int 21h. Адрес флага занятости DOS после вызова этой функции возвращается в регистровой паре ES:BX.

Учитывая способ обработки операционной системой DOS запросов int 21h, внутри ISR нельзя гарантировать надежное получение этих адресов. Самым надежным

способом доступа к этим флажкам является сохранение этих адресов только во время секции инициализации TSR.

Фоновая обработка с использованием прерывания int 28h

Финальной частью изучения TSR является фоновая обработка. Эта возможность является недокументированной. При правильном использовании, пока выполняется

другая программа, TSR может выполнять запросы к BIOS. Программа PRINT.COM использует эту возможность для чтения блоков файла.

Система подготовки текстов может использовать эту возможность для сохранения файла параллельно с редактированием переднего плана, а средство

ведения электронных таблиц при фоновой обработке может выполнять длинные вычисления.

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

критической ошибки и Int 28h. Довольно часто программы много времени расходуют на ожидание ввода информации. Путем захвата прерывания Int 28h TSR может

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

также могут использовать и другие программы TSR, то ISR прерывания Int 28h, когда она выполняется, должно образовывать цепочку с предыдущей ISR.

ISR прерывания Int 28 запускает TSR только в том случае, если прикладная программа переднего плана использует функцию DOS ввода/вывода символов. TSR,

которая нуждается в фоновой работе, обычно "захватывает", кроме того, одно или два прерывания таймера. ISR таймера обеспечивает TSR доступ к процессору даже в

том случае, если приоритетная прикладная программа является программой с интенсивными вычислениями, или не использует функции ввода/вывода символов.

Написание ISR int 28h является достаточно простым делом. Новая ISR сначала вызывает старую ISR и затем увеличивает значение того же самого флажка BusyFlag

(флажок "занято"), используемого программами ISR прерываний Int 8h, Int 9h и дискового ввода/вывода. Если результат не нулевой, то выполняются некоторые

непрерываемые функции. Так как эта ISR должна получать управление только тогда, когда доступ к диску безопасен, увеличение должно всегда вырабатывать нулевой

результат. После повторной активации TSR программа ISR уменьшает значение флажка BusyFlag и возвращает управление в DOS. Заметим, что не нужно выполнять

проверку флажка критической ошибки: поскольку выполняется запрос Int 21h, то он установлен; однако он всегда сохраняется для выполнения запросов Int 21h,

номер функции которых больше значения 0Ch.

83. Триггеры

Это устройства с 2-мя устойчивыми состояниями. Он содержит запоминающую или бистабильную ячейку, которая представляет собой триггер и ту или иную схему управления. Схема управления преобразует поступающую информацию на вход в комбинацию сигналов, которые воздействуют на запоминающий элемент.

RS – триггер

Имеет два входа разделённой установки Q=0 или Q=1. Воздействуя на S – set триггер устанавливается в “1”, на R – reset – устанавливается триггер в “0”. Для RS триггера одновременная подача на R и S “1” запрещена. При подаче на оба входа “0” триггер заперт и хранит своё старое состояние.

Таблица истинности:

QH=S+QR  характеристическое

QH=R+QS  уравнение RS триггера

Схемы RS триггеров:

Данные триггеры являются асинхронными . Добавление логики на входы превращает его в синхронный.

D – триггер

Триггер задержки D типа имеет один информационный вход. Логика функционирования заключается в том, что сигнал на выходе Q повторяет сигнал на входе D при условии, что на командном входе С имеется логическая 1.

Таблица переходов дляD – триггера: Схема D – триггера:

ТриггерDV – имеет 2 командных входа С и V, логическое функционирование таково: сигнал на выходе повторяет сигнал на входе при условии, что на C и V есть логическая 1. Схема DV триггера.

Т – триггер

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

Схемы Т – триггера:

на базеRS – триггера на базе D – триггера

JK – триггер

ВходJ устанавливает тр. В состояние 1, вход К устанавливает в состояние 0. У JК тр. нет запрещённых состояний, при одновременной подаче 1 на входы J и К тр. меняет своё состояние на противоположное.

В JKтр. входные сигналы не должны изменяться в те моменты, когда С=1, т.к. тр. может отреагировать на такое изменение.

Таблица переходов JК тр.:

84. Двухступенчатые триггеры.

В

3

этих триггерах новая информация сначала записывается во входную ступень при сохранении старой информации во второй ступени. Когда новые состояния выработаны и старая информация уже не нужна производится перенос данных из первой ступени во вторую. Однотактные двухступенчатые триггеры управляются одной тактовой последовательностью. При этом происходит « асинхронное » тактирование ступеней. Для ступеней приём информации разрешается поочерёдно. Такие двухступенчатые триггеры наз.MS – триггеры. Рассмотрим структуру двухступенчатого триггера с так называемыми запрещёнными связями.

4

Принцип работы:

С=0, А=1, В=1. Тр. М блокирован, элементы (3,4) подключат с инверсией выходы первой ступени на инверсные входы тр. SL Если q=1, тоQ=1

С=1, S=1,R=0,А=0,В=1. Первая ступень установится в 1, q=1. На входах элементов (3,4) появились нули, оба выхода принимают значения 1, что блокирует переключение тр. SL, переводя его в режим хранения информации. При С=1 выходной тр. хранит значение старой информации, а входной тр. служит для приёма новой. Время задержки установки тр. первой ступени равно 3tЗ одного ЛЭ. Время задержки установки всего тр. 6tЗ одного ЛЭ.

При введение ОС (штрих – пунктир) такой тр. становится универсальным JK тр.

Существует ограничение на моменты изменения информации сигналов в тр. типа MS. В частности, в JK тр. входные сигналы не должны изменяться в те моменты, когда С=1, т.к. тр. может отреагировать на такое изменение.