Сравнение способов адресации на СМ ЭВМ и персональных ЭВМ на базе процессора i386

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

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 13.05.2014
Размер файла 268,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

Введение

1. Способы адресации и форматы команд

2. Система команд

3. Язык ассамблера

4. Особенности команд учебного микропроцессора. Команды пересылки кодов

5. Команды арифметико-логической обработки

6. Команды передачи управления

7. Стековая память и работа с ней

8. Команды пересылки данных

Заключение

Список литературы

Введение

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

Надо признать, что достигнутые на этом пути успехи действительно впечатляли - в последних версиях ЭВМ выразительность ассемблерного листинга зачастую не уступала выразительности программы, написанной на языке высокого уровня. Одной-единственной машинной инструкцией можно было сказать практически все, что угодно. К примеру, такие машины, как DEC VAX, аппаратно поддерживали инструкции "добавить элемент в очередь", "удалить элемент из очереди" и даже "провести интерполяцию полиномом" (!); а знаменитое семейство процессоров Motorola 68k почти для всех инструкций поддерживало до двенадцати (!) режимов адресации памяти, вплоть до взятия в качестве аргумента инструкции "данных, записанных по адресу, записанному вон в том регистре, со смещением, записанным вот в этом регистре". Отсюда и общее название соответствующих архитектур: CISC - Complex Instruction Set Computers ("компьютеры с набором инструкций на все случаи жизни").

1. Способы адресации и форматы команд

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

Важным вопросом построения любой системы команд является оптимальное кодирование команд, что отражается на размере полей кода операции, на размере и количестве полей адресной части, т.е. формате команд. Форматы команд в значительной степени определяются методами адресации, количеством операндов, предполагаемым объемом оперативной памяти (ОП), количеством регистров общего назначения (РОН), а также сложностью аппаратуры, необходимой для декодирования. Поэтому в современных RISC - процессорах, в отличии от CISC - процессоров используются достаточно простые методы адресации, позволяющие резко упростить декодирование команд.

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

Среди способов адресации можно выделить следующие:

- непосредственная адресация,

- прямая регистровая адресация,

- неявная адресация,

- прямая адресация,

- страничная адресация,

- относительная или базовая адресация,

- косвенная адресация,

- косвенная регистровая адресация,

- индексная адресация,

- индексно - относительная адресация,

Способы адресации

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

- прямая регистровая адресация, когда операнд находится в регистре, номер которого указывается в адресной части команды.

При программировании на ассемблере используются буквенные обозначения регистров. Длина адресного поля зависит от количества РОН.

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

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

- страничная адресация, когда физический адрес ячейки ОП формируется из двух полей: номера страницы (старшие разряды адреса) и номера ячейки в странице (младшие разряды адреса). Номер страницы определяется содержимым регистра, номер которого указывается в адресном поле команды. Номер ячейки в пределах страницы указывается в адресном поле команды. При таком способе разбиения ОП на страницы фиксированного размера называемого сегментацией, не происходит пересечения страниц по физическим адресам.

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

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

- косвенная регистровая адресация, когда указатель адреса операнда хранится не в ОП, а в регистре процессора, номер который указывается в адресной части команды. Поскольку время обращения к регистрам процессора обычно в 5-10 раз меньше, чем к ячейкам ОП, то время выборки операнда увеличивается незначительно - на 10-20%. Достоинствами косвенной адресации являются возможность обработки адреса операнда, уменьшение длины адресной части команды при косвенной регистровой адресации, т.к. адрес регистра значительно короче адреса ячейки памяти.

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

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

2. Система команд

Проектирование системы команд оказывает влияние на структуру ЭВМ. Оптимальную систему команд иногда определяют как совокупность команд, которая удовлетворяет требованиям проблемно-ориентированных применений таким образом, что избыточность аппаратных и аппаратно-программных средств на реализацию редко используемых команд оказывается минимальной. В различных программах ЭВМ частота появления команд различна; например, по данным фирмы DEC в программах для ЭВМ семейства PDP-11 наиболее часто встречается команда передачи MOV(B), на ее долю приходится приблизительно 32% всех команд в типичных программах. Систему команд следует выбирать таким образом, чтобы затраты на редко используемые команды были минимальными.

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

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

Сокращение времени выполнения программ и емкости памяти достигается за счет увеличения сложности логики управления.

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

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

Рис. 2.4. Классификация команд.

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

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

Ниже приведен формат двухадресной (двухоперандной) команды процессоров СМ.

Формат команд процессоров СМ:

а) двухадресная команда;

б) одноадресная команда.

Примеры кодирования двухадресных команд в процессорах СМ

КОП

Мнемоника команды

Комментарий

0001 0010 0110 1110

MOV CMP ADD SUB

Передача данных Сравнение Сложение Вычитание

0000 1000

- -

Кодирование группы одноадресных команд

Четырехбитный КОП (биты 15-12) кодирует ряд двухоперандных операций, приведенных в таблице 1. Биты (11-6) и (5-0) для команд данного типа определяют адреса источника и приемника данных. Как видно из таблицы, комбинации 0000 и 1000 поля КОП определяют группы одноадресных команд (рис 1,б). КОП 1 (биты 15-12), соответствующий кодам 0000 и 1000, определяет группу одноадресных команд, а КОП 2 (биты 11-6) кодирует конкретную операцию команд данной группы. Таким образом, команды, использующие один операнд, кодируются 10-битным КОП (биты 15-6).

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

1. Адрес следующей команды указывается только в командах переходов; в остальных случаях очередная команда выбирается из ячеек памяти, следующих за выполненной командой.

2. Использование ячейки, в которой находится один из операндов, для запоминания результата (например, сумма запоминается в ячейки первого операнда).

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

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

По форматам команд можно судить о возможностях

3. Язык ассамблера

Язык ассемблера -- система обозначений, используемая для представления в удобочитаемой форме программ, записанных в машинном коде. Язык ассемблера позволяет программисту пользоваться алфавитными мнемоническими кодами операций, по своему усмотрению присваивать символические имена регистрам ЭВМ и памяти, а также задавать удобные для себя схемы адресации (например, индексную или косвенную). Кроме того, он позволяет использовать различные системы счисления (например, десятичную или шестнадцатеричную) для представления числовых констант и даёт возможность помечать строки программы метками с символическими именами с тем, чтобы к ним можно было обращаться (по именам, а не по адресам) из других частей программы (например, для передачи управления) [3].

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

4. Особенности команд учебного микропроцессора. Команды пересылки кодов

Эти команды предназначены для организации обмена кодами между регистрами СОЗУ, ячейками памяти, портами ввода - вывода.

Наиболее многочисленна группа команд однобайтовых пересылок. Микропроцессор, исполняя команды этой группы, осуществляет пересылку, одного байта данных. Большинство команд этой группы записывается в виде MOV R1,R.

По этой команде содержимое регистра R пересылается в регистр R1, причем содержимое регистра R при этом не меняется. В качестве регистров R1 и R в команде могут фигурировать: A - аккумулятор; B, C, D, E, H, L - регистры общего назначения; M - ячейка памяти, адрес которой содержится в регистровой паре HL. Возможности использования в командах тех или иных регистров будем далее пояснять краткой записью вида MOV R1,R.

Легко видеть, что команда MOV R1,R может использовать как регистровую, так и косвенную адресацию источника и приемника пересылаемого кода. Так команда MOV A,C пересылает содержимое регистра С в аккумулятор А, а команда MOV M,A - пересылает содержимое аккумулятора А в ячейку ОЗУ с адресом, который содержится в данный момент времени в регистровой паре HL.

Кроме регистровой и косвенной адресации для однобайтовых пересылок может быть использована и непосредственная адресация. Она реализуется в команде MVI R,D8,

По этой команде байт данных D8 помещается в один из регистров A, B, C, D, E, H, L или адресуемую косвенно ячейку памяти М.

Обмен данными между аккумулятором и ячейками памяти или портами ввода-вывода дополнительно поддерживают команды с прямой адресацией:

LDA ADR - загрузить аккумулятор из ячейки памяти с адресом ADR;

STA ADR - загрузить ячейку памяти с адресом ADR из аккумулятора;

IN N - ввести в аккумулятор байт из порта ввода с адресом N;

OUT N - вывести байт из аккумулятора в порт вывода с адресом N.

По командам двухбайтовых пересылок микропроцессор осуществляет пересылку двухбайтовых (шестнадцатиразрядных) чисел. Рассмотрим примеры таких команд.

LXI Rp,D16 - загрузить регистровую пару Rp двухбайтовым числом D16.

LHLD ADR - загрузить регистровую пару HL из ячеек памяти с адресами ADR и ADR+1. При этом байт из ячейки с младшим адресом ADR будет загружен в младший регистр пары - L, а байт из ячейки со старшим адресом ADR+1 - в старший регистр пары - H.

SHLD ADR - загрузить ячейки памяти с адресами ADR и ADR+1 из регистровой пары HL. При этом байт из младшего регистра пары - L будет загружен по младшему адресу ADR, а байт из старшего регистра пары - H, будет загружен по старшему адресу ADR+1.

5. Команды арифметико-логической обработки

Большинство команд арифметико-логической обработки оперируeт байтовыми словами. Здесь имеются команды сложения, сложения с учетом переноса, вычитания, вычитания с учетом заема, поразрядных логических "И", "ИЛИ", "исключающего ИЛИ" и сравнения.

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

ADD R - сложить код из аккумулятора с кодом из регистра R;

ADC R - сложить код из аккумулятора с кодом из регистра R с учетом переноса, содержащегося в бите С регистра признаков F;

SUB R - вычесть код из регистра R из кода, содержащегося в аккумуляторе;

SBB R - вычесть код из регистра R из кода, содержащегося в аккумуляторе с учетом заема, содержащегося в бите С регистра признаков F;

ANA R - выполнить операцию поразрядного логического "И" над кодами, содержащимися в аккумуляторе и регистре R;

ORA R - выполнить операцию поразрядного логического "ИЛИ" над кодами, содержащимися в аккумуляторе и регистре R;

XRA R - выполнить операцию поразрядного логического "исключающего ИЛИ" над кодами, содержащимися в аккумуляторе и регистре R;

CMP R - выполнить сравнение кодов, содержащихся в аккумуляторе и регистре R.

В этих командах

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

Имеются варианты рассмотренных команд, имеющие двухбайтовый формат, и использующие непосредственную адресацию второго операнда. Это, соответственно, команды: ADI D8; ACI D8; SUI D8; SBI D8; ANI D8; ORI D8; XRI D8; CPI D8.

Поясним действие команд сравнения CMP R (CPI D8). Эти команды не меняют содержимого аккумулятора, но воздействуют на регистр признаков F точно также, как и команды вычитания SUB R (SUI D8).

Отметим, что команды сложения ADD R, ADC R, ADI D8, ACI D8 могут использоваться не только для двоичного, но и для двоично-десятичного сложения. В последнем случае результата сложения, находящийся в аккумуляторе, должен быть скорректирован специальной командой десятичной коррекции DAA. Эту команду можно использовать только при сложении. Специальной команды коррекции результата для двоично-десятичного вычитания учебный микропроцессор не имеет.

С двухбайтовыми словами оперирует команда двухбайтового сложения DAD Rp - сложить содержимое регистровой пары Rp с содержимым регистровой

HL и поместить результат в пару HL.

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

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

INR R - инкрементировать регистр R;

DCR R - декрементировать регистр R;

INX Rp - инкрементировать регистровую пару Rp;

DCX Rp - декрементировать регистровую пару Rp.

Команды сдвига будут рассмотрены отдельно.

6. Команды передачи управления

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

Широко используются команды условной передачи управления, которые можно записать обобщенной мнемоникой J -- CON ADR. Эти команды передают управление по адресу перехода, если выполняется условие -- CON, определяемое одним из битов регистра признаков F. В противном случае естественный порядок выполнения команд не нарушается. В мнемониках конкретных команд суффикс -- CON принимает следующие значения:

При работе с подпрограммами используют команду безусловной передачи управления с возвратом CALL ADR - вызвать подпрограмму. В памяти микро-ЭВМ эта команда размещается так, как показано на рис. 2.2.

Рис. 2.2. Размещение в памяти микро-ЭВМ команды CALL ADR

Микропроцессор, выполняя эту команду, не только передает управление по адресу ADR, указанному в команде. Он, кроме того, запоминает в стеке адрес следующей команды . Этот адрес называют адресом возврата. После выполнения подпрограммы должен быть обеспечен возврат управления на адрес . Для обеспечения такого возврата каждая подпрограмма заканчивается специальной командой возврата RET. Эта команда извлекает из стека адрес возврата , записанный туда командой CALL ADR, и загружает его в счетчик команд PC.

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

Имеются также команды условного вызова подпрограмм и возврата из них, имеющие обобщенные мнемоники C -- CON АDR и R -- CON. Вызов подпрограммы или возврат из нее осуществляется этими командами только, если выполняется условие --CON. Здесь используются такие же условия, как и в командах условной передачи управления.

Иногда нужно передать управление по адресу, полученному в ходе вычислительного процесса. В этих случаях используется команда PCHL.Она загружает в счетчик команд PC код, находящийся в регистровой паре HL. При этом управление передается по адресу, находящемуся в этой регистровой паре.

7. Стековая память и работа с ней

Учебный микропроцессор позволяет организовать в ОЗУ микро-ЭВМ стековую память или просто стек. В такой памяти формируется своеобразная очередь из записанных кодов, а процедура обмена кодами с микропроцессором строится по принципу - "последний вошел - первый вышел" (LIFO).

Наглядной моделью стековой памяти является ящик с положенной в него стопкой книг (рис. 2.3).

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

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

Рис. 2.3. Модель стековой памяти

Микропроцессор размещает (считывает) такие коды в последовательных ячейках некоторой области ОЗУ, используя косвенную адресацию с помощью регистра SP - указателя вершины стека (указателя стека). Этот указатель содержит адрес (указывает на адрес) младшего байта самого последнего, самого верхнего из записанных в стек чисел.

Структура стека, в который ранее были записаны два числа A1 и A2, представлена на рис.2.4. Будем рассматривать это состояние стека как исходное.

адресация ассемблер код микропроцессор

Рис. 2.4. Исходное состояние стека

При записи в стек, например, при выполнении команды CALL ADR, число А3 записывается в две свободные ячейки ОЗУ, находящиеся выше указателя, при этом указатель передвигается на новую вершину - на адрес младшего байта только что записанного числа. Новое состояние стека после записи числа А3 изображено на рис. 2.5.

При чтении из стека, например, командой RET из стека извлекается самое последнее, самое верхнее из записанных в стек чисел. При этом указатель стека передвигается на две позиции вниз - на адрес младшего байта числа, записанного в стек перед извлеченным. Следует иметь ввиду, что только что извлеченное число все еще сохраняется в своих ячейках ОЗУ до момента записи в эти ячейки. После извлечения из стека числа А3 диаграмма стека принимает вид, показанный на рис. 2.6.

Рис. 2.5.Состояние стека после записи числа А3

Рис. 2.6.Состояние стека после чтения числа А3

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

Инициализация проводится командой непосредственной загрузки регистра SP LXI SP,D16.

Кроме рассмотренных команд вызова подпрограмм и возврата из них со стеком работают команды однобайтового формата PUSH Rp - записать в стек содержимое регистровой пары Rp иPOP Rp - восстановить из стека содержимое регистровой пары Rp.

8. Команды пересылки данных

Команды пересылки данных общего назначения

К этой группе относятся следующие команды:

1) mov - это основная команда пересылки данных;

2) xchg - применяют для двунаправленной пересылки данных.

Команды ввода-вывода в порт

Принципиально управлять устройствами напрямую через порты несложно:

1) in аккумулятор, номерпорта - ввод в аккумулятор из порта с номером номерпорта;

2) out порт, аккумулятор - вывод содержимого аккумулятора в порт с номером номерпорта.

Команды преобразования данных

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

Команды работы со стеком

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

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

Для работы со стеком предназначены три регистра:

1) ss - сегментный регистр стека;

2) sp/esp - регистр указателя стека;

3) bp/ebp - регистр указателя базы кадра стека. Для организации работы со стеком существуют специальные команды записи и чтения.

1. push источник - запись значения источникв вершину стека.

2. pop назначение - запись значения из вершины стека по месту, указанному операндом назначение. Значение при этом "снимается" с вершины стека.

3. pusha - команда групповой записи в стек.

4. pushaw - почти синоним команды pusha. Атрибут разрядности может принимать значение use16 или use32. Р

5. pushad - выполняется аналогично команде pusha, но есть некоторые особенности. 15

Следующие три команды выполняют действия, обратные вышеописанным командам:

1) popa;

2) popaw;

3) popad.

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

1. pushf - сохраняет регистр флагов в стеке.

2. pushfw - сохранение в стеке регистра флагов размером в слово. Всегда работает как pushf с атрибутом use16.

3. pushfd - сохранение в стеке регистра флагов flags или eflags в зависимости от атрибута разрядности сегмента (т. е. то же, что и pushf).

Аналогично, следующие три команды выполняют действия, обратные рассмотренным выше операциям:

1) popf;

2) popfw;

3) popfd

Заключение

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

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

Список литературы

1. сайты www.petrsu.ru

2. www.sciyouth.ru

3. ссылки на сайты:

4. http://dfe.petrsu.ru/koi/posob/microcpu/arch3.html

5. http://drive.ispu.ru/elib/pikunov/2.html

6. http://www.km.ru/referats/1148E31089724D05AAE048061BFFA4F8

Размещено на Allbest.ru


Подобные документы

  • Изучение базовых команд ПК на базе МП i286 и их форматов. Изучение прямых способов адресации данных. Наработка практических навыков работы с командами. Разработка регистровой модели выполнения операций передачи данных. Программа реализации команд.

    контрольная работа [42,2 K], добавлен 12.03.2011

  • Типы системной памяти. ОЗУ (оперативное запоминающее устройство), ПЗУ (постоянное запоминающее устройство), "энергонезависимая память" (CMOS). Процессор. Основные шины. Адресные данные. Совокупность всех возможных команд - система команд процессора.

    контрольная работа [24,3 K], добавлен 30.03.2009

  • Общая характеристика программной модели процессора Intel x86. Анализ особенностей регистров общего назначения. Назначение команд безусловной передачи управления, рассмотрение функций. Знакомство с проблемами программирования на языке Ассемблера.

    курсовая работа [1,6 M], добавлен 04.02.2014

  • Изучение элементов структуры микропроцессора i80386 и алгоритмов выполнения множества команд. Разработка проекта структуры АЛУ и структуры микро-ЭВМ на базе гипотетического процессора. Описание и создание программы эмуляции по выполнению заданных команд.

    курсовая работа [484,4 K], добавлен 07.09.2012

  • Разработка устройства управления процессора для выполнения команд сложения, вычитания и поразрядного логического "или", с использованием способов адресации операндов: регистр-регистр, регистр - непосредственно операнд, регистр - прямая адресация памяти.

    курсовая работа [72,8 K], добавлен 21.11.2011

  • Изучение архитектуры персонального компьютера на примере микропроцессора фирмы Intel. Регистры общего назначения. Оперативная память; форматы данных и команд. Команд пересылки с различными способами адресации операндов. Структура программы на Ассемблере.

    курс лекций [506,4 K], добавлен 03.05.2014

  • Строение схемы микропроцессора: все устройства, необходимые для приема из памяти, хранения, и выполнение команд, заданных согласно варианту режима адресации. Описания языка Ассемблера и его функции. Основные функции макропроцессора, варианты построения.

    курс лекций [44,1 K], добавлен 06.03.2009

  • Организация центрального процессора. Подключение интерфейсных программируемых БИС. Методы адресации и примеры команд. Программирование таймера и контроллера прерываний. Программная модель микропроцессорной системы. Программирование на языке ассемблера.

    реферат [82,6 K], добавлен 05.12.2010

  • Выбор режимов адресации, посредством которых будет осуществлен доступ к данным. Этапы создания программы. Характеристика таблицы символов и полученного файла листинга. Анализ изменения состояния регистра IP при выполнении команд JMP, Jcc, LOOPx.

    курсовая работа [4,9 M], добавлен 25.03.2012

  • Функциональная схема микропроцессора Intel 8086 (i8086). Формирование физического адреса памяти, выборка команд из памяти и запись их в очередь команд. Система команд процессора. Суть защищенного режима, переход из защищенного режима в реальный режим.

    практическая работа [93,3 K], добавлен 24.03.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.