Регистры микропроцессора

Министерство образования Республики Беларусь

Белорусский Национальный технический университет

Международный институт дистанционного образования.











КОТРОЛЬНАЯ РАБОТА



По теме “Регистры микропроцессора”



Студента 1-го курса МИДО

гр.417315\8

__________



Преподаватель: 

Лакин Владимир Иванович

___________



















Минск 2006


РЕГИСТРЫ МИКРОПРОЦЕССОРА 



Цель работы: 



Изучить регистры и регистры общего назначения. 



Теоретические сведения



Регистр является устройством временного хранения данных и используется с целью облегчения арифметических, логических и пересылочных операций. Регистры МП 80386 являются расширением регистров прежних МП 8086, 80186, 80286. Все 16-разрядные регистры МП предыдущих поколений содержатся внутри 32-разрядной архитектуры. Микропроцессор 80386 включает шесть непосредственно доступных программисту регистров селекторов сегментов, которые содержат указатели сегментов. Значения этих селекторов могут быть загружены при исполнении программы и являются специфичными для задачи. Это значит, что регистры сегментов перезагружаются автоматически при переключении МП 80386 на другую задачу. За регистрами селекторов сегментов стоят реальные регистры кэш-памяти сегментов, которые содержат описания сегментов, указываемых селектором. Это сделано на аппаратном уровне для того, чтобы избежать дополнительной выборки из памяти в случае, когда требуется описание сегмента. 



Регистры общего назначения



Восемь регистров общего назначения имеют длину в 32 бит и содержат адреса или данные. Они поддерживают операнды-данные длиной 1, 8, 16, 32 и 64 бит: битовые поля от 1 до 32 бит: операнды-адреса длиной 16 и 32 бит. Эти регистры называются ЕАХ, ЕВХ, ЕСХ, EDX, ESI, EDI, ЕВР, ESP. Доступ к младшим 16 бит этих регистров выполняется независимо. Это делается в большинстве ассемблеров при использовании 16-разрядных имен регистров: АХ, ВХ, СХ, DX, Sl, Dl, BP,SP. 



Регистр системных флагов



Регистр EFLAGS управляет вводом-выводом, маскируемыми прерываниями, отладкой, переключением задач и включением исполнения в режиме виртуального МП 8086 в защищенной многозадачной среде - все это в дополнение к флагам состояния, которые отражают результат исполнения команды. Младшие 16 бит его представляют собой 16-разрядный регистр флагов и состояния МП 80286, называемый FLAGS, который наиболее полезен при исполнении программ для МП 8086 и 80286. 



Регистры сегментов



Шесть 16-разрядных регистров содержат значения селекторов сегментов, которые указывают на текущие адресуемые сегменты памяти. Ниже перечислены эти регистры. Регистр сегмента программы (CS) - указывает на сегмент, который содержит текущую последовательность исполняемых команд. Процессор выбирает все команды из этого сегмента, используя содержимое счетчика команд как относительный адрес. Содержимое CS изменяется в результате выполнения внутрисегментных команд управления потоком, прерываний и исключений. Он не может быть загружен явным способом. Регистр сегмента стека (SS). Вызовы подпрограмм, записи параметров и активизация процедур обычно требуют области памяти, резервируемой под стек. Все операции со стеком используют регистр SS при обращении к стеку. В отличие от регистра CS регистр SS может быть загружен явно с помощью команды программы. Остальные четыре регистра являются регистрами сегментов данных (DS, ES, FS, GS), каждый из которых адресуется текущей исполняемой программой. Доступ к четырем раздельным областям данных имеет целью повысить эффективность программ, позволяя им обращаться к различным типам структур данных. Содержимое этих регистров может быть заменено под управлением программы. 



Регистры управления сегменированной памятью



Регистр таблицы глобальных дескрипторов (GDTR). Содержит 32-разрядный линейный адрес и 16-разрядную границу таблицы глобальных дескрипторов. Регистр таблицы локальных дескрипторов (LDTR). Содержит 16-разрядный селектор для таблицы локальных дескрипторов. Так как эта таблица является специфичным для задачи сегментом, то она определяется значением селектора, хранимым в регистрах системного сегмента. Регистр дескриптора сегмента, связанный с этой таблицей, программно недоступен. Регистр таблицы дескрипторов прерываний (IDTR). Указывает на таблицу точек входа в программы обработки прерываний. Регистр содержит 32-разрядный линейный базовый адрес и 16-разрядную границу таблицы дескрипторов прерываний (IDT). Регистр задачи (TR). Указывает на информацию, необходимую процессору для определения текущей задачи. Регистр TR содержит 16-разрядный селектор дескриптора сегмента состояния задачи. Поскольку этот сегмент специфичен для задачи, то он определяется значениями селекторов, хранящихся в регистрах системного сегмента. 



Указатель команд



Расширенный указатель команд (EIP) является 32-разрядным регистром. Он содержит относительный адрес следующей команды, подлежащей выполнению. Относительный адрес отсчитывается от начала сегмента текущей программы. Указатель команд непосредственно не доступен программисту, но он управляется явно командами управления потоком, прерываниями и исключениями. Младшие 16 бит регистра EIP называются IP и могут быть использованы процессором независимо. Это свойство полезно при исполнении команд МП 8086 и 80286, которые имеют только регистр IP. 



Регистры управления 



Микропроцессор 80386 имеет три 32-разрядных регистра управления (CRO, CR2 и CR3, a CR1 зарезервированы фирмой Intel), в которых хранятся состояния машины или глобальные состояния. Глобальное состояние - это такое состояние, к которому может получить доступ любой из логических блоков системы или которое управляет этими блоками. Вместе с регистрами системных адресов эти регистры хранят информацию о состоянии машины, которая влияет на все задачи в системе. Для доступа к регистрам управления определены команды их загрузки и сохранности содержимого. Системным программистам регистры управления доступны только через варианты команды MOV, которые позволяют их загружать или сохранять в регистрах общего назначения. 



Регистры отладки 



Шесть доступных программисту регистров отладки (DRO-DR3, DR6 и DR7) расширяют возможности отладки в МП 80386, они устанавливают точки останова по данным и позволяют устанавливать точки останова по командам без модификации сегментов программ. Регистры DRO-DR3 предназначены для четырех линейных точек останова. Регистры DR4 и DR5 зарезервированы фирмой Intel для будущих разработок. Регистр DR6 показывает текущее состояние точек останова, а регистр DR7 используется для установки точек останова.



Листинг программы



Программа выполняет вычисление с помощью регистров.

Program registri;

var

a,b,c: integer;

begin

Writeln( 'Введите значение 1');

Readln(a);

Writeln( 'Введите значение 2');

Readln(b);

asm

mov ax,a

add ax,b 

mov c,ax

end;

Writeln(' Ответ:',c);

end. 



Вывод



При выполнении лабораторной работы я приобрел практические навыки работы с регистрами памяти.




СИСТЕМА ПРЕРЫВАНИЙ



Цель работы: 



Изучить прерывания. 



Теоретические сведения:



Прерывания и исключения.

Прерывания и исключения (исключительные ситуации) изменяют нормальное выполнение задачи, чтобы обработать внешние условия, сообщить об ошибках или исключительных обстоятельствах. Различия между прерываниями и исключениями состоят в том, что прерывания обрабатывают асинхронные внешние условия, в то время как исключения обрабатывают ошибки команд. Хотя прерывание п программа может выполнить посредством команды INT n, процессор рассматривает прерывание за счет программного обеспечения как исключение. Прерывания, произведенные машинным оборудованием, происходят в результате внешних событий и бывают двух видов: маскируемые и немаскируемые, и выполняются после выполнения текущей команды. После того, как программа обработки прерываний заканчивает обслуживание прерывания, выполнение продолжается с команды, которая следует сразу за командой прерывания. Исключения классифицируются как ошибки, ловушки или прекращения в зависимости от способа их сообщения и от того, поддерживается ли перезапуск команды, вызывающей исключение. Ошибки - это исключения, которые обнаруживаются и выполняются до выполнения команды с ошибкой. Ошибка будет происходить в системе виртуальной памяти, когда процессор ссылается на страницу или сегмент, которые отсутствуют. Операционная система выберет страницу или сегмент с диска, после чего 80386 перезапустит команду. Ловушки - исключения, о которых сообщается немедленно после выполнения той программы, которая вызывает исключение. Прекращения - исключения, которые не позволяют определить точно местоположение команды, вызывающей исключение. Прекращения используются для сообщения о грубых ошибках, таких как аппаратная ошибка, неправильные значения в системных таблицах. Таким образом, когда программа обслуживания прерывания заканчивается, выполнение продолжается с команды, следующей сразу за командой вызвавшей прерывание. Микропроцессор 80386 способен обрабатывать до 256 различных прерываний/исключений. Для обслуживания прерываний, необходимо определить (составить) таблицу с 256 векторами прерываний. Вектора прерываний - это указатели на соответствующие программы обслуживания; Из 256 возможных прерываний, 32 зарезервированы для использования INTEL, оставшиеся 224 свободны для использования пользователем. 



Обработка прерываний



Когда происходит прерывание, происходят следующие действия. Во-первых, адрес текущей команды и регистр флагов EFLAGS сохраняются в стеке, что позволяет возобновить прерванную программу. Затем, 80386 снабжается 8-ми битовым вектором, который определяет соответствующий элемент в таблице прерываний. В таблице содержится начальный адрес программы обработки прерываний. После этого, выполняется вызываемая программа обработки. И, наконец, после команды IRET восстанавливается старое состояние процессора и по адресу возврата (т.е. по адресу, сохраненному в стеке) возобновляется выполнение программы. 8-ми битовый вектор прерывания подается на 80386 несколькими различными способами: исключения "поставляют" вектор прерывания внутренне; команды INT содержат или включают в себя вектор; прерывания маскируемые аппаратурой "поставляют" 8-ми битовый вектор через последовательность шины подтверждения прерываний. Прерывания немаскируемые аппаратурой присвоены к вектору прерывания 2. 



Маскируемые прерывания



Маскируемые прерывания - наиболее общий способ, используемый 80386 для ответа на асинхронные внешние события аппаратуры. Аппаратное прерывание происходит, когда бит IF флага прерываний разблокирован (установлен в 1) и INTR выталкивается высоко. Процессор реагирует на маскируемые прерывания только между выполнением команд. Строковые команды имеют "окна прерываний" между перемещениями памяти, что делает возможным прерывание во время обработки длинной строки. Когда происходит прерывание, процессор считывает 8-ми битовый вектор, присылаемый аппаратурой, который определяет источник прерывания, (один из 224 определяемых пользователем прерываний). При обслуживании прерывания бит IF в регистре EFLAGS сбрасывается, это позволяет предотвратить обработку других внешних прерываний во время обработки и обслуживания прерывания. Однако IF может быть установлен обработчиком прерываний, чтобы позволить обработку любых возникающих прерываний. 



Немаскируемые прерывания



Немаскируемые прерывания обеспечивают обслуживание прерываний очень высокого уровня. Одним из примеров немаскируемых (NMI) прерываний может служить прерывание по сбою питания. Когда активизируется контакт NMI, происходит прерывание по вектору 2. В отличие от обычных прерываний, для NMI не выполняется последовательность подтверждения приема прерывания. Во время процедуры обслуживания NMI, 80386 не будет обслуживать ни дальнейший запрос NMI, ни запросы INT, до тех пор, пока не будет выполнена команда возврата из прерывания (IRET) или пока процессор не будет сброшен. Если NMI произойдет во время обслуживания NMI, присутствие прерывания будет сохранено для обработки после обработки текущего NMI, т.е. после первой же команды IRET. Бит IF очищается в начале NMI для блокировки дальнейших INTR команд. 



Программные прерывания



Третьим типом прерываний/исключений для 80386 являются программные прерывания. Команда INT n заставляет процессор выполнять программу обслуживания, на которую указывает вектор n в таблице прерываний. 



Приоритетность прерываний



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

Приоритет обработки Прерывание / исключение 

1 (высший) Ошибка исключения 

2 Команда TRAP 

3 Ловушка отладки для данной команды 

4 Ошибка отладки для следующей команды

5 NMI прерывание 

6 INTR прерывание



Листинг программы



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

Program prerivanie;

var

a,b,c: integer;

begin

Writeln( 'Введите значение 1');

Readln(a);

Writeln( 'Введите значение 2');

Readln(b);

c:=a+b;

Writeln(' Ответ:',c);

Writeln(' Нажмите Ente:');

Readln;

asm

int 21h

end;

end.



Вывод



При выполнении лабораторной работы я приобрел практические навыки работы с регистрами памяти.




ПРОИЗВОДИТЕЛЬНОСТЬ ЭВМ



Цель работы: 



Вычислить производительность ЭВМ. 



Теоретические сведения:



Производительность ЭВМ характеризуется числом команд, выполняемых ЭВМ за 1 секунду. Производительность ПК измеряется с помощью программ-тестов, которые проверяют, за какой промежуток времени была выполнена какая-то определённая задача. 

Главным образом производительность ЭВМ зависит от производительности микропроцессора, оперативной памяти, системной шины. 

Микропроцессор (МП) - основной элемент ПК, который управляет работой ПК и выполняет все вычисления. Он также координирует действие всех блоков, составляющих ПК. Микропроцессоры выделяют: АЛУ, выполняющие арифметические и логические операции, совокупность регистров и устройства управления, следящее за прохождением потоков информации в ПК и обеспечивающее выполнение команд. Микропроцессор сконструирован таким образом, что его производительность может быть значительно увеличена с помощью других специализированных сопроцессоров или вспомогательных сопроцессоров. Математический сопроцессор позволяет освободить основной процессор от работы с числовыми данными. 

Оперативная память (ОЗУ) предназначена для хранения информации (программ или данных) непосредственно участвующих в выполнении вычислительных операций на текущем этапе работы ПК. На производительность ПК влияет размер ОЗУ и время доступа к ОЗУ. Содержимое ОЗУ постоянно меняется в процессе выполнения программ. Существует также сверхоперативная память (СОЗУ), которая имеет самые низкие время доступа (50-100 нсек) и объём (8-32 ячейки) и используется для временного хранения команд и данных, как правило, в течение выполнения одной или нескольких операций. Функции СОЗУ часто выполняют регистры МП, содержимое которых непосредственно используется при обработке информации внутри МП. По принципу хранения информации ОЗУ делятся на статические и динамические ЗУ. Запоминающие элементы (ЗЭ) статического ЗУ выполняют на триггерах. Каждый ЗЭ способен запомнить 1 бит. Запоминающие элементы (ЗЭ) динамического ЗУ выполнены на конденсаторах, в которых информация храниться в виде заряда. Наличие заряда соответствует «1», отсутствие – «0». Динамические ЗУ получили широкое распространение в настоящее время. Динамическая память выполнена в виде интегральных микросхем, либо в виде модулей памяти. Модули памяти представляют собой небольшие текстолитовые платы с печатным монтажом, с установленными интегральными микросхемами памяти. Динамическая память требует наличие схем регенерации, т.к. за счёт оков утечки заряд, находящийся в конденсаторе с течением времени уменьшается и требуется периодическое подключение к источнику питания, т.е. производить восстановление (регенерацию) хранимых данных. При считывании из ячейки динамического ЗУ информация разрушается, но за счёт регенерации она восстанавливается, поэтому регенерацию необходимо выполнять при каждом обращении к памяти. 

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

При физической реализации шины внутри неё различаются четыре группы линий: 

Адресная шина - однонаправленная. Адреса данных передаются от МП в память или к контроллерам для управления периферийными устройствами. 

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

Шина данных - двунаправленная. Для передачи данных между устройствами ПК. 

Шина электропитания предназначена передачи сигналов заземления и необходимых номиналов электропитания (+5В, +12В, -5В, -12В).



Листинг программы



Program procesor;

var

time : Longlnt absolute $0000:$046C;

starttime : longlnt;

i : longlnt;

begin

starttime:=Time;

for i:= 1 to 1000000 do

begin

end;

writeLn('Time=',(Time-StartTime)/18.2:0:10);

end.


Вывод



За время выполнения лабораторной работы я выяснил какие факторы влияют на производительность микропроцессора.




ОТЛОЖЕННЫЙ ЗАПУСК КОМАНД



Цель работы



Написать программу с использованием отложенного запуска команд.



Описание программы



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



Листинг программы



Program otzapusk;

Var

startTime : Longlnt;

pause : Real;

begin

Readln(pause);

Pause:=Pause*23.3;

StarTime:=Mem[$0009:$041C];

Wrile (Mem[$0009:$041C]-startTime)<Pause Do

begin

end;

WriteLn('Ok');

end.



Вывод



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




ИНТЕРНЕТ, СЕТИ, ПРОТОКОЛЫ



Цель работы: 



Изучить сети и протоколы Интернет. 



Теоретические сведения:



Компьютерные сети.

Локальная сеть представляет собой набор компьютеров, периферийных устройств (принтеров и т. п.) и коммутационных устройств, соединенных кабелями. С ростом размеров сетей параллельная работа многих компьютеров на одну единую шину стала практически невозможной: очень велики стали взаимные влияния друг на друга. Поэтому дальнейшее развитие компьютерных сетей происходит на принципах структурирования. В этом случае каждая сеть складывается из набора взаимосвязанных участков — структур. Каждая отдельная структура представляет собой несколько компьютеров с сетевыми адаптерами, каждый из которых соединен отдельным проводом — витой парой — с коммутатором. При необходимости развития к сети просто добавляют новую структуру. Для сетей появляется необходимость в специальном электронном оборудовании. Одно из таких устройств — хаб — является коммутационным элементом сети. Каждый хаб имеет от 8 до 30 разъемов (портов) для подключения либо компьютера, либо другого хаба. К каждому порту подключается только одно устройство. При подключении компьютера к хабу оказывается, что часть электроники сетевого интерфейса находится в компьютере, а часть — в хабе. Такое подключение позволяет повысить надежность соединения. В обычных ситуациях, помимо усиления сигнала, хаб восстанавливает преамбулу пакета, устраняет шумовые помехи и т. д. 




Локальная сеть



Существует два типа компьютерных сетей: одноранговые сети и сети с выделенным сервером. Одноранговые сети не предусматривают выделение специальных компьютеров, организующих работу сети. Каждый пользователь, подключаясь к сети, выделяет в сеть какие-либо ресурсы (дисковое пространство, принтеры) и подключается к ресурсам, предоставленным в сеть другими пользователями. Такие сети просты в установке, налаживании; они существенно дешевле сетей с выделенным сервером. В свою очередь сети с выделенным сервером, несмотря на сложность настройки и относительную дороговизну, позволяют осуществлять централизованное управление. 



Глобальные сети



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



Международная сеть INTERNET



Каждый пользователь INTERNET имеет свой сетевой адрес. Существует компания (в штате Вирджиния), которая следит за INTERNET адресами с тем, чтобы среди пользователей не появилось два одинаковых адреса. 

Существует 7 основных путей использования INTERNET: 

Электронная почта. С помощью почтовых программ Outlook Express и Netscape Messenger 

Отправка и получение файлов с помощью FTP (File Transfer Protocol) 

Чтение и посылка текстов в USENET 

Поиск информации через GOPHER и WWW (World Wide Web) 

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

Chat-разговор с помощью сети IRC и Электронной почты 

Игры через INTERNET 

Программы Outlook Express, GOPHER, Netscape Messenger, обеспечивающие отдельные функции INTERNET, называются "клиентами". Они удобны в использовании и предоставляют дружественный интерфейс для пользователей INTERNET. Системы WWW, FTP требуют знания операционной системы UNIX. 



WWW



Поскольку концепция паутины включает в себя основные принципы организации INTERNET'a, это хорошая печка, от которой можно сегодня танцевать в поисках чего-то нового. Чтобы использовать WWW эффективно, можно запросить использование графического клиента типа Internet Explorer или Netscape Communicator. Можно, конечно, использовать WWW в текстовом режиме (режим линейного поиска), но при этом теряется функциональность графического режима. Internet Explorer или Netscape Communicator являются графическим пользовательским интерфейсом WWW, который позволяет пользователю указывать, выбирать и осуществлять переходы в INTERNET с использованием гипертекстовых связей, называемых URL (Universal Resource Locators - универсальные локаторы ресурсов). Большое число организаций, школ и людей создают собственные элементы WWW, так называемые Home Pages (домашние страницы), которые могут иметь гипертекстовые связи с информацией, находящейся на том же компьютере, или которая может быть найдена на любом компьютере в INTERNET. 



Протоколы 



Основное, что отличает Internet от других сетей - это ее протоколы - TCP/IP. Вообще, термин TCP/IP обычно означает все, что связано с протоколами взаимодействия между компьютерами в Internet. Он охватывает целое семейство протоколов, прикладные программы, и даже саму сеть. TCP/IP - это технология межсетевого взаимодействия, технология internet. Сеть, которая использует технологию internet, называется "internet". Если речь идет о глобальной сети, объединяющей множество сетей с технологией internet, то ее называют Internet. 

Свое название протокол TCP/IP получил от двух коммуникационных протоколов (или протоколов связи). Это Transmission Control Protocol (TCP) и Internet Protocol (IP). Несмотря на то, что в сети Internet используется большое число других протоколов, сеть Internet часто называют TCP/IP-сетью, так как эти два протокола, безусловно, являются важнейшими. Как и во всякой другой сети в Internet существует 7 уровней взаимодействия между компьютерами: физический, логический, сетевой, транспортный, уровень сеансов связи, представительский и прикладной уровень. Соответственно каждому уровню взаимодействия соответствует набор протоколов (т.е. правил взаимодействия). Протоколы физического уровня определяют вид и характеристики линий связи между компьютерами. В Internet используются практически все известные в настоящее время способы связи от простого провода (витая пара) до волоконно-оптических линий связи. 

Для каждого типа линий связи разработан соответствующий протокол логического уровня, занимающийся управлением передачей информации по каналу. К протоколам логического уровня для телефонных линий относятся протоколы SLIP (Serial Line Interface Protocol) и PPP (Point to Point Protocol). Для связи по кабелю локальной сети - это пакетные драйверы плат ЛВС. 

Протоколы сетевого уровня отвечают за передачу данных между устройствами в разных сетях, то есть занимаются маршрутизацией пакетов в сети. К протоколам сетевого уровня принадлежат IP (Internet Protocol) и ARP (Address Resolution Protocol). Протоколы транспортного уровня управляют передачей данных из одной программы в другую. К протоколам транспортного уровня принадлежат TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). 

Протоколы уровня сеансов связи отвечают за установку, поддержание и уничтожение соответствующих каналов. В Internet этим занимаются уже упомянутые TCP и UDP протоколы, а также протокол UUCP (Unix to Unix Copy Protocol). Протоколы представительского уровня занимаются обслуживанием прикладных программ. К программам представительского уровня принадлежат программы, запускаемые, к примеру, на Unix-сервере, для предоставления различных услуг абонентам. К таким программам относятся: telnet-сервер, FTP-сервер, Gopher-сервер, NFS-сервер, NNTP (Net News Transfer Protocol), SMTP (Simple Mail Transfer Protocol), POP2 и POPS (Post Office Protocol) и т.д. К протоколам прикладного уровня относятся сетевые услуги и программы их предоставления