АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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

Читайте также:
  1. E согласно механизму сотрудничества с системами фермента.
  2. II. Богословская система
  3. III. Лексика как система (8 часов)
  4. IV. Алгоритм действий командира (начальника) при увольнении военнослужащего в связи с невыполнением им условий контракта
  5. Q.50 Обратитесь к выставке. НОК техником на провайдера входит в команду, показанную. Назовите две причины, чтобы использовать эту команду? (Выберите два.)
  6. SCADA как система диспетчерского управления
  7. SCADA система Citect
  8. SCADA-система: назначение и функции
  9. SCADA: требования к системам верхнего уровня
  10. Shelter (разработчик USC) – система управления отелем, гостиницей, домов отдыха, пансионатов, санаториев
  11. VI регионального слета студенческих спасательных отрядов среди команд Сибирского федерального округа
  12. VІ. Узагальнення і систематизація знань. Практична робота

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

В зависимости от количества используемых в команде операндов различаются одно-, двух-, трех-, четырехадресные и безадресные ко­манды.

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

В двухадресных командах оба операнда перед выполнением опе­рации находятся в памяти, поэтому их адреса указываются в коман­де. После выполнения команды в один из этих адресов засылается результат, а находившийся там операнд теряется,

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

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

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

Все команды программы выполняются последовательно, команда за командой, в том порядке, как они записаны в памяти ЭВМ (есте­ственный порядок следования команд). Этот порядок характерен для линейных программ, т.е. программ, не содержащих разветвлений.

Для организации разветвлений, циклического выполнения учас­тков программы, есть команды, нарушающие естественный порядок. К ним относятся: безусловная передача управления (или «безуслов­ный переход»), условная передача управления (т.е. переход, если выполняется заданное условие), обращение к подпрограмме (т.е. «пе­реход с возвратом»), циклические операции. Кроме того, естествен­ный порядок следования команд не соблюдается в машинах, ис­пользующих четырехадресные команды (в этом случае некоторые из команд передачи управления упраздняются).

При явном указании адреса следующей команды реализуется «при­нудительный» порядок следования команд. Онвозможен только в том случае, если программа размещается в доступной процессору части основной памяти. Поскольку при этом команды (с точки зрения про­цессора) ничем не отличаются от данных, в процессе выполнения программы ее команды можно изменять (модифицировать), что по­вышает гибкость программирования и универсальность ЭВМ.

Семейство микропроцессоров фирмы Intel, начиная от 8086 и вплоть до Pentium, имеет базовую систему команд, в состав которой входят следующие группы:

• команды пересылки данных:

команды пересылки данных внутри МП (MOV, PUSH, POP,

XCHNG и т.д.);

команды ввода-вывода (IN, OUT);

• арифметические команды:

основные (сложение, вычитание, умножение, деление); дополнительные (INS, DEC и др.);

• логические команды (сдвиг, дизъюнкция, конъюнкция, отрицание
равнозначности и др.);

• команды обработки строковых данных (пересылка, сравнение, ска­
нирование, слияние/разделение и др.);

• команды передачи управления (безусловный переход, условный пе­
реход, прерывания, переход с возвратом);

• команды управления («нет операции», «внешняя синхронизация»
и т.д.).

Каждая команда имеет большое число модификаций, чаще всего оп­ределяемых режимом адресации данных (операндов). Операнды быва­ют трех типов: регистровый, непосредственный и «операнд в памяти».

Регистровые операнды указываются именами используемых ре­гистров МП.

Непосредственные операнды бывают всегда числовые. Причем числа могут быть представлены в различных системах счисления. Различаются они по последней букве, сопровождающей число: «b» — двоичное, «q» — восьмеричное, «d» — десятичное, «h» — шестнадца­тиричное.

«Операнды в памяти» могут указываться с помощью регистров, символическими именами, константами. Различные комбинации этих элементов в команде называются способами адресации. Так, команда MOV.(переслать число) может иметь следующие способы адресации:

mov r,r mov sr,m

mov r,m mov sr,r

mov m,r mov m,sr

mov r,imed mov r,sr
mov m,imed

где: г — регистр общего назначения микропроцессора; m — адрес в памяти; imed — число; sr — сегментный регистр.

При использовании «операндов в памяти» указание на физический адрес ОП может производиться непосредственно, косвенно и со сме­щением.

При непосредственной адресации исполнительный адрес указыва­ется в виде шестнадцатеричного числа, однозначно определяющего ячейку внутри заданного сегмента или в виде символического имени. Если адресуется ячейка текущего сегмента, то имя сегмента в адресной части команды не указывается (это связано с режимом умолча­ния: текущим по умолчанию для адреса команды является регистр CS, для адресации ячейки в стековом сегменте — SS, для адресации дан­ных — DS). Это значит, что в команде безусловного перехода внутри того же сегмента нет необходимости указывать:

cs; исполнительный адрес,

а при адресации данных —

ds: исполнительный адрес.

Только, если адрес ОП относится к сегменту, указанному в другом регистре (или не указанному в сегментных регистрах), его имя необ­ходимо указывать в команде.

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

mov [si], 12.

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

Базовая адресация появилась впервые, когда стало применяться динамическое размещение программ в ОП,.а это в свою очередь воз­никло, когда объем ОП стал настолько большим, что превысил раз­меры выполняемых программ.

Программу можно писать в абсолютных адресах, когда программист сам оп­ределяет, в каких ячейках ОП она должна размещаться для исполнения, и в относи­тельных адресах, когда заранее неизвестно., в какую часть ОП программа попадет при загрузке. В первом случае программа окончательно готова к использованию, но является неперемещаемой. Если требуемая область ОП занята хотя бы частично, такую программу выполнить уже нельзя. Во втором случае программа перед вы­полнением должна быть «привязана» к своему месту в ОП, поскольку все програм­мы пишутся так, как будто при загрузке они обязательно попадут в область ОП, начиная с ячейки 0. Перед загрузкой операционная система ищет свободное место в ОП, в которой можно разместить программу, и адрес первой ячейки этой свобод­ной области запоминается как общая добавка ко всем адресам, употребляемым в программе. Этот адрес называется «базовым». Абсолютные адреса определяются по сложению с базовым адресом. Такая система реализована в мультипрограмм­ных вычислительных машинах с динамическим распределением ресурсов.

В IBM PC базовая адресация реализована с использованием реги­стров ВХ или ВР.

Индексная адресация имеет смысл, когда надо осуществить пере­бор элементов какого-то набора данных. Если элемент данных имеет

длину 1 байт, то при переходе от одного элемента к другому адрес должен меняться на 1. Если длина равна 3 байтам — на 3. Начальный же адрес массива (НА) желательно не менять, так как одновременно может быть несколько обращений к одному и тому же массиву. НА является как бы константой этого массива. Индекс (i) указывает на конкретный элемент массива, адрес которого может быть вычислен как сумма: HA+i. Для хранения индексов в IBM PC предусмотрено два индексных регистра: EI и DI.

Могут встретиться комбинированные системы адресации, напри­мер базовая (или индексная) со смещением, базово-индексная и т.д. Базово-индексная адресация в команде выглядит в виде такого адре­са: [BP+SI].

 

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

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



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)