Выполнение команд микропроцессором 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Выполнение команд микропроцессором



Введение

 

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

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

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

Основными задачами цикла лабораторных работ по дисциплине Микропроцессорные системы в автоматизации и управлении являются: изучение структуры, режимов функционирования и состава команд микропроцессорной системы, а также формирование у студентов начальных навыков программирования на языке ассемблер и машинных кодов. Лабораторные работы выполняются на учебных микропроцессорных комплексах (УМК), построенных на базе микропроцессора КР580ВМ80А.

Учебный микропроцессорный комплекс позволяет практически овладеть методикой разработки и отладки программ. На основе знаний, полученных в процессе работы с УМК, значительно легче понять принцип функционирования микропроцессорных систем на основе микропроцессоров других серий.


Лабораторная работа №1

 

Цель работы: изучение структуры микропроцессорной системы на основе УМК, системы команд микропроцессора КР580ВМ80А (МП КР580) и принципов построения программ в машинных кодах для микропроцессорных систем управления.

Основные положения:

УМК имеет структуру, представленную на рисунке 1.

 

 
 

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

МП (ЦП) является центром всех операций. Ему необходимы питание и тактовые импульсы. Генератор тактовых импульсов (ГТИ) может быть отдельным устройством или входить в состав кристалла МП. ГТИ предназначен для синхронизации функционирования всех устройств входящих в состав МП-системы. Дешифратор адреса обеспечивает подключение одного из устройств МП-системы к шине адреса. На вход дешифратора адреса подключены 4 линии адресной шины.

Типовым примером микропроцессорной системы является учебный микропроцессорной комплекс, построенный на базе микропроцессора КП580ВМ80А. УМК содержит шестнадцать адресных линий, которые составляют однонаправленную шину адресов, а также восемь линий, которые составляют двунаправленную шину данных. Ввод данных осуществляется с помощью цифровой клавиатуры, содержащей основные буквенные символы шестнадцатеричной системы счисления.

МП КР580 имеет ПЗУ и ОЗУ, объемом 2 Кбайта и 1 Кбайт соответственно. Схематическое представление полей памяти УМК представлено на рисунке 3. Первый Кбайт памяти ПЗУ отводится под программу «Монитор», которая загружается в верхнюю область ОЗУ при включении МП-комплекса. Удаление или изменение области ОЗУ, предназначенной для работы программы «Монитор», приводит к неработоспособности УМК (требуется перезагрузка). Второй Кбайт ПЗУ используется для хранения описаний команд, используемых пользователем во время выполнения программы. Программы пользователя могут помещаться только в «ОЗУ пользователя». При работе программы пользователь имеет право использовать адресное пространство соответствующее «ОЗУ пользователя». Не соблюдение данных правил приводит к неработоспособности УМК, либо к потере данных.

Как было ранее сказано, в МП КР580 существует семь регистров, которые пользователь может использовать для хранения и изменения данных. Также в МП КР580 имеется несколько внутренних регистров, которые пользователь может просматривать в процессе выполнения программы, а также содержимое этих регистров может влиять на выполнение программы пользователя. Некоторые регистры применяются в качестве специализированных, и используются непосредственно МП.

Блок регистров. МП КР580ИК80А содержит следующие программно-доступные 8-разрядные регистры:

1. Аккумулятор (или регистр А) является ядром всех операций МП, к которым относятся арифметические, логические, загрузки или размещения данных и ВВ. Это 8-разрядный регистр.

2. Регистры общего назначения ВС, DE и HL могут быть использованы как шесть 8-разрядных или три 16-разрядные пары регистров в зависимости от текущей выполняемой команды. Как и в типовом МП, пара HL (фирмой Intel названа указателем данных) может быть использована для указания адреса. Несколько команд используют пары ВС и DE в качестве указателя адреса, но обычно они являются регистрами хранения данных.

3. Счетчик команд PC всегда указывает на ячейку памяти следующей для выполнения команды.

4. Указатель стека SP является специальным регистром—указателем адреса (или данных), который всегда указывает на вершину стека в ОЗУ. Это 16-разрядный регистр.

5. Регистр признаков (или индикаторов) содержит пять одноразрядных индикаторов, в которых содержится информация, относящаяся к состоянию МП. Эти указатели используются условными ветвлениями программы, вызовами подпрограмм и возвратами из подпрограмм.

 

S Z   AC   P   CY

S - Признак «знака»; принимает значение старшего разряда результата; если результат отрицательный S=1;

Z - Признак нуля; если результат равен нулю, то z=1, иначе Z=0

АС - Признак вспомогательного переноса; если есть перенос между тетрадами байта, то АС=1, иначе АС=0

Р - Признак четности; если число единиц в байте результата четно, то Р=1, иначе Р=0

CY - Признак переноса (заема); если при выполнении команды возник перенос из старшего разряда или заем в старший разряд, то CY=1, иначе CY=0.

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

Общие регистры (B, C, D, E, H, L) используются для хранения операндов, промежуточных и конечных результатов, а также адресов и индексов при косвенной и индексной адресациях.

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

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

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

При выполнении операций в МП возникает потребность в кратковременном хранении некоторых операндов и результатов выполнения операций. Для этой цели служат регистры временного хранения данных W и Z, которые являются программно-недоступными для пользователя. Использование регистров временного хранения позволяет МП за один цикл выполнения команды реализовать, например, такую операцию, как обмен содержимым двух регистров.

Для повышения эффективности операций со словами двойной длины и операций формирования и пересылок двухбайтных адресов имеется возможность оперировать с содержимым пар регистров B и C, D и Е, Н и L как с составными словами двойной длины, т.е. в МП автоматически выполняется операция конкатенации над содержимым пары регистров. При этом реализуются так называемые тандемные пересылки, состоящие в передаче в цикле выполнения команды последовательно друг за другом 2 байт информации.

В состав блока регистров входит регистр-защелка адреса памяти PC. Собственно регистр адреса недоступен программисту. Однако любая пара регистров (ВС, DE, HL) может быть использована для задания адресов команд и данных в программе. Этот адрес под воздействием соответствующих команд не только может быть загружен в регистр-защелку адреса, но и модифицирован (посредством схемы инкрементор/декрементор) в процессе загрузки. Регистр-защелка адреса передает адрес в буферную схему и далее в шину адреса.

Имея последовательность действий выполняемых программой можно составить программу на языке ассемблер. Для этого надо подобрать мнемокод (мнемокод или мнемоника – условное обозначение команды языка ассемблер) для каждого действия (столбец 3 таблицы 1). Мнемокоды действий выполняемых МП КР580 приведены в приложении 1.

Форматы команд

Основная функция любого процессора – это выполнение команд. Типовая команда, в общем случае, должна указывать:

- подлежащую выполнению операцию;

- адреса исходных данных (операндов), над которыми выполняется операция;

- адрес, по которому должен быть помещен результат операции.

В соответствии с этим команда состоит из двух частей: операционной и адресной (рисунок 1).

 

операционная адресная

 

Рисунок 1 - Структура команды

 

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

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

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

 

Коп СА Адресная часть

 

Рисунок 2 - Обобщенный формат команды

 

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

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

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

 

Рисунок 3 - Четырехадресный формат команды

 

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

 

 

Рисунок 4 - Трехадресный формат команды

 

К сожалению, и в трехадресном формате длина команды может оказаться весьма большой. Так, если адрес ячейки основной памяти имеет длину 32 бита, а длина кода операции - 8 бит, то длина команды составит 104 бита (13 байт).

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

 

Рисунок 5 - Двухадресный формат команды

 

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

 

Рисунок 6 - Одноадресный формат команды

 

Применение единственного регистра для хранения одного из операндов и результата является ограничивающим фактором, поэтому помимо аккумулятора часто используют и другие регистры ЦП. Так как число регистров в ЦП невелико, для указания одного из них в команде достаточно иметь сравнительно короткое адресное поле. Соответствующий формат носит название полутораадресного или регистрового формата (Рисунок 7).

 

Рисунок 7- Полутораадресный формат команды

 

Наконец, если для обоих операндов указать четко заданное местоположение, а также в случае команд, не требующих операнда, можно получить нулъадресный формат команды (Рисунок 8).

 

 

Рисунок 8 - Нульадресный формат команды

 

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

Выбор адресности команд. При выборе количества адресов в адресной части команды обычно руководствуются следующими критериями:

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

- временем выполнения программы;

- эффективностью использования ячеек памяти при хранении программы.

Адресность и емкость запоминающего устройства

Емкость запоминающего устройства для хранения программы ЕА можно оценить из соотношения:

 

,

 

где NA - количество программ в программе;

RK - разрядность команды,

А - индекс, указывающий адресность команд программы.

При выборе количества адресов по критерию «емкость ЗУ» предпочтение следует отдавать одноадресным командам.

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

Для трехадресной команды последнее суммируется из четырех составляющих времени:

- выборки команды;

- выборки первого операнда;

- выборки второго операнда;

- записи в память результата.

Одноадресная команда требует двух обращений к памяти:

- выборки команды;

- выборки операнда.

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

Возможные типы алгоритмов условно разделим на три группы:

- последовательные;

- параллельные;

- комбинированные.

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

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

Каждая микроЭВМ способна воспринимать и выполнять точно определенный для нее набор команд. Количество и тип команд изменяются в зависимости от возможностей и назначения микроЭВМ.

Различают три основных уровня программирования:

1) программирование в машинных кодах;

2) программирование в кодах языка Ассемблера;

3) программирование на языках высокого уровня.

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

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

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

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

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

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

Большей мобильностью обладают программы, составленные на алгоритмических языках высокого уровня (например Фортран, Бейсик, ПЛ/М, Паскаль, Ада, СИ и др.), занимающих верхнее положение в иерархии языков программирования. Будучи приближенными к привычной математической нотации и, в ряде случаев обеспечивая естественную форму описания вычислительных процессов, они достаточно просты и удобны в программировании, но не всегда позволяют в полной мере реализовать технические возможности ЭВМ. Кроме того, результирующие машинные программы, получаемые после трансляции программ с алгоритмических языков, обычно менее эффективны с точки зрения объема и быстродействия, по сравнению с программами, написанными в кодах языка Ассемблера и в машинных кодах. Применение языков высокого уровня предполагает обязательное наличие транслятора, представляющего собой сложный программный комплекс.

 

Регистровая адресация.

В случае регистровой адресации операнд отыскивается во внутреннем регистре микропроцессора. Регистровые адресации всегда являются одно байтовыми, потому что они не требуют адресов и данных вне микропроцессора. Примером таких команд являются команды: МОV A,D (переслать содержимое регистра D в регистр A); MOV H,L (переслать содержимое регистра L в регистр Н).

Прямая адресация.

В случае прямой адресации 2-ой и 3-ий байт команды прямо указывает на адрес операнда в памяти (т.о. адрес данных следует за кодом операции). Этим адресом может быть адрес памяти (LDA 22FFH,STA 50DDH и т.п),а также номер порта ввода/вывода (IN E4H,OUT 7FH).

Непосредственная адресация.

В случае непосредственных команд операнд следует сразу же за кодом операции. Примером являются: MVI А,1ЗН; LXI H,80AAH; LXI D,7F00H и т.п.

Неявная адресация.

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

 

Задача № 1

Записать в регистр А однобайтовое число 47Н и проинвертировать его.

 

Программа оформляется в виде:

адреса код команды Примечание
0800Н МVI A,47Н Занесение байта данных в накопитель
0801Н      
0802Н 2F СМА Инвертируем содержимое накопителя
0803Н   HLT Конец программы

 

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

Для перевода программы с языка ассемблер в машинные коды требуется выполнить следующие действия:

1. для каждой команды, представленной в строке 3 таблицы 1, требуется подобрать машинный код, представляющий собой код операции, соответствующей выбранной команде (приложение 1);

2. определить операнды (данные, следующие за мнемокодом операции);

3. определить соответствие последовательных адресов памяти для каждой команды и операнда.

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

 

Для подготовки УМК к работе требуется выполнить следующие действия:

1. На рабочем столе выбрать иконку и открыть её.

 

 

 

 

2. Выбираем установочную область памяти

 

3. Включаем компилятор

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

 

4. Осуществляем набор команд в компиляторе (всегда начинаем работу с org 0800, заканчиваем hlt). После ввода программы нажимаем на иконку Compile, если все верно, то высвечивается иконка Compile Ok.

 

5. Осуществить Старт с заявленного адреса (т.е. начало программы).

6. Просмотр выполнения программы (Регистры, адрес).

 

 

 

Задания к 1 лабораторной работе

Результат выполнения программ представить в виде таблице 5.1.

 

Число по адресу 0900Н Число по адресу 0901H Число по адресу 0902Н Содержимое А Состояние битов регистра F S= Z= AC= P= С=
         
         

 

1. Разработать программу которая вычитает однобайтовые числа которые расположены в регистрах В и А, результат помещает в регистр С. (Числа заносятся программно).

2. Поменять содержимое регистровых пар DЕ и НL местами. Числа в регистры заносим программно.

 

3. Разработать программу которая записывает в регистр С 15Н, в регистр В 23 Н и производит сложение, результат помещает в регистр В.

 

4. Сложить содержимое ячейки памяти, с адресом 0900Н и содержимое ячейки памяти, с адресом 0901Н. Результат поместить в регистр В.

 

5. Уменьшить содержимое регистровой пары DЕ на содержимое регистровой пары НL. Числа в регистровые пары заносим программно. результат поместить в регистровую пару DЕ.

 

6. Поменять регистровые пары НL и ВС местами. Числа в регистровые пары заносим программно.

 

7. Написать программу, увеличивающую содержимое ячейки памяти по адресу 0900Н на 5Н и размещающую результат в ячейку памяти по адресу 0901.

 

8. Написать программу сложения двух двухбайтовых чисел, одно из которых расположено в памяти, начиная с адреса 0900Н,другое с адреса 0902Н. Результат разместить в памяти с адреса 0904Н. Перед выполнением программы записать по исходным адресам двухбайтовые числа, указанные преподавателем.

 

9. Заменить в прог.4. команду сложения содержимого аккумулятора с регистром В (ADD В) командой сравнения СМР В. Ввести программу в память УМК. Записать в ячейку памяти по адресу 0900Н число большее, чем по адресу 0901Н. Запустить программу на выполнение. После выполнения проанализировать результат выполнения.

 

10. Записать по адресу 0900Н число меньшее, чем по адресу 0901Н. (п.4)

 

11. 10.Записать по адресам 0900Н и 0901Н два одинаковые числа. Запустить программу на выполнение. Исследовать результат выполнения (п.4).

 

12. Заменить в программе 4 команду ADD В на команды INR A,DCR A, ADD A, ANA A, ORA A, XRA А. Исследовать результат выполнения, содержимое аккумулятора и флагового регистра F. Результат представить в виде таблицы 5.2.

 

Таблица 5.2.

Команда Содержимое аккумулятора Содержимое аккумулятора после операции Содержание битов флагового регистра F
       
       

Вопросы для самопроверки

 

1. Из чего состоит память микропроцессора?

2. Нарисуйте структуру учебной микро-ЭВМ.

3. Что происходит при попытке записи данных в ПЗУ?

4. Шина (адреса, данных, управления) является однонаправленной.

5. Посредством 16 линий адресной шины можно получить доступ к (кол-во) ячейкам памяти и (кол-во) устройствам ввода-вывода.

6. Нарисуйте внутреннюю структуру микропроцессора и укажите основное назначение его компонентов.

7. Какие биты входят в состав регистра признаков микропроцессора?

8. Какие команды арифметических и логических операций выполняет микропроцессор КР580ВМ80А?

9. Какие методы адресации используются в микропроцессоре?

10. Как влияют арифметические и логические операции на биты флагового регистра?

 

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

 

1. Юров В.Б. Assembler [Текст]: учебник студентам вузов, изучающим архитектуру микропроцессоров Intel в рамках соответствующих дисциплин / - СПб.: М.: Харьков:Минск: Питер, 2001. - 624 с.

2. Скляров В.А. Программирование на языке Ассемблера [Текст]: учебное пособие / Скляров В.А. - М.: Высшая школа, 1999. - 151,[1]с.

3. Пузанкова Д.В. Микропроцессорные системы [Текст]: учебное пособие для студентов вузов, обучающихся по направлению подготовки бакалавров и магистров "Информатика и вычислительная техника"/-СПб.: Политехника, 2002. - 936 с.: ил. - (Учебное пособие для вузов).

4. Пузанкова Д.В. Сквозные образовательные программы высшего и среднего профессионального технического образования по направлениям: "Радиотехника", "Автоматизация и управление" [Текст]: методический материал / - М.: Новый учебник, 2004. - 73 с.

 

Приложение 1

Вычислительные команды

ADD Сложение содержимого регистра r и накопителя    
ADD M Сложение содержимого ячейки памяти и накопителя    
ADC r Сложение содержимого регистра r и накопителя с учётом переноса С    
ADC M Сложение содержимого ячейки памяти и накопителя с учётом переноса С  
ADI () Сложение байта с содержимым накопителя С6  
ACI () Сложение байта с содержимым накопителя с учетом переноса СЕ  
SUI () Вычитание байта из содержимого накопителя D6  
SUB r Вычитание содержимого регистра r из содержимого накопителя    
SBI () Вычитание байта из содержимого накопителя с учетом заёма DE  
SUB M Вычитание содержимого памяти из содержимого накопителя    
SBB r Вычитание содержимого регистра r из содержимого накопителя с заёмом    
SBB M Вычитание содержимого памяти из содержимого накопителя с заёмом 9E  

Логические команды

ANA r Подразрядное И над содержимым регистра r и накопителя    
ANA M Подразрядное И над содержимым памяти и накопителя А6  
XRA r Подразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ над содержимым регистра r и накопителя    
XRA M Подразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ над содержимым памяти и накопителя АЕ  
ORA r Подразрядное ИЛИ над содержимым регистра r и накопителя    
ORA M Подразрядное ИЛИ над содержимым памяти и накопителя В6  
CMP r Сравнение содержимых регистра r и накопителя    
CMP M Сравнение содержимых памяти и накопителя ВЕ  
ANI () Подразрядное И над содержимым накопителя и байтом Е6  
XRI () Подразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ над содержимым накопителя и байтом ЕЕ  
ORI () Подразрядное ИЛИ над содержимым накопителя и байтом F6  
CPI () Сравнение байта с содержимым накопителя FE  
DAD rp Сложение содержимого пары регистров rp (B,D,H,SP) с содержимым пары регистров H,L    
INR r Увеличение содержимого регистра r на единицу    
DCR r Уменьшение содержимого регистра r на единицу    
DCR M Уменьшение содержимого памяти на единицу    
INR M Увеличение содержимого памяти на единицу    
INX rp Увеличение содержимого пары регистров rp (B,D,H,SP) на единицу    
DCX rp Уменьшение содержимого пары регистров rp (B,D,H,SP) на единицу    

Команды сдвига



Поделиться:


Последнее изменение этой страницы: 2017-02-05; просмотров: 851; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.17.150.163 (0.135 с.)