Top Banner
Архитектура и програмирање микропроцесора Intel 8086 Историјат развоја Модел процесора 8086 Програмски модел Организација меморије Адресни начини рада
43

Архитектура и програмирање микропроцесора Intel 8086

Feb 05, 2016

Download

Documents

fawn

Архитектура и програмирање микропроцесора Intel 8086. Историјат развоја Модел процесора 8086 Програмски модел Организација меморије Адресни начини рада. Историјат развоја. 1971. први микропроцесор уопште: четворобитни Intel 4004. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Архитектура и програмирање микропроцесора  Intel 8086

Архитектура и програмирање

микропроцесора Intel 8086

Историјат развоја Модел процесора 8086 Програмски модел Организација меморије Адресни начини рада

Page 2: Архитектура и програмирање микропроцесора  Intel 8086

Историјат развоја 1971. први микропроцесор уопште:

четворобитни Intel 4004. Нешто касније и осмобитни процесор

8008, а затим и осмобитни следбеници 8080 (1973) и 8085 (1977).

Први 16-битни микропроцесор уопште је Intel 8086 (1978).

Током наредних 20-так година следила је серија све моћнијих микропроцесора, како Intel-ових тако и других произвођача.

Page 3: Архитектура и програмирање микропроцесора  Intel 8086

Историјат развоја Intel је код свих процесора задржао

компатибилност! Из тих разлога, проучавање процесора

8086 је важно као родоначелника касније серије 80x86.

Скуп инструкција овог процесора може се посматрати као подскуп скупа инструкција наредних генерација.

Page 4: Архитектура и програмирање микропроцесора  Intel 8086

Модел процесора 8086

Сл. 1. Блок шема микропроцесора 8086.

Интерна магистрала података

Извршна јединица(EU)

Једница за спрегу са магистралом

(BIU)

Page 5: Архитектура и програмирање микропроцесора  Intel 8086

Модел процесора 8086 Микропроцесор 8086 организован је у

две јединице (сл. 1): Извршна јединица (EU – Execution Unit). Једница за спрегу са магистралом (BIU – Bus

Interface Unit).

Page 6: Архитектура и програмирање микропроцесора  Intel 8086

Модел процесора 8086

AH ALBH BLCH CLDH DL

BPDISISP

ALU маркери

Интерна магистрала података

Сл. 2. Извршна јединица.

Page 7: Архитектура и програмирање микропроцесора  Intel 8086

Модел процесора 8086

Сл. 3. Једниница за спрегу са магистралом.

CSESSSDS

сабирач

Интерна магистрала података

IP

сегментни регистри

654321

ред чекања инструкција

Јединица за генерисање адреса и управљање

магистралом

Магистралаподатака

Адреснамагистрала

Page 8: Архитектура и програмирање микропроцесора  Intel 8086

Модел процесора 8086 BIU преко адресне магистрале и

магистрале података обезбеђује спрегу процесора са меморијским и У/И подсистемом а преко интерне маги-страле са функционалним јединицама процесора.

EU прихвата кодове инструкција од BIU, извршава инструкције и смешта резултате у интерне регистре. Преко BIU ови резултати могу се сместити у меморију или послати на излаз.

Page 9: Архитектура и програмирање микропроцесора  Intel 8086

Модел процесора 8086 У току рада између BIU и EU постоји

преклапање у обављању њихових задатака.

Активности ове две јединице могу се описати на следећи начин:

1. BIU поставља IP на адресну магистралу и прибавља реч/бајт из меморије.

2. IP се инкрементира (колико – то зависи од обима инструкције),

Page 10: Архитектура и програмирање микропроцесора  Intel 8086

Модел процесора 80863. Инструкција прихваћена од стране BIU

смешта се у ред чекања.4. Ако је ред чекања био празан EU одмах

добавља ту инструкцију и почиње да је извршава.

5. Док EU извршава инструкцију BIU прибавља наредну инструкцију. У зависности од времена извршења прве инструкције, BIU може да попуни ред чекања са неколико нових инструкција пре него EU буде спремна на изврши наредну.

Page 11: Архитектура и програмирање микропроцесора  Intel 8086

Модел процесора 8086 Постоје 3 разлога која могу да уведу

EU у стање чекања (wait mode):1. Инструкција захтева приступ меморијској

локацији која није у реу чекања.2. Код инструкција типа jump ред чекања се

празни и потом поново пуни инструкцијама почев од циљне адресе гранања.

3. EU извршава “спору” инструкцију.

Page 12: Архитектура и програмирање микропроцесора  Intel 8086

Програмски модел Програмски модел микропроцесора

приказује типове интерних регистара доступних програмеру.

При томе, показивач инструкција IP није доступан програмеру директно и у суштини је део BIU.

Page 13: Архитектура и програмирање микропроцесора  Intel 8086

Програмски модел Скуп регистара видљивих програмеру:

Осам 16-битних регистара: AX-DX, SP, BP, SI и DI. Прва четири могу се поделити на по два 8-битна регистра.

Четири 16-битна сегментна регистра. 16-битни показивач наредби. 16-битни регистар стања.

Page 14: Архитектура и програмирање микропроцесора  Intel 8086

Програмски моделAH ALAX акумулаторBH BLBX базни

регистарCH CLCX бројачDH DLDX регистар података

SP показивач магацинаBP базни показивачSI индекс извораDI индекс одредиштаCS програмски сегментDS сегмент податакаSS сегмент магацинаES додатни сегментIP показивач наредби

регистар стањаSRH SRLSR

Сл. 4. Програмски модел микропроцесора 8086.

Page 15: Архитектура и програмирање микропроцесора  Intel 8086

Програмски модел

X X X X OF DF IF TF SF ZF X AF X PF X CF15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0бит позиција

Регистар стања

SRH SRL

Сл. 5. Распоред маркера у регистру стања.

Page 16: Архитектура и програмирање микропроцесора  Intel 8086

Програмски моделБит

позиција Назив Функција0 CF Маркер преноса (Carry Flag)2 PF Маркер парности (Parity Flag) - сетује се ако нижи бајт

резултата има паран број јединица4 AF Поставља се ако постоји пренос или позајмица од

ниже тетраде AL регистра6 ZF Маркер нула (Zero Flag)7 SF Маркер знака (Sign Flag)8 TF Маркер рада корак по корак (Single step Flag) – када

се сетује после инструкције генерише се прекид9 IF Дозвола рада прекида (Interrupt enable Flag)10 DF Маркер смера преноса (Direction Flag) - када је

сетован инструкције за рад са низовима декрементирју индексни регистар

11 OF Маркер прекорачења (Oveflow Flag)

Page 17: Архитектура и програмирање микропроцесора  Intel 8086

Организација меморије Укупан меморијски простор дели се на

неколико сегмената. Процесор је ограничен на прихватање

инструкција и података само из ових сегмената.

Оваква метода адресирања назива се сегментно адресирање.

Меморија је бајтовски оријентисана са Little Endian редоследом.

Page 18: Архитектура и програмирање микропроцесора  Intel 8086

Организација меморије 8086 има 20 адресних линија што

омогућава генерисање 220 различитих адреса (1МB), тј. адресирање 219 16-битних речи.

Симултани приступ 16-битним речима из бајтовски оријентисане меморије омогу-ћен је постојањем парне и непарне меморијске банке.

Page 19: Архитектура и програмирање микропроцесора  Intel 8086

Организација меморије1048574

бајт 8бајт 6бајт 4бајт 2бајт 0

...

1048575

бајт 9бајт 7бајт 5бајт 3бајт 1

...

парна банка непарна банка

16-битне речи

Сл. 6. Читање 16-битних речи из парне и непарне меморијске банке.

Page 20: Архитектура и програмирање микропроцесора  Intel 8086

Организација меморије Могуће је читати и

16-битне речи које почињу на непарним адресама.

У том случају процесор мора да обави два циклуса читања.

бајт 7бајт 6бајт 5бајт 4

1. читање2. читање

реч која почиње на непарној адреси

Page 21: Архитектура и програмирање микропроцесора  Intel 8086

Организација меморије У оквиру укупног адресног простора од

1MB микропроцесор 8086 дефинише четири сегмента величине 64kB: сегмент кода, сегмент магацина, сегмент података и додатни сегмент.

Page 22: Архитектура и програмирање микропроцесора  Intel 8086

Организација меморије Четири сегментна регистра се користе

да у оквиру укупног меморијског простора указују на базну адресу сваког сегмента.

Да би могао да се адресира читав адресни простор додају се 4 нуле на позицији најмање тежине, што има ефекат као да су сегментни регистри поможени са 16.

Page 23: Архитектура и програмирање микропроцесора  Intel 8086

Организација меморије

Page 24: Архитектура и програмирање микропроцесора  Intel 8086

Организација меморије Сегменти се могу делимично или чак

потпуно преклапати (CS=DS=ES=SS). Меморијске локације које не припадају

текућем сегменту нису доступне пре редефинисања садржаја сегментних регистара.

Page 25: Архитектура и програмирање микропроцесора  Intel 8086

Адресни начини рада Фамилија Intel 80x86 користи

двооперандски формат инструкција при чему је први операнд одредишни а други изворни.

MOV BX, CXизворни операнд

одредишни операнд

Page 26: Архитектура и програмирање микропроцесора  Intel 8086

Адресни начини рада Постоји велики број адресних начина

рада (CISC процесор!). Неки од адресних начина рада

присутни су код свих чланова фамилије, а неки тек од процесора 80386 надаље.

Ми ћемо, срећом, да се бавимо само оним начинима адресирања који постоје код 8086.

Page 27: Архитектура и програмирање микропроцесора  Intel 8086

Адресни начини рада Код 8086 можемо препознати пет врста

операнада: регистарски операнди, константе и три начина адресирања меморијских

операнада.

Page 28: Архитектура и програмирање микропроцесора  Intel 8086

Адресни начини рада Сходно томе, имамо пет адресних

начина рада (мада, са више детаља посматрано, можемо посматрати чак 17 различитих начина адресирања): Регистарско адресирање; Непосредно адресирање; Директно адресирање; Индиректно адресирање; Индексно адресирање.

Page 29: Архитектура и програмирање микропроцесора  Intel 8086

Адресни начини рада Регистарско адресирање подразумева

да је операнд у неком од регистара. Битно је да операнди буду истог обима

(оба 8-битна или оба 16-битна)MOV BX, AX

Регистар AX Регистар BXизвор одредиштегенерисање адресе

Page 30: Архитектура и програмирање микропроцесора  Intel 8086

Адресни начини рада Оба операнда mov инструкције не могу

бити истовремено у сегментним реги-стрима.

mov ax, csmov ds, ax

Сегментни регистар CS не може бити одредиште mov инструкције, јер пар CS:IP одређује адресу наредне инструк-ције.

Page 31: Архитектура и програмирање микропроцесора  Intel 8086

Адресни начини рада Непосредно адресирање подразумева

да је операнд специфициран у оквиру инструкције.

MOV CH, 3Ah

податак 3Ah Регистар CXизвор одредиштегенерисање адресе

Page 32: Архитектура и програмирање микропроцесора  Intel 8086

Адресни начини радаMOV BL, 44 ; kopira se dekadno 44 u BLMOV BL, 44h ; kopira se heksadekadno 44 u BLMOV AL, ‘A’ ; kopira se ASCII znak ‘A’ u ALMOV AX, ‘AB’ ; kopira se ASCII ‘BA’ (4241h) u AXMOV CL, 11001110b; kopira binarno 11001110 u

CL

Page 33: Архитектура и програмирање микропроцесора  Intel 8086

Адресни начини рада Директно адресирање односи се на

операнд у меморији када се специфицира офсет у односу на одговарајући сегмент.

MOV [1234h], AX

M[11234h]регистар AX

извор одредиштегенерисање адресе

DS*10h+DISP10000h+1234h

Напомена: претпоставили смо да је DS=1000h.

Page 34: Архитектура и програмирање микропроцесора  Intel 8086

Адресни начини рада Уместо офсета могуће је навести лабелу

која одговара некој променљивој дефинисаној у сегменту података.data1 DB 12Hdata2 DW 3456H…MOV AL, data1MOV AX, data2

Лабела је дужине 6 знакова (код новијих процесора до 35) и почиње словом или знацима @, $, _, ?.

Page 35: Архитектура и програмирање микропроцесора  Intel 8086

Адресни начини рада Регистарско индиректно адресирање

тиче се операнда у меморији чија је адреса (тачније, 16-битни офсет у оквиру сегмента података) у неком од регистара BP, BX, DI и SI.

MOV [BX], CL

M[10300h]регистар CL

извор одредиштегенерисање адресе

DS*10h+BX10000h+0300h

Напомена: претпоставили смо да је DS=1000h, BX = 0300h.

Page 36: Архитектура и програмирање микропроцесора  Intel 8086

Адресни начини рада У одређеним случајевима потребно је

користити директиву BYTE PTR или WORD PTR да се специфицира обим операнда.

Такође, директивом OFFSET се адреса неког податка (тј. офсет у односу на почетак сегмента података) може преузети у неки од регистара.

Page 37: Архитектура и програмирање микропроцесора  Intel 8086

Адресни начини рада Базно-плус-индексно адресирање се

такође односи на операнд у меморији. За формирање адресе користи се:

базни регистар (BP или BX) који треба да садржи базну адресу неког поља података, и

индексни регистар (DI или SI) који садржи релативну позицију податка у односу на базну адресу.

Page 38: Архитектура и програмирање микропроцесора  Intel 8086

Адресни начини радаMOV [BX+SI], BP

M[10500h]регистар BP

извор одредиштегенерисање адресе

DS*10h+BX+SI10000h+0300h+0200h

Напомена: претпоставили смо да је DS=1000h, BX = 0300h, SI=0200h.

Page 39: Архитектура и програмирање микропроцесора  Intel 8086

Адресни начини рада Регистарско релативно адресирање

податка у меморији генерише адресу податка тако што сабира размештај са садржајем неког од BP, BX, DI или SI регистра.

MOV CL, [BX+4]

Регистар CLM[10304]

извор одредиштегенерисање адресе

DS*10h+BX+410000h+0300h+4

Напомена: претпоставили смо да је DS=1000h, BX = 0300h,

Page 40: Архитектура и програмирање микропроцесора  Intel 8086

Адресни начини рада Размештај се наводи у оквиру заграде,

као у претходном примеру, или изван заграде.

MOV VEKTOR[DI], AL Размештај је означени 16-битни број

(код 8086/.../80286).

Page 41: Архитектура и програмирање микропроцесора  Intel 8086

Адресни начини рада Базно релативно адресирање са

индексирањем формира адресу операнда тако што се сабере размештај и садржај базног и индексног регистра.

MOV POLJE[BX+SI], DX

M[11500h]регистар DX

извор одредиштегенерисање адресеDS*10h+POLJE+BX+SI10000h+1000h+0300h+0200h

Напомена: претпоставили смо да је DS=1000h, BX = 0300h, SI=0200h и POLJE=1000h.

Page 42: Архитектура и програмирање микропроцесора  Intel 8086

Адресни начини рада Као што смо рекли, постоји 17

различитих меморијских начина рада: disp, [bx], [bp], [si], [di], disp[bx], disp[bp], disp[si], disp[di], [bx][si], [bx][di], [bp][si], [bp][di], disp[bx][si], disp[bx][di], disp[bp][si] и disp[bp][di].

Page 43: Архитектура и програмирање микропроцесора  Intel 8086

Адресни начини рада Постоји лак начин да се запамти које

комбинације дају легални адресни начин рада.

Једноставно треба изабрати из сваке колоне следеће табеле највише један елемент.