Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Лекции - Организация и функционирование ЭВМ - файл Lektsii_OiF 2005.doc


Лекции - Организация и функционирование ЭВМ
скачать (89.2 kb.)

Доступные файлы (1):

Lektsii_OiF 2005.doc398kb.06.12.2009 22:22скачать

содержание
Загрузка...

Lektsii_OiF 2005.doc

1   2   3   4
Реклама MarketGid:
Загрузка...

Восстановление системного реестра из резервной копии


Системный реестр хранится в нескольких скрытых файлах, которые постоянно находятся в папка WINDOWS. Два основные файла реестра system.dat и user.dat. Файл system.dat содержит основные аппаратные и программные настройки. В файле user.dat хранятся настройки определяемые пользователем. (КОЛИЧЕСТВО ФАЙЛОВ USER = РАВНО КОЛИЧЕСТВУ ЗАРЕГЕСТРИРОВАННЫХ В СИСТЕМЕ ПОЛЬЗОВАТЕЛЕЙ) После каждой успешной загрузки ОС создаёт резервную копию реестра. Копия хранится в САВ -файле (сжатом) в папке windows\sysbcup. По умолчанию windows хранит 5 копий реестра. Если в реестре windows возникает ошибка, то система автоматически возвращается к предыдущей копии реестра. Иногда может случиться, что после ошибочно сделанных изменений в реестре, необходимо вернуть его к

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

- закрыть все запущенные приложения

- Пуск – завершение работы

- выбрать перезагрузку в режиме MS-DOS

->scanrey_/restore <BK>

Windows восстановит реестр из предварительного сохранения резервной копии. В Windows имеется фаил scanreg.INI в котором можно указать количество резервных копий реестра Windows.


Журнальные файлы Win98


Для поиска причин неисправностей, можно легко узнать какие, файлы выполнялись в системе. Чтобы определить последние открывавшиеся в файлы, системные администраторы часто просматривают меню Документы. Однако для более точного отслеживания программ, выполненных пользователем, можно просмотреть также журнал файлы (log-файлы). Они находятся в папке Windows\applog это скрытая папка. Файлы в папке applog имеют расширение *.lgx, где х – соответствует дисководу на котором постоянно хранится приложение. (Для диска С*.lgc). Можно также через утилит “Сведение о системе”-“Сервис”- Программа настройки системы.


Работа в сети


В последнее время область применения компьютерных сетей переживает бурный рост. Сети созданы для совместного доступа к ресурсам сети INTERNET( таким как файлы, дисковое пространство, принтеры, обмен сообщениями по E-MAIL и т. д.). В общем случае компьютерная сеть состоит из кабелей, сетевых карт и ПО, которое обеспечивает связь между двумя и более компьютерами. В простейшей сети кабель соединяет два ПК. Простейшая ПК-сеть, в которой нет ПК, играющих особую роль, сетевого администратора называется одноранговой сетью. В отличие от этого, сеть «клиент-сервер» основывается на высокопроизводительных ПК, называемых сервером. Сервер предоставляет различные службы клиентским ПК. При работе в INTERNET интенсивно используется отношение «клиент-сервер». Например, браузер является клиентской программой, которая запрашивает от INTERNET-сервера WEB-страницы, основанные наHTML-коде. После того, как сервер удовлетворил запрос данного браузера, он обслуживает другие браузеры. В «клиент-серверной» сети один сервер может обеспечить доступ к файлам базы данных, в то время как другой сервер отвечает на INTERNET-запросы, а третий обрабатывает электронную почту. Число серверов, работающих в сети, зависит от назначения сети и числа поддерживаемых пользователей (клиентов). Пользователи подразделяются компьютером сети на локальных и глобальных, основываясь на близости ПК, соединенных в сеть. Компьютеры локальной сети обычно располагаются в пределах одного предприятия(или нескольких). В то же время ПК глобальной сети располагаются на обширной географической территории (город, страна и т. д.). Например, многие крупные корпорации используют глобальные сети для объединения локальных сетей офисов, расположенных в разных частях мира. Для связи друг с другом в сети ПК используют обмен сигналами (пакетами). В большинстве сетей такой обмен происходит по кабелям. Тем не менее в последнее время наблюдается быстрое развитие беспроводных сетей, что избавляет от необходимости физически соединять. Такие беспроводные сети позволяют избежать затрат на прокладку кабеля в помещениях. Для включения ПК в сеть он должен иметь сетевую карту (NIC-NETWORK,INTERFASE CAROL). Так как работа в сети используется все чаще, во многих новейших ПК сетевая поддержка реализуется в MC, которые установлены на материнской плате.


^ СЕТЕВЫЕ ТОПОЛОГИИ


Для создания сети администраторы соединяют ПК и другие системные устройства (принтер) друг с другом с помощью кабеля или беспроводного соединения. Администраторы сетей чаще всего используют следующие 3 топологии для построения сетей

-шина

-звезда

-кольцо






У каждой сетевой топологии есть свои преимущества и недостатки . Например в топологии кольцо и шина П.К. включается в сеть последовательно, образуя цепь. Главное преимущество этих топологий простота. Недостаток состоит в том , что стоит выйти из строя одному П.К. , сетевая карта или кабель , работа прекращается во всей цепи . В цепи звезда П.К. подключается к центральному концентратору . Преимущество этой топологии состоит в том , что если из строя выходит один П.К. , сетевая карта или кабель работоспособность остальной сети не затрагивается . Недостаток если из строя выходит концентратор , вся цепь прекращает работу . При использовании шинной топологии сетевой администратор должен подключить оконечную нагрузку к обоим концам шины , находящимся на последним П.К. на шине. Обычно для этого требуется установить специальный терминатор (соединитель) на сетевой карте.

^ Сетевые технологии.

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

Кроме того Ethernet классифицируют по скорости 10, 100, 1000 Mbs (последний называется еще gigabit Ethernet ).


^ Сетевые протоколы.


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

Способ которым получатель подтверждает полученное сообщение ; способ отправки сообщения об ошибке передачи. Сетевой протокол описывает ряд правил и процедур .

В пределах протокол определяет правила которым должен следовать П.К. для обеспечения успешной связи. В П.К. сетях и в Inet наиболее широко используется протокол tcp/ip ( Transport control protocol/internet protokol ).


^ Сетевая модель(iso/osi).


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

Предоставляет разработчикам сетевую структуру, которую они могут использовать при построении сетей. Например INET технология TCP/IP разработана в соответствии с моделью. Для определения операций, которые выполняет сетевая модель ISO/OSI сортируют задачи по уровням. Каждый уровень, в свою очередь, выполняет специальную функцию в приеме или передаче информации. Чтобы дать данным возможность двигаться вверх или вниз по уровням, каждый уровень предоставляет службы соседним уровням. Кроме того, каждый уровень прячет подробности своей реализации от других уровней, вынуждая соседей взаимодействовать со своими службами. Информация движется вверх и вниз по уровням и не может обойти какой-либо из них. В результате каждый уровень проявляет интерес только к своим соседям.



7

Уровень приложения

6

Уровень представления

5

Уровень сессии

4

Транспортный уровень

3

Сетевой уровень

2

Уровень передачи данных

1

Физический уровень



Семь уровней сетевой модели ISO/OSI


Если ошибок нет, данные движутся по каналу и вверх по сетевым уровням целевого ПК. При возникновении шибки сетевое ПО выполняет операции, определенные в протоколе для ликвидации ошибки.


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

Для сетевых соединений сетевые администраторы используют самые разные типы кабелей, чаще всего витую пару. В большинстве сетей применяют кабели типа витая пара категории 5 (Cat-5).Витая пара представляет собой 2 провода, скрученные один с другим. Кабель Cat-5 может отправлять сигнал на расстояние до 200 метров, прежде чем возникает необходимость в использовании повторителя. В кабелях Cat-5 чаще всего используются разъемы, которые имеют вид расширенного варианта стандартного телефонного разъема.


^ Уровень передачи данных

Сразу за физическим уровнем следует уровень передачи данных, назначение которого – передача данных с физического уровня на сетевой уровень. В ПК роль уровня передачи данных выполняет сетевой адаптер (NIC). При приеме данных, поступающих в сеть, уровень передачи данных группирует биты, которые он принимает с физического уровня во фреймы которые передаются сетевому уровню. Аналогично, для передачи сообщений уровень передачи данных раскладывает с сетевого уровня фреймы на биты для передачи на физический уровень. Для подключения ПК к сети он должен быть оборудован сетевой платой, которая соответствует технологии сети. Это означает, что если используется сеть 10 Мб/с Ethernet (физический уровень), ПК должен быть оборудован сетевой платой типа 10 Мб/с Ethernet.

Для выявления ошибок передачи, которые могут происходить на физическом уровне при посылке и получении данных, используется циклический избыточный контроль (CRC)- иногда называемый контрольной суммой (check sum). Перед тем, как посылает пакет, его уровень передачи данных вычисляет CRC, которая затем добавляется к фрейму данных. Когда, принимающий ПК получает сообщения, его уровень передачи данных выполняет ту же операцию вычисления CRC, которая выполняется ПК-отправителем. Если при передаче не происходит ошибок, CRC совпадают. Если суммы отличаются, получатель отбрасывает фрейм и извещает отправителя об ошибке.


^ Сетевой уровень

Прежде чем физический уровень (ФУ) сможет послать данные через сеть на удаленный ПК, сетевой уровень (СУ) должен указать путь, по которому пакет идет к месту назначения. Для определения оптимального пути к удаленному ПК, СУ использует таблицу маршрутизации (routing table) содержащую потенциальные пути. Кроме того, СУ учитывает сетевой трафик. В большинстве сетей применяются таблицы динамической маршрутизации, содержимое которых динамически обновляется сетевым ПО использующим информацию о путях, проходимых исходящими пакетами. При взаимодействии ПК через сеть нет ничего в ситуации, когда один ПК посылает данные быстрее чем другой ПК может их получить. В таких случаях для управления скоростью передачи данных СУ использует протоколы управления потоками (flow control).


^ Транспортный уровень

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


^ Уровень сеанса

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


^ Уровень предоставления и уровень приложения

выше уровня сессии (сеанса) находится уровень представления, который содержит программы использующие сетевое взаимодействие такие как WEB - браузер и E - mail . Кроме того уровень представления определяет способ взаимодействия с сетью программистов, разработывающих сетевые приложения. Уровень представления обеспечивает службы, которые програмы могут использовать для выполнения сетевых операций с файлами, шифрование данных и т. д.


^ Интернет-протокол TCP/IP

В интернете миллионы сетей соединяющихся с помощью двух протоколов TCP и IP. Вместе TCP/IP определяют несколько протоколов, которые стали стандартом в интернете. в отлчие от семиуровневой модели ISO/OSI, TCP/IP использует только 5 уровней: 5) уровень приложения, 4) транспортный уровень, 3) уровень приложения, 2) уровень управления передачи данных, 1) физический уровень. По мере прохожденя данными уровней TCP/IP - стека по сети форматирует (пекетиркет) данные для их использования на следующем уровне. Другими словами, по мере прохождения данных через протокол TCP/IP каждый уровень добавляет свою информацию в информационный пакет от предыдущего уровня. Например, транспортный уровень форатирует данные в TCP/IP сегмент, который включает TCP - заголовок и данные приложений. В каждом TCP - сегменте есть 16 - разрядный адрес, идентифицирующийпорты приложений, который посылает и принимает данные. Порт - это просто адрес программы в определённом ПК. По мере прохождения данными IP - модуля сетевого уровня, ПО сети форматирует сегмент в IP - дэйтаграмму (или пакет). Для посылки информации через сеть сетевое ПО разбивает данные на пакеты. чтобы попасть по назначению пакеты должны содержать адресную информацию. После выхода из IP - уровня (сетевого), IP - пакеты содержат 32 - разрядный (десятичный с точками в качестве разделителя) IP - адрес. Наконец , в уровне управления передачей данных Ethernet - драйвер форматирует IP - дэйтаграмму в Ethernet - фрейм.


Маршрутизаторы, мосты, прокси-серверы и брэндмауэры


Как известно, по мере прохождения сигнала по кабелю, сопротивление кабеля делает сигнал все более слабым. Ослабление сигнала по мере его прохождения по кабелю называется затуханием. По мере прохождения затухающего сигнала по сети появляются ошибки передачи данных. Для уменьшения затухания часто используют повторители. Это аппаратные блоки, которые просто усиливают мощность передаваемого сигнала. При проектировании (или модификации) сети следует учитывать, что выгода от разделения сетей в 2 или более подсетей будет в том случае, если одна сеть работает на больших скоростях (Gigabit Ethernet или 100 Мбит/с), а в другой подсети используются более медленные технологии. Если сеть состоит из 2-х или более подсетей, то можно их объединять с помощь устройств, называемых мостами. Для уменьшения сетевого трафика и количества операций в сетях используют один или несколько так называемых прокси-серверов, размещаемых на входе в сеть (или первичный сервер) и выполняющих операции от имени первичного сервера.







Например, прокси-сервер может идентифицировать входящие запросы от имени первичного сервера, позволяет запрашивать определенные ресурсы только зарегистрированным пользователям.

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

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


Клиентское ПО сетей Microsoft


В среде Win клиентское ПО сети Microsoft позволяет ПК использовать файлы и принтеры совместно с другими пользователями. Например, если в окне «Сетевое окружение» видны другие ПК клиентское ПО позволяет подключиться к другим системам. Клиентское ПО сети Microsoft располагается над сетевым ПО ПК. Если сеть построена на протоколе TCP/IP, клиент сети Microsoft будет использовать его для связи с другими системами. Если же данный протокол не используется клиентами сети Microsoft, будет применяться для связи протокол NetBIOS. В рамках клиентского ПО сетей Microsoft, в отличие от сетей TCP/IP, для которых требуются доменные имена, или десятичные IP-адреса, можно обращаться к ПК сети с помощью идентификаторов рабочего места, присваиваемого пользователем в диалоговом окне «Свойства сети».


^ Как узнать IP-настройки своего ПК


Пуск -> выполнить -> WINIPCFG

В окне конфигурация IP сделать щелчок на кнопке “СВЕДЕНИЯ” для отображения дополнительной информации о сетевой конфигурации.


Использование команды Ping


Для решения сетевых проблем. При работе в INET возможна ситуация когда нельзя соединять с определенным сайтом. В некоторых случаях сайт недоступен потому, что он не работает или потому, что не работает сервер доменных имен, которые преобразовывают доменные имена в десятичный адрес, использование Интернет программ, или потому, что возникли проблемы в сети. Иногда возникает ощущение, что сайт отвечает на запрос медленнее, чем обычно. В таких случаях надо выполнить команду PING позволяющая определить работает ли удаленный сайт. Назван командой PING дано потому, что подобно гидроакустическому сигналу (шарику в теннисе), команда посылает сигнал на удаленный сайт. Затем PING ждет ответа. Команду использовать чтобы узнать включен ли и работает ли удаленной сайт. А так же, чтобы узнать работает ли ваш сервер доменных имен. Кроме того, с его помощью можно вести контроль скорости соединения данного ПК с удаленным.

Пуск -> выполнить -> command

В системной строке набирается команда PING + имя домена

C:\PING yahoo.com

Если сайт работает команда пошлет несколько сообщений и получит на них ответы. Измеряя время можно посылкой сообщения и получения ответа на него PING ведет мониторинг времени отклика сети. Если удаленная система не работает – PING выдаст ошибку. В некоторых случаях невозможно подключаться к удаленному сайту из-за ошибки сервера доменных имен, преобразующего доменное имя в десятичный IP – адрес который сетевая программа использует для обращения к удаленной системе. Если сервер доменных имен не реагирует команда PING выдаст ошибку – “неизвестный IP - адрес”


Команда TRACERT


TCP/IP разбивает информацию на небольшие пакеты для посылки через сеть. Чтобы попасть на удаленный ПК пакет может пройти несколько транзитных участков от одного ПК к другому. В стеке TCP/IP сетевой уровень определяет маршрут по которому идет пакет. ПО мере продвижения пакета по сети маршрутизатор может изменит маршрут пакета, основываясь на информации о сетевых условиях или трафике. Для проверки пути которого выбирает сетиь для посылки пакетов на удаленный ПК можно воспользоваться командой TRACERT

Пуск -> выполнить -> command

C:\TRACERT yahoo.com

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


Система команд процессора IA-32


Система машинных команд является важнейшей частью архитектуры

компьютера, так как с их помощью производится непосредственное управление работой процессора. К примеру, система команд процессора Pentium IV содержит более 300 машинных команд. С появлением каждой новой модели роцессора количество команд, как правило, возрастает, отражая архитектурные новшества данной модели по сравнению с предшествующими.

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

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

В дальнейшем, с появлением программного обеспечения более высокого

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

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


Формат машинных команд IA-32


Машинная команда представляет собой закодированное по определенным правилам указание процессору па выполнение некоторой операции. Правила кодирования команд называются форматом команд. Команды процессоров архитектуры IA-32 считаются сложными. Максимальная длина машинной команды IA-32 составляет 15 байт. Реальная команда может содержать гораздо меньшее количество полей, вплоть до одного - только код операции. Несколько упрощая реальность, можно утверждать, что значение в поле кода операции является номером микропрограммы в блоке микропрограммного управления для каждой конкретной команды ассемблера с каждым конкретным вариантом сочетания операндов.

Логически любая команда языка ассемблера содержит несколько элементов:

1) Элемент, описывающий, что делать, называется кодом операции (КОП). Значение в поле кода операции некоторым образом определяет в блоке микропрограммного управления подпрограмму, реализующую действия для данной команды.

2) Элементы, описывающие объекты, с которыми нужно что-то делать, являются операндами. Операнды в команде могут и не задаваться, а подразумеваться по умолчанию.

3) Элементы, описывающие, как делать, являются типами операндов и обычно задаются неявно. Они используются транслятором ассемблера при формировании машинной команды для определения значения поля кода операции.

Эти же элементы имеет и машинная команда, но в закодированном виде.

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

Опишем назначения полей машинной команды:


Поле префиксов


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

Далее перечислены типы префиксов, которые может использовать прикладная программа:

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

2) Префикс повторения используется с цепочечными командами (командами обработки строк). Этот префикс «зацикливает» команду для обработки всех элементов цепочки. Система команд поддерживает два типа префиксов: безусловные (REP — OF3h), заставляющие цепочечную команду повторяться некоторое количество раз, и условные (REPE/REPZ – 0f3h, REPNE/REPNZ - of2h), которые при зацикливании проверяют некоторые флаги, и в результате проверки возможен досрочный выход из цикла.

3) Префикс блокировки шины инициирует выдачу процессором сигнала LOCK# (значение of0h) для блокировки системной шины. Используется в многопроцессорных конфигурациях для обеспечения монопольного владения системной шиной. Сигнал LOCK# может формироваться лишь с определенной номенклатурой команд процессора, работающих в цикле “чтение – модификация – запись”.

4) Префикс размера адреса (значение 67h) уточняет разрядность адреса: 16 или 32 бита. Каждой команде, в которой используется адресный операнд, ставится в соответствие разрядность адреса этого операнда, Если разрядность адреса для данной команды составляет 16 битов, это означает, что команда содержит 16- разрядное смещение и оно соответствует 16- разрядному смещению адресного операнда относительно начала некоторого сегмента. Это смещение называется эффективным адресом. Если разрядность адреса составляет 32 бита, это означает, что команда содержит 32- разрядное смещение, оно соответствует 32 - разрядному смещению адресного операнда относительно начала сегмента и по его значению формируется 32-разрядное смещение в сегменте. С помощью префикса разрядности адреса можно изменить действующее по умолчанию значение разрядности адреса. Это изменение будет касаться только той команды, которой предшествует префикс.

5) Префикс размера операнда (значение 66h) аналогичен префиксу размера адреса, но указывает на разрядность операндов (32 или 16 битов), с которыми работает команда.

По каким правилам устанавливаются по умолчанию значения атрибутов разрядности адреса и операндов? Если команда имеет операнд в памяти, то его адрес представляет собой значение смещения относительно начала сегмента данных (семи не используется префикс переопределения сегмента) и содержится в поле смещения машинной команды. Размер этого поля зависит от текущего режима адресации (атрибуты use16 или use32 в директивах сегментации). При 16-разрядной адресации размер поля смещения в машинной команде составляет 16 битов. При 32-разрядной адресации размер поля смещения в машинной команде составляет 32 бита. Явное задание префикса размера адреса позволяет указать процессору значение, отличающееся от действующего по умолчанию. Например, если действующий размер адреса равен 16 битам, то использование перед какой-либо командой префикса 67h определит для нее (и только для нес!) размер адреса в 32 бита. И наоборот, если действующий размер адреса равен 32 бита, то указание перед командой префикса 67h определит для нее (и только для неё!) размер адреса в 16 битов. Физически это будет отражаться на размере поля смещения в данной машинной команде.

Префикс размера операнда 66h позволяет сменить действующий для данной команды атрибут размера операнда. Команда, которая по умолчанию работает со словом (16 битов) пли с двойным словом (32 бита), имеет атрибут размера операнда, равный 16 и 32 бита соответственно. Применение префикса размера операнда позволяет сменить действующий по умолчанию атрибут.

При работе процессора i8086 в реальном и виртуальном режимах атрибуты размера адреса и операнда по умолчанию равны 16 битов. В защищенном режиме значения этих атрибутов зависят от значения бита D дескриптора сегмента. Если 0 = 0, то атрибуты размера адреса и операнда равны 16 битов, если 0 = 1, то эти атрибуты равны 32 бита. Изменить действующие по умолчанию атрибуты адреса и размера операндов можно применением атрибутов use16 или use32 в директивах сегментации.

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

Необходимо обратить внимание на то, что команды работы со стеком имеют аналогичные атрибуты размера и адреса операнда. Атрибут размера адреса влияет на выбор регистра — указателя стека: при размере адреса 16 битов используется регистр SP, при размере адреса 32 бита используется регистр ESP. Аналогично влияет на работу команд со стеком префикс размера операнда: при использовании префикса размера операнда 16 битов операнд в стеке трактуется как 16 - разрядный, при использовании префикса размера операнда 32 бита операнд в стеке трактуется как 32 - разрядный.

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


Код операции


Код операции - обязательный элемент, описывающий операцию, выполняемую командой. Код операции может занимать от одного до трех байт. Для некоторых машинных команд часть битов кода операции может находиться в байте mod r/m.

Байт режима адресации mod r/m

Байт режима адресации mod r/m, иногда называемый постбайтом, несет информацию об операндах и режиме адресации. Большинство команд процессора Intel - двухоперандные. Операнды могут находиться в памяти, а также в одном или двух регистрах. Архитектура IA - 32 не допускает, чтобы оба операнда команды находились в памяти. Если операнд находится в памяти, то байт mod r/m определяет компоненты (смещение, базовый и индексный регистры), используемые для вычисления его эффективного адреса. Байт mod r/m состоит из трех полей:


1) Поле mod (два бита) определяет способ адресации и количество байтов, занимаемых в команде адресом операнда (поле смещения в команде). Поле mod используется совместно с полем r/m, которое определяет способ модификации адреса операнда полем смещения в команде. Поле mod в комбинации с полем r/m образует 32 возможных значения, обозначающих один из восьми регистров и 24 режима адресации. К примеру, если mod = 00, то поле смещения в команде отсутствует, и адрес операнда определяется содержимым базового и/или индексного регистра. Какие именно регистры потребуются для вычисления эффективного адреса, определяется значением этого байта. Если mod = 01, то поле смещения в команде присутствует, занимает один байт и модифицируется содержимым базового и/или индексного регистра. Если mod = 10, то поле смещения в команде присутствует, занимает два или четыре байта (в зависимости от значения, действующего по умолчанию или определяемого префиксом размера адреса) и модифицируется содержимым базового и/или индексного регистра. Если mod = 11, то операндов в памяти нет – они находятся в регистрах. Это же значение байта mod используется в случае, когда команда работает с непосредственным операндом.

2) Поле reg (3 бита) определяет либо регистр, находящийся в команде на месте

второго операнда, либо возможное расширение кода операции (давая в совокупности размер поля КОП в 11 битов).

3) Поле r/m используется совместно с полем mod и определяет либо регистр,

находящийся в команде на месте первого операнда (если mod = 11), либо базовые и индексные регистры, применяемые для вычисления эффективного адреса (совместно с полем смещения в команде).

В архитектуре Intel один из операндов обязательно находится в регистре, и он может быть первым или вторым. Расположение первого и второго операндов в формате команды фиксировано. Но, например, команда MOV может выполнять пересылку как из регистра в память, так и из памяти в регистр. В машинном представлении это одна и та же команда. В ее поле reg будет содержаться код регистра, а d поле r/m -код режима адресации. Эти две команды будут различаться только одним битом d, который определяет направление передачи. Если в команде участвуют два регистра, то в этом случае вступает в силу правило: поле reg определяет второй операнд, а поле r/m - первый. Если команда mov работает с ячейкой памяти, то в исходном тексте программы могут быть следующие варианты записи этой команды:


Mov abl1, ax ; из регистра в ячейку памяти

или

Mov ax, abl1 ; из ячейки памяти а регистр


В машинном представлении эти две команды будут выглядеть одинаково, за исключением бита d:


для команды MOV abll, ax бит d = 0;

для команды MOV ax, abll бит d = 1.


Наиболее сложными для декодирования являются команды с операндом в памяти. Фирма Intel сопровождает описание системы команд специальными таблицами, облегчающими интерпретацию содержимого байта mod r/m. С их помощью можно довольно легко восстановить компоненты, из которых формировался адрес операнда, и, в конечном итоге, восстановить соответствующую команду ассемблера для данной машинной команды.


При использовании 32-разрядной адресации содержимое байта mod r/m трактуется несколько иначе из-за наличия в формате машинной команды байта sib .

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

1)sreg86 - сегментные регистры, существовавшие в архитектуре процессоров i8086/88 и i80286;

2)sreg386 - сегментные регистры архитектуры процессоров i80386 и выше.

Различие наборов состоит в том, что кодируются они различным количеством битов:

sreg86 — двумя битами, a sreg386 - тремя.


Байт масштаба, индекса и базы


Байт масштаба, индекса и базы (Scale-Index-Base - sib) используется для расширения возможностей адресации операндов. На наличие байта sib в машинной команде указывает сочетание одного из значений 01 или 10 поля mod и значения поля r/m = 100. Байт sib состоит из трех элементов.

1) В поле масштаба (ss) размещается масштабный множитель для индексного компонента index, занимающего следующие три бита байта sib. В поле ss может содержаться значение 1, 2, 4 или 8. При вычислении эффективного адреса на это значение будет умножаться содержимое индексного регистра.

2) Поле index позволяет хранить номер индексного регистра, содержимое которого применяется для вычисления эффективного адреса операнда.

3) Поле base требуется для хранения номера базового регистра, содержимое

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

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

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

Поле непосредственного операнда - необязательное поле, представляющее собой 8-, 16- или 32- разрядный непосредственный операнд. Наличие этого поля, конечно, отражается на значении байта mod r/m.


Функциональная классификация машинных команд


В начале отмечалось, что система команд процессора Pentium IV архитектуры I A-32 содержит более 300 машинных команд. Весь набор машинных команд можно разбить на четыре группы:


1) Процессора

2) Сопроцессора

3) MMX – расширения

4) XMM - расширения


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

1) Оценить возможности процессора по обработке данных;

2) Рассмотреть совокупность команд процессора архитектуры IA-32 как иерархическую и самодостаточную систему;

3) Осмысленно изучать отдельные машинные команды в контексте остальных.


Команды ассемблера

Итоги

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

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

3) Существует взаимно однозначное соответствие машинных команд и команд ассемблера.

4) Кодирование машинных команд производится в соответствии с одним из возможных форматов. Команды процессоров архитектуры IA-32 считаются сложными, так как в основу концепции процессоров Intel положен принцип совместимости - программы, разработанные для более ранних моделей процессоров, должны выполняться на всех последующих.

5) Структура команд процессора позволяет обеспечить большую гибкость при обработке операндов и разнообразие режимов адресации.

6) Большинство команд ассемблера имеют несколько возможных вариантов сочетания операндов. Для каждого возможного сочетания операндов имеется своя машинная команда со своим значением поля кода операции.

7) Машинную команду формируют несколько полей, из которых обязательным является только одно - поле кода операции.

8) Система команд архитектуры IA-32 является иерархической и самодостаточной.


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



Скачать файл (89.2 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru