Читайте также:
|
|
Т -триггер — это триггер со счетным входом. Он имеет один информационный вход. При приходе активного сигнала Т -триггер меняет свое состояние на противоположное и сохраняет предыдущее значение при отсутствии сигнала на входе.
Работа Т -триггера может также быть описана следующей диаграммой.
Рис.3
Для обеспечения такого режима функционирования необходимо обеспечить дополнительную обратную связь с выхода на вход. Т -триггер может быть построен по схемам, представленным на рис. 4.
Рис.4
Временные диаграммы работы Т-триггера показаны на рис. 5.
Рис.5
Структуры на рис. 4 правильно отражают работу Т-триггера, но на практике они зачастую оказываются неработоспособны. Причина заключается в обратных связях. Переключение триггера в новое состояние происходит во время существования синхроимпульса. Новое состояние триггера за счет обратных связей вырабатывает сигналы управления, приводящие к возврату триггера в предыдущее состояние. Если синхроимпульс еще не закончился, происходит обратное переключение триггера. Это переключение будет повторяться до момента окончания синхроимпульса. После окончания синхроимпульса триггер установится в неизвестное состояние.
Чтобы этого избежать, необходимо отключить синхроимпульс сразу после первого переключения. Можно просто укоротить синхроимпульс. Укорочение производят обычно с помощью схемы из трех триггеров, которая реагирует на фронт импульса, т. е. переключение происходит в течение короткого интервала времени.
В триггерах с динамическим управлением срабатывание происходит по фронту синхронизирующего сигнала. Поэтому процессы, связанные с переключением, происходят в течение короткого времени вблизи фронта сигнала на синхронизирующем входе только при перепаде тактового сигнала.
Рис.6
Переключение триггера может происходить при положительном фронте сигнала, тогда этот вход называется прямым динамическим входом (рис. 6, а), либо при отрицательном — инверсный динамический вход (рис. 6,б). Положительный фронт означает изменение с нулевого значения на единичное, отрицательный фронт — с логической 1 в логический 0.
Другим подходом к реализации счетного триггера является применение двухступенчатых триггеров, разделяющих процесс записи новой информации и передачи ее на выход.
Ассемблер. Регистры микропроцессоров 8086-80186. Сегментация памяти в DOS. Создание циклов.
Язык ассемблера — это символическое представление машинного языка.
Язык ассемблера микропроцессора Intel 8086 является довольно сложным, что в первую очередь объясняется сегментной организацией памяти и одновременной адресацией четырех сегментов. В языке имеется более 100 базовых символических команд, в соответствии с которыми ассемблер генерирует более 3800 машинных команд. Кроме того, в распоряжении программиста имеется более 20 директив, предназначенных для распределения памяти, инициализации переменных, условного ассемблирования и т.д.
Исходная программа на языке ассемблера представляет собой последовательность операторов. Операторы обычно занимают одну строку. Ассемблер воспринимает операторы в свободном формате, т.е. элементам операторов не назначены фиксированные столбцы и между ними может быть любое число пробелов там, где это необходимо.
Операторы в исходной программе классифицируются как командные операторы, операторы распределения данных и директивы ассемблера.
Командные операторы определяют генерируемые ассемблером машинные команды; они содержат мнемонику и, при необходимости, один или два операнда. Каждый командный оператор порождает одну машинную команду, формат которой зависит от способа задания операндов.
Операторы распределения данных резервируют ячейки памяти для данных программы.
Директивы ассемблера содержат специальные указания для ассемблирующей программы и сами по себе не порождают никаких машинных кодов.
Формат командных операторов
Командные операторы записываются в следующем формате:
Метка: Префикс Мнемоника Операнд1,Операнд2;Комментарий
где фигурные скобки обозначают необязательные поля.
Рассмотрим назначение отдельных полей данного формата:
1) Метка представляет собой определяемое пользователем имя, заканчивающееся двоеточием. Значением метки является текущее значение счетчика ячеек (адресов) в текущем сегменте кода, т.е. адрес отмеченной команды. Метки как операнды используются только в командах передачи управления, и при этом двоеточие в конце ссылки на метку не ставится.
2) Префикс заставляет ассемблер сформировать один из префиксных байт - блокировки LOCK или повторения REP, который непосредственно предшествует команде.
3) Мнемоника кода операции представляет собой заранее определенное и неизменяемое имя, которое идентифицирует тип генерируемой машинной команды.
4) Операнды задают адреса данных или сами данные, необходимые в данной команде.
5) Комментарий предназначен только для документирования программы. Он всегда начинается с точки с запятой.
Формат директив ассемблера и операторов распределения данных
Директивы ассемблера и операторы распределения данных имеют несколько иной формат:
Имя Директива Операнды;Комментарий
Рассмотрим назначение отдельных полей данного формата:
1) Имя директивы, в отличие от метки, никогда не заканчивается двоеточием. Некоторые директивы требуют обязательного наличия метки.
2) Директива является одним из ключевых неизменяемых слов ассемблера и определяет его действия в процессе ассемблирования. Директивы используются программистом для распределения памяти, обеспечения связи между программными модулями и работы с символическими именами.
3) Операнды конкретизируют действия, выполняемые по данной директиве.
4) Поле комментария аналогично такому же полю в командных операторах.
Ассемблер процессора 8086 является жестко типизированным языком. Это означает, что операнды команд (регистры, переменные, метки, константы) имеют связанный с ними атрибут типа, который сообщает ассемблеру некоторую информацию об операнде. Атрибут типа обычно подразумевается по умолчанию, но при необходимости может быть задан явно.
Регистр я вляется устройством временного хранения данных и используется с целью облегчения арифметических, логических и пересылочных операций. Регистры МП 80386 являются расширением регистров прежних МП 8086, 80186, 80286. Все 16-разрядные регистры МП предыдущих поколений содержатся внутри 32-разрядной архитектуры. Микропроцессор 80386 включает шесть непосредственно доступных программисту регистров селекторов сегментов, которые содержат указатели сегментов. Значения этих селекторов могут быть загружены при исполнении программы и являются специфичными для задачи. Это значит, что регистры сегментов перезагружаются автоматически при переключении МП 80386 на другую задачу. За регистрами селекторов сегментов стоят реальные регистры кэш-памяти сегментов, которые содержат описания сегментов, указываемых селектором. Это сделано на аппаратном уровне для того, чтобы избежать дополнительной выборки из памяти в случае, когда требуется описание сегмента.
Дата добавления: 2014-12-19; просмотров: 127 | Поможем написать вашу работу | Нарушение авторских прав |