Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Программная модель процессора 8086






Тюрин В.Н

Сибирский государственный технологический

Университет

 

 

Вычислительные машины,

Системы и сети

 

Учебное пособие

 

 

Красноярск, 2004

 

Введение

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

Раздел первый - содержит описание ЭВМ совместимых с IBM PC. Здесь приведены структура процессора, назначение основных регистров, система представления данных в ЭВМ.

Во втором разделе описываются Форматы команд, псевдооператоры (директивы) языка, даны примеры использования директив.

Третий раздел посвящен командам языка Ассемблера. Здесь приведены мнемокод, алгоритм выполнения команды и указано воздействие на регистр флагов. Наиболее часто используемые команды подробно описаны в части 3.2.

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

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

В шестом разделе описаны характерные ошибки, встречающиеся при программировании на Ассемблере и обнаруженные MASMом при трансляции.

Седьмой раздел посвящен описанию ошибок обнаруженных компоновщиком LINK.

Восьмой раздел содержит описание команд интерактивного отладчиков Debug и Code View Microsoft.

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

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

указанная в конце методического пособия.


Функциональное и структурное построение ПК

 

Основные понятия

 

В методических материалах под термином “персональный компьютер” и сокращенно ПК понимается персональная ЭВМ с системой команд х86, занимающая в настоящее время около 90% рынка ЭВМ. Первые 16 – разрядные ПК появились в 1981 г., в настоящее время активно распространяются 64-х

разрядные ПК. Но во всех моделях ЭВМ фирмы INTEL строго соблюдается программная преемственность. Это означает что программа написанная для ЭВМ младшей модели, например IBM PC AT, может без каких либо изменений выполнена на любой старшей модели ЭВМ, так как CPU (Central Processor Unit) и FPU (Floating - Point Unit) составляющие основу и сердце ЭВМ всех типов, используют одну систему команд языка Ассемблера. Хотя структура и архитектура процессоров различных моделей могут значительно отличаться между собой. В старшие модели ПК лишь добавляются новые команды необходимые для многозадачных и мультимедийных режимов. Таким образом, процессор 8086 может служить базовым процессором для изучения функционирования блоков и устройств ПК всех остальных моделей данного семейства.

Укрупненная блок-схема компьютера классической (фон-Немановской) архитектуры показана на рисунке 1.1. Она состоит из:

а) Процессора;

б) Каналов связи(внешнего интерфейса);

в) Оперативной (или основной) памяти;

г) Внешней памяти;

д) Устройств ввода – вывода;

ж) Прочих внешних устройств.

 

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

Процессор состоит из:

Ÿ Устройства управления которое синхронизирует и управляет работой процессора и всей вычислительной системы.

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

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

Ÿ Устройства преобразования адресов памяти вычисляющего адреса операндов и команд в различных режимах адресации памяти.

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

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

Каналы связи(внешнего интерфейса) – служат для сопряжения процессора с его внешними устройствами.

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

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

1. Вычисление адреса команды;

2. Чтение команды из памя­ти;

3. Дешифрация команды (преобразование во внутренний микро­код CPU);

4. Модификация содержимого IP;

5. Вычисление адреса операндов;

6. Чтение (выборка) операндов из памяти на регистры процессора;

7. Исполнение операции над выбранными операндами;

8. Запись результата операции в память или регистры процессора.

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

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

Скорость обработки команд или производительность процессора зависит от двух факторов:

От скорости выполнения инструкций в вычислительном устройстве процессора;

От скорости доставки инструкций и операндов из памяти процессору.

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

Например, один из способов приближения основной памяти к процессору это метод кэширования памяти. Для чего между процессором и оперативной памятью вводят промежуточную быстродействующую память небольшой емкости, территориально расположенную в кристалле микропроцессора. В ней хранятся те данные и команды, которые процессор должен обработать в ближайшее время. Конвейерный принцип выполнения команд, основанный на автономности работы каждого блока процессора, подразумевает одновременное выполнение процессором нескольких команд. При конвейеризации, весь процесс выполнения команды разбивается на несколько (от 5 до 25) этапов или ступеней. Каждый этап выполняется отдельными блоками функционирующими по сигналам устройства управления независимо друг от друга. Грубо говоря, пока одна команда выбирает­ся из памяти, то предыдущая дешифрируется, а первая исполняется и т.д. В зависимости от числа ступеней конвейера, в процессоре одновременно выполняются 5 и более команд. Конвейер классического процессора Pentium имеет 5 ступеней, а в Pentium 4 команды проходят до 24 ступеней. В зависимости от количества конвейеров, процессоры подразделяются на скалярные, суперскалярные и мультискалярные.

Большинство архитектур процессоров делятся на две категории – RISC и CISC процессоры.

RISC – Reduced Instruction Set Computer, процессоры с сокращенной системой команд. Команды просты, четкой структуры, фиксированной длины, исполняются за один такт. Процессоры имеют большое количество однородных регистров универсального назначения.

CISC – Complete Instruction Set Computer, процессоры с расширенным набором выполняемых инструкций. Состав и назначение регистров процессоров существенно неоднородны, команды различной длины и структуры, с усложненной дешифровкой и большим количеством тактов исполнения. К подобным процессорам относится и семейство процессоров х86. Упрощенная структурная схема подобного процессора представлена на рисунке 1.2.

Преобразователь адресов формирует 20 – ти битный адрес памяти который обеспечивает прямой доступ к памяти емкостью 1 Мбайт. Все операнды команд обрабатываются по сигналам устройства управления 16 – ти разрядным АЛУ, которое помещает результат вычислений в РОН или буферный регистр данных. Программно – доступными являются РОН, сегментные регистры, регистр флагов и указатель команд.

Программная модель процессора 8086

 

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

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

· Регистры общего назначения (АХ, ВХ, СХ, ДХ)

· Регистры указателей и индексов (SI, DI, BP, SP);

· Сегментные регистры (CS, DS, SS, ES);

· Указатель команд (IP);

· Регистр (или указатель) флагов (EF)

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

АХ – accumulator, аккумулятор; CS – code segment, сегмент команд;

ВХ – base, база; DS – date segment, сегмент данных;

СХ – counter, счетчик; SS – stack segment, сегмент стэка;

DX – date, данные; ES – extra segment, дополнительный

SI – source index, индекс источника; сегмент;

DI – destination index, индекс приемника;

BP – base pointer, указатель базы;

SP – stack pointer, указатель стэка;

IP – instruction pointer, указатель команд;

FP – flags pointer, указатель флагов.

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

15 8 7 0 номера разрядов в регистрах

AX BX CX DX AH AL Аккумулятор Базовый регистр Счётчик Регистр данных Регистры данных    
BH BL
CH CL
DH DL

 

15 0

SI DI BP SP   Индекс источника Индекс приемника Указатель базы Указатель стека Регистры указателей и индексов
 
 
 

15 0

CS DS SS ES   Регистр сегмента команд Регистр сегмента данных Регистр сегмента стека Регистр дополнительного сегмента
 
 
 

15 0

IP   Указатель команд

 

15 0

EF   Указатель (регистр) флагов


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

mylektsii.su - Мои Лекции - 2015-2024 год. (0.011 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал