Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




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

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

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

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

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

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

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

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

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

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

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

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

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

XCHNG и т.д.);

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

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

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

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

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

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

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

и т.д.).

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

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

Непосредственные операнды бывают всегда числовые. Причем числа могут быть представлены в различных системах счисления. Различаются они по последней букве, сопровождающей число: «Ь» — двоичное, «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].

 




Поделиться с друзьями:


Дата добавления: 2015-06-26; Просмотров: 913; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.