КАТЕГОРИИ: Архитектура-(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; Просмотров: 950; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |