41321

Изучение программной модели команд управления на языке SM для МП

Практическая работа

Коммуникация, связь, радиоэлектроника и цифровые приборы

Практически изучить программную модель команд управления на языке SM для МП. Методические материалы и литература: Методические указания по выполнению практических работ; Иллюстративный материал: команды управления на языке SM для МП. При этом исполнение текущей последовательности команд приостанавливается прерывается а вместо нее начинает выполняться другая последовательность соответствующая данному прерыванию.

Русский

2013-10-23

1.1 MB

3 чел.

                  Дисциплина: « Микропроцессоры и микропроцессорные системы»

Практическая работа № 1

   Тема:  «Изучение программной модели команд    управления на языке ASM для МП».

Цель: Практически изучить программную модель команд управления на языке ASM для МП. 

    Время:              2 часа

   

   Оборудование:    ПК, ПО.

   Методические материалы и литература:

  •  Методические указания по выполнению практических работ;
  •  Иллюстративный материал: «команды    управления на языке ASM для МП».

1. Основные теоретические положения

Процессоры являются мозгом, центральной частью компьютера.

Часто используется обозначение, соответствующее этому определению:

  •  центральный процессор — ЦП или CPU (Central Processing Unit) — центральное  процессорное  устройство.
  •  Процессор,  изготовляемый  по интегральной  технологии,  называется  микропроцессором (МП).

некоторые важные определения:

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

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

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

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

  •  Номер порта – это, по сути, адрес регистра ввода-вывода, причем адресные пространства основной памяти  и портов ввода-вывода не пересекаются.

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

  •  Система команд МП избыточна, что допускает универсальность в работе с информацией. Эта система команд представляет собой язык машинных команд (ЯМК).

Из команд ЯМК составляются программы управления работой компьютера. Отдельная команда определяет отдельную операцию (действие) компьютера.

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

В данной лабораторной работе  будут рассматриваться процессоры фирмы Intel.

В  основе  обособленности  процессоров  фирмы Intel  лежит

распределение  зон  оперативной  памяти  на  сегменты,  которые

специализированы по применению:

  •  сегменты данных,
  •   сегменты кодов,
  •  сегменты стека и т.д.

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

Главным  направлением  развития  микропроцессоров  является

повышение  их  производительности.  Основой  развития  служит

постоянно совершенствующаяся технология изготовления интегральных

схем.  По  более  новым  технологиям  изготавливают  микросхемы  типа

БИС  и  СБИС,  содержащих  до  десятков  миллионов  транзисторов,

переключающихся  с  частотами  до 300  МГц,  работающих  на

пониженных напряжениях питания до 2,45 В. Первый микропроцессор

фирмы Intel—микропроцессор i8086 был выпущен в июне 1978г. по

МОП (МОS)-технологии  в 40-выводовом  корпусе.  В  кристалле

процессора  располагалось 29000  транзисторов.  В  процессоре Pentium

Pro, выпущенном в сентябре 1995г., содержится в кристалле  уже 5 500 000

транзисторов.

   

Форматы команд микропроцессоров i80x86

 

Системы команд процессоров старших номеров платформы i80x86

содержат  системы  команд  процессоров  более  младших  номеров  этой

платформы.

Эти системы команд разрабатывались с учетом требований:

  •  обеспечения совместимости по объектному коду с предшествующими

процессорами, но и вместе с этим ввода в обработку 32-, 64-битных

операндов и адресов;

  •  расширения диапазона использования регистров общего назначения

(РОН) в адресных вычислениях, в частности привлечения для этих целей

регистров ЕАХ, ЕСХ и EDX, 16-битные аналоги которых АХ, СХ и DX

ранее для адресации не применялись;

  •  введения  новых  команд,  повышающих  производительность

процессора  упрощением  часто  встречающихся  процедур  обработки

данных (например, манипуляции цепочками, многоразрядные сдвиги).

 Таким  образом,  процессоры  начиная  с i80486  имеют  системы

команд, отвечающие требованиям:

  •  Почти все команды оперируют с 8-, 16-, 32-битными данными.
  •  В  большинстве  команд  с  обращением  к  памяти  допускается

применение  новых  базовых  и  индексных  регистров.  Так,  базовым

регистром может быть любой из восьми регистров общего назначения, а

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

команд  с  обращением  к  памяти  допускается  масштабированное инде- ксирование,  при  котором  содержимое  индексных  регистров до исполь- зования его в адресных вычислениях можно умножить на 2,4 или 8.

  •  В  большинстве  команд  при  обращении  к  памяти  разрешается

использовать любой из шести сегментных регистров.

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

 Обязательными  элементами  команд  являются  коды  операций (КОП),

которые занимают один или два байта.

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

  N = 2n,     при n= 8    N = 28 = 256. 

В системах команд процессоров пятого и шестого поколений (Pentium и Pentium Pro) около двухсот операций. Следовательно, для кодов операций было достаточно одного  байта  в  составе  команды.  Но,  учитывая  требования  и

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

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

Вторым  элементом  команды  является  байт (mod, reg, r/m), 

называемый постбайтом. Этот байт определяет особенности вычисления

эффективного адреса операнда.

Третьим элементом является байт SIB, составленный из начальных

букв обозначений: SS, INDEX, BASE.

 Символ SS означает масштабный множитель  для  масштабирования  индексной  переменной. INDEX определяет регистр общего назначения, используемый как индексный.

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

базовый.

 Байт SIB используется только в защищенном режиме.

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

Систему команд  процессоров i80486  и  выше  образуют  восемь групп команд:

  •  команды передачи данных;
  •  команды арифметических операций;
  •  команды логических операций;
  •  команды передачи управления;
  •  команды обработки цепочек;
  •  команды поддержки языков высокого уровня;
  •  команды управления процессом;
  •  команды новых операций и процедур.

2  Практическая часть

  •  Рассмотрел и изучить материал практической части

  •  Выполнил материал практической части (рис.1, Рис.2)

   Регистры процессора

Как уже отмечалось выше, в современных микропроцессорах типа, например, Pentium, можно выделить часть (мы назвали ее МП 86), предназначенную для использования в реальном режиме и практически соответствующую процессору 8086. Ниже, используя термин "процессор", мы будем иметь в виду именно МП 86.

Процессор содержит двенадцать 16-разрядных программно-адресуемых регистров, которые принято объединять в три группы:

  1.  регистры данных,
  2.   регистры-указатели и
  3.   сегментные регистры.

Регистры данных и регистры-указатели часто объединяют под общим названием "регистры общего назначения". Кроме того, в состав процессора входят указатель команд и регистр флагов (рис.1.).

В группу регистров данных включаются четыре регистра

   АХ, ВХ, СХ и DX.

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

При этом регистры допускают независимое обращение к старшим (АН, ВН, СН и DH) 

и младшим (AL, BL, CL и DL) половинам.

Так, команда

mov BL, АН

пересылает старший байт регистра АХ в младший байт регистра ВХ, не затрагивая при этом вторых байтов этих регистров. Заметьте, что сначала указывается операнд-приемник, а после запятой - .операнд-источник, т.е. команда как бы выполняется справа налево.

   Рис. 1. Регистры процессора.

 Во многих случаях регистры данных вполне эквивалентны, однако предпочтительнее пользоваться регистром АХ, поскольку многие команды занимают в памяти меньше места и выполняют-ся быстрее, если их операндом является регистр АХ (или его половина AL).

  С другой стороны, ряд команд использует определенные регистры неявным образом. Так, все команды циклов используют регистр СХ в качестве счетчика числа повторений; в командах умножения и деления регистры АХ и DX выступают в качестве неявных операндов; операции ввода-вывода можно осуществлять только через регистры АХ или AL и т.д.

 Индексные регистры SI и DI так же, как и регистры данных, могут использоваться произвольным образом. Однако их основное назначение - хранить индексы, или смещения относи-тельно некоторой базы (т.е. начала массива) при выборке операн-дов из памяти.

 Адрес базы при этом может находиться в базовых регистрах ВХ или ВР. Специально предусмотренные команды работы со стро-ками используют регистры SI и DI в качестве неявных указателей в обрабатываемых строках.

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

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

 Регистры SI, DI, BP и SP, в отличие от регистров данных, не допускают побайтовую адресацию.

 Четыре сегментных регистра CS, DS, ES и SS являются важнейшим элементом архитектуры процессора, обеспечивая, как уже отмечалось выше, адресацию 20-разрядного адресного пространства с помощью 16-разрядных операндов.

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

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

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

   

   Рис. 2. Регистр флагов

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

Флаг переноса CF (Carry Flag) индицирует перенос или заем при выполнении арифметических операций. Переносом называется ситуация, когда в результате выполнения правильной, в общем, команды образуется число, содержащее более 16 двоичных разрядов и, следовательно, не помещающееся в регистр или ячейку памяти. Пусть, например, в регистре АХ содержится число 60000, а в регистре ВХ - 40000. При выполнении команды сложения

add AX,BX

в регистре-приемнике результата, которым в данном случае будет служить регистр АХ, должно быть записано число 100000, которое, разумеется, там поместиться не может. В этом случае и устанавливается флаг CF, по состоянию которого можно установить, что произошел перенос и, следовательно, содержимое АХ (которое в данном случае будет равно 100000 - 65536 = 34464) не является правильным результатом.

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

 Процессор, установив флаг, считает свою миссию выполненной и переходит к выполнению следующей команды. Если перенос в данном случае действительно является индикатором ошибки, программа должна после выполнения команды сложения проана-лизировать состояние флага CF, и при установленном флаге перейти на фрагмент обработки этой ошибки. Такой анализ выполняется с помощью команд условного перехода, в данном случае с помощью команды jc (jump if carry, переход по переносу):

add AX.BX

jc error ;B случае переноса переход 

;на метку 

error ;

Нормальное продолжение

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

 Флаг паритета PF (Parity Flag) устанавливается в 1, если результат операции содержит четное число двоичных единиц, и сбрасывается в О, если число двоичных единиц нечетно. Этот флаг можно использовать, например, для поиска ошибок при передаче данных и при выполнении диагностических тестов.

Флаг вспомогательного переноса AF (Auxiliary Flag) используется в операциях над двоично-десятичными числами. Он индицирует перенос или заем из старшей тетрады (бита 4). Двоично-десятичный формат подразумевает запись в каждой половинке байта десятичной цифры в виде ее двоичного эквивалента, что позволяет хранить в байте двухразрядное десятичное число в диапазоне от 0 до 99 Двоично-десятичные числа используются, в частности, для обмена данными с измерительными приборами. Для их обработки в процессоре предусмотрен целый ряд специфических команд, при использовании которых приходится анализировать состояние флага вспомогательного переноса.

Флаг нуля ZF (Zero Flag) устанавливается в 1, если результат операции равен 0. Например, флаг ZF установится, если из 5 вычесть 5 или к 10 прибавить -10.

Флаг знака SF (Sign Rag) показывает знак результата операции, устанавливаясь в 1 при отрицательном результате. Как будет показано в следующей главе, процессор различает числа без знака, т.е. существенно положительные, и числа со знаком, которые могут быть как положительными, так и отрицательными. Признаком отрицательности числа служит установленный старший бит этого числа (бит 15 для слов или бит 7 для байтов). Флаг SF устанавливается, если в результате какой-либо операции сформировано число с установленным старшим битом, например, S000h или FFFFh.

Флаг переполнения OF (Overflow Rag) фиксирует переполнение, т.е. выход результата за пределы допустимого диапазона значений для чисел со знаком. В знаковом представлении числа от 0000h до 7FFFh считаются положительными, а числа от S000h до FFFFh, т.е. числа с установленным старшим битом - отрицательными. Флаг OF устанавливается, если, например, при сложении двух положительных чисел получился результат, превышающий 7FFFh (потому что, начиная с S000h, идут уже отрицательные числа), или при вычитании из отрицательного числа получился результат, меньший S000h (потому что такие числа считаются положительными). Позже этот вопрос будет рассмотрен более детально.

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

Управляющий флаг трассировки (ловушки) TF (Trace Rag) используется для осуществления пошагового выполнения программы. Если TF=1, то после выполнения каждой команды процессор реализует процедуру прерывания через вектор с номером 1, расположенный по физическому адресу 04. Этот флаг активно используется в программах отладчиков, которые должны допускать выполнение отлаживаемой программы по шагам или с точками останова.

Управляющий флаг разрешения прерываний IF (Interrupt Rag) разрешает (если равен 1) или запрещает (если равен 0) процессору реагировать на прерывания от внешних устройств. Тем самым создается возможность выполнения особо ответственных фрагментов программ без каких-либо помех.

Управляющий флаг направления DF (Direction Rag) используется командами обработки строк. Если DF=0, строка обрабатывается в прямом направлении, от меньших адресов к большим; если DF=1, обработка строки идет в обратном направлении. Примеры использования этого флага будут приведены при рассмотрении соответствующих команд процессора.

Для установки и сброса управляющих флагов предусмотрены особые команды, например sti (set interrupt, установить прерывания) или cli (clear interrupt, сбросить прерывания).

 Проанализировал: теоретический материал и приводимый пример в практической части, сделал выводы по работе (п.4)

 3. Ответить на контрольные вопросы

  1.  Что такое микропроцессор?

Цифровое устройство, работает под управлением хранимой в памяти программы и конструктивно выполняется в виде одной или нескольких БИС.

  1.  Что собой представляет система команд МП?

Она представляет собой язык машинных команд (ЯМК). Она избыточна, что допускает универсальность в работе с информацией.

  1.  Что представляет собой регистр?

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

  1.  Что является обязательным элементом команд процессора?

Обязательными  элементами  команд  являются  коды  операций (КОП), которые занимают один или два байта.

  1.  Что инициирует флаг переноса CF (Carry Flag)?

Флаг переноса CF (Carry Flag) индицирует перенос или заем при выполнении арифметических операций

  1.  Перечислите команды, входящие в систему команд  процессоров?

Mov, add,

 4. Сделать выводы.

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

Проанализировал примеры простых задач на ЯМК.


 

А также другие работы, которые могут Вас заинтересовать

45863. Автоматизация загрузочных операций. Автоматизация и механизация загрузки и разгрузки. Виды загрузочно – разгрузочных устройств 16.43 KB
  Для осуществления загрузочных операций в автоматическом режиме необходимо осуществлять следующие действия: 1создать задел заготовок для обеспечения бесперебойной работы загрузочного оборудования 2осуществить пространственную ориентацию загрузочных изделий. В комплексе задач по автоматизации технологических процессов наиболее сложным является задача автоматизации и механизации загрузки и разгрузки что вызвано большим разнообразием форм и размеров заготовок и деталей а также самих процессов. ЗРУ в условиях серийного производства...
45864. Автоматический контроль. Виды контроля по формам воздействия на объект. Активный автоматический контроль 14.98 KB
  Виды контроля по формам воздействия на объект. Под устройствами автоматического контроля понимают устройства которые без вмешательства человека выполняют всю совокупность операций необходимых для выяснения действительных параметров заготовок и деталей полуфабрикатов производят измерения в процессе обработки до его начала либо после сортируют по величине отклонений действительных параметров от номинального значения а также управляет режимами работы оборудования. Для осуществления пассивного автоматического контроля широко используются...
45865. Промышленные роботы: понятие и назначение. Основные сведения о промышленных роботах. Манипуляторы и автооператоры 18.22 KB
  При обслуживании основного технологического оборудования ПР выполняют операции по загрузке заготовок и разгрузке готовых деталей или полуфабрикатов контролю смене инструментов уборке отходов производства установке и смене средств контроля в автоматическом режиме на технологическое оборудование межоперационной передаче и транспортированию складированию. В составе транспортных систем ПР могут самостоятельно осуществлять операции перемещения и доставки грузов обслуживать различные линии осуществлять операции по накоплению и контролю. Они...
45866. Инструменты для нарезания резьбы. Формообразующие движения. Особенности эксплуатации и обеспечение точности нарезаемой резьбы 103.44 KB
  Инструменты для нарезания резьбы. Особенности эксплуатации и обеспечение точности нарезаемой резьбы. Резьбы на деталях получают на сверлильных резьбонарезных и токарных станках а также накатыванием т. Инструментом для накатывания резьбы служат накатные плашки накатные ролики и накатные головки.
45867. Инструменты для нарезания зубьев цилиндрических колес. Методы их работы. От каких факторов зависит степень точности нарезаемого зубчатого венца 96.1 KB
  Относятся 1дисковые пальцевые и зуборезные фрезы зубодолбежные головки идрСхема фрезерия зуб. Вращение фрезы вокруг своей оси. Пальцевые фрезы целесообразно использовать при обр. фрезы и загат.
45868. Инструменты для повышения степени точности зубчатых колес, их конструкция и принцип работы 61.73 KB
  Если вращать шевер а обрабатываемому колесу увлекаемому им во вращение сообщать поступательное движение то режущие кромки канавок шевера будут снимать тонкие толщиной менее 001 мм волосообразные стружки с поверхности зубьев. Шевингование применяют для тонкой обработки зубьев у незакаленных колес или закаленных до твердости HRC = 35. Схема шлифования зубьев: а методом копирования; б методом обкатки Закаленные до более высокой твердости поверхности зубьев могут быть отделаны шлифованием. Как и при зубонарезании шлифование зубьев...
45869. Абразивные материалы и техническая характеристика абразивных инструментов. Особенности режима шлифования 42.39 KB
  Особенности режима шлифования. АБРАЗИ́ВНЫЕ МАТЕРИА́ЛЫ вещества повышенной твердости применяемые в массивном или измельченном состоянии для механической обработки шлифования резания истирания заточки полирования и т. Плоские круги прямого профиля ПП применяют для круглого наружного внутреннего и бесцентрового шлифования для плоского шлифования периферией круга и для заточки инструментов. Плоские круги с двухсторонним коническим профилем 2П применяют для вышлифовывания зубьев шестерен и шлифования резьбы.
45870. Особенности конструкций инструментов для автоматизированного производства 12.54 KB
  Особенности конструкций инструментов для автоматизированного производства. К этому инстрту предъявся повышенные требования е его качеству к точности размеровгеометрой формы качеству заточки. инструм. инстров с мехим креплением многогранных неперетаых пластинок из тверд.
45871. Литьё в кокиль (технология) 172.5 KB
  Литьё в кокиль { технология }. сплавов на долю кокильного литья приходится 40. Основной особенностью кокильного литья явл. При литье чугунных деталей в кокиль возможно получении отбелённого слоя что требует последующей термообработки.