PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy...

38
Podstawy Techniki Cyfrowej i Mikroprocesorowej II © Tomasz Piasecki 1 Informacje wstępne Wykład obejmuje wprowadzenie do techniki mikroprocesorowej omówienie budowy i sposobu działania mikroprocesora pamięci cyfrowe – magistrale urządzenia wejścia – wyjścia rozwiązania stosowane w nowoczesnych mikroprocesorach • Literatura: Mroziński Zbigniew, Mikroprocesor 8086, WNT Mroziński Zbigniew, Elementy systemu mikroprocesorowego 8086, skrypt PWr Biernat Janusz, Architektura komputerów, PWr Sacha Krzysztof, Mikroprocesor w pytaniach i odpowiedziach WNT Podstawy Techniki Cyfrowej i Mikroprocesorowej II © Tomasz Piasecki 2 Historia – Maszyna Turinga Q T1 Q T2 Q T3 Q T4 Q T5 Q T6 Q T7 Q T8 maszyna Turinga Q M

Transcript of PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy...

Page 1: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

1

Informacje wstępne

• Wykład obejmuje– wprowadzenie do techniki mikroprocesorowej– omówienie budowy i sposobu działania mikroprocesora– pamięci cyfrowe– magistrale– urządzenia wejścia – wyjścia– rozwiązania stosowane w nowoczesnych mikroprocesorach

• Literatura:– Mroziński Zbigniew, Mikroprocesor 8086, WNT– Mroziński Zbigniew, Elementy systemu mikroprocesorowego

8086, skrypt PWr– Biernat Janusz, Architektura komputerów, PWr– Sacha Krzysztof, Mikroprocesor w pytaniach i odpowiedziach

WNT

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

2

Historia – Maszyna Turinga

QT1 QT2 QT3 QT4 QT5 QT6 QT7 QT8

maszyna Turinga

QM

Page 2: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

3

System mikroprocesorowyPodst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

4

Mikroprocesor

Page 3: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

5

Cyfrowe kodowanie informacji

porcja danych bity zakres kodowanych liczb (NKB)

tetrada (nybble) 4 0 ÷ 15

bajt (byte) 8 0 ÷ 255

słowo (word) 16 0 ÷ 65536

podwójne słowo (dword) 32 0 ÷ 4 294 967 296

poczwórne słowo (qword) 64 0 ÷ 18 446 744 073 709 551 616

liczba 12345678h 1. bajt 2. bajt 3. bajt 4.bajt

„big endian”

„small endian”

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

6

Podstawowe części składowe procesora

magistrala lokalna

sygnały

sterujące

Page 4: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

7

Podstawowe części składowe procesora

• Zapewnia taktowanie wszystkich elementów składowych mikroprocesora

• Pobiera z pamięci i dekoduje kolejne rozkazy programu w określonym porządku

• Kieruje rozkazy do wykonania przez ALU

• Steruje pracą rejestrów procesora

• Pobiera z pamięci i zapisuje do pamięci przetwarzane dane

• Wysyła dodatkowe sygnały niezbędne do współpracy z układami współpracującymi z mikroprocesorem (pamięć, we/wy)

• Niewielki obszar pamięci wewnątrz procesora

• Służą np. do:

– pamiętania danych przetwarzanych przez ALU

– zliczania powtórzeń pętli

– wskazywania miejsca w pamięci

• Rejestry specjalne:

– licznik rozkazów

– informacje o bieżącym stanie procesora

• Rejestry mogą być dostępne dla programu użytkownika bądź wykorzystywane wewnętrznie przez procesor

Układ sterowaniaControl Unit

RejestryRegisters

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

8

Podstawowe części składowe procesora

• Przetwarzanie informacji• Wykonuje zamknięty zbiór elementarnych poleceń na wartościach

liczbowych bądź logicznych, na przykład:– arytmetyka liczb całkowitych:

• +, -, czasem *, /• porównywanie wartości dwu liczb• zmiana znaku

– arytmetyka logiczna• OR, AND, XOR, NOT• przesunięcia i obroty

– działania na pojedynczych bitach• ustawianie, zerowanie i sprawdzanie wartości bitu

– możliwe inne działania, w zależności od konstrukcji procesora

Jednostka arytmetyczno -

logicznaArithmetic Logic Unit

Page 5: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

9

Sposób działania mikroprocesoraPodst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

10

Prosty mikroprocesor

• Przykładowy mikroprocesor z– 5 – bitową magistralą adresową– 8 – bitową magistralą danych– 8 rozkazów:

• LDA – załaduj A, adresowanie bezpośrednie• STA – zapisz A, adresowanie bezpośrednie• JMP, JZ – skok bezwarunkowy, warunkowy• ADD, SUB, AND, INV – operacja arytmetyczna pomiędzy A i daną

adresowaną bezpośrednio

– 8-bitowe słowa kodu maszynowego; 3 starsze bity oznaczają jeden z 8 rozkazów, 5 młodszych bitów to argument

• Jest to procesor bardzo uproszczony, brak w nim wielu rozkazów i trybów adresowania kluczowych z punktu widzenia zastosowań praktycznych.

Page 6: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

11

Prosty mikroprocesor

ALU

AIN

DIN

ADD

SUB

AND

INV

AOUT

SETA

Pamięćdanych

W DOUT

DIN

ADR

R

AND

SUB

ADD

JZ

a a a b b b b b

JMP

STA

LDA

INV

IPIPIN

INC

OUTSET

PamięćprogramuADR DOUT

Akumulator

Z

OUT

ALU

MEM

MEMS

ALUS

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

12

Prosty mikroprocesor

Page 7: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

13

Intel 8086

• 1978 – data ukazania się na rynku

• Procesor 16-bitowy• Pierwszy z tzw. rodziny

x86• Stanowił jednostkę

centralną pierwszego komputera typu IBM PC

• 20 tys. tranzystorów• Zegar 5 MHz (późnej 10

MHz)• Możliwość współpracy z

1 MB pamięci

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

14

8086 - adresowanie 1 MB pamięci

• Adres fizyczny

• Adres = segment*16 + przesunięcie

Page 8: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

15

8086 - rejestry

AH AL

BH BL

CH CL

DH DL

AX

BX

CX

DX

wskaźnik stosu

wskaźnik bazowy

indeks źródła

indeks przeznaczenia

SP

BP

SI

DI

segment kodu

segment danych

segment stosu

segment danych

CS

DS

SS

ES

licznik rozkazówIP

słowo stanu CPU

akumulator

baza

licznik

dane

rejestry danych

rejestry wskaźnikowe

rejestry segmentowe

rejestry specjalne

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

16

Program procesora

Program zapisany w assemblerze

mov cx,10hmov ax,0mov si,1000h

:petla add ax,[si]add si,2dec cxjnz petla

Kod maszynowy

B9h, 10h, 00h,B8h, 00h, 00h,BEh, 00h, 10h,03h, 04h,83h, C6h, 02h,49h, 75h, F8h

Page 9: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

17

8086 - tryby adresowania

• Adresowanie za pomocą rejestru– Dana znajduje się w rejestrze procesora– Zwarte, najszybsze

• Adresowanie natychmiastowe– Dana jest stałą liczbą umieszczoną w

kodzie programu• Adresowanie bezpośrednie

– Dana znajduje się w pamięci w segmencie danych a przesunięcie zawarte jest w kodzie programu

• Adresowanie pośrednie przez rejestr– Dana znajduje się w pamięci w segmencie

danych a przesunięcie zawarte jest w jednym z rejestrów: BP, BX, SI lub DI

MOV CX, DXADD AX, BX

MOV AX, 13ADD AX, 13

MOV AX, DS:[13]ADD AX, ES:[13]

ADD AX, DS:[SI]MOV ES:[DI], AX

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

18

8086 – tryby adresowania

• Adresowanie bazowe– Dana znajduje się w pamięci w segmencie danych a

przesunięcie obliczane jest przez zsumowanie stałej z kodu programu oraz jednego z rejestrów: BP, BX

• Adresowanie indeksowe– Dana znajduje się w pamięci w segmencie danych a

przesunięcie obliczane jest przez zsumowanie stałej z kodu programu oraz jednego z rejestrów: SI lub DI

• Adresowanie bazowo-indeksowe– Dana znajduje się w pamięci w segmencie danych a

przesunięcie obliczane jest przez zsumowanie:• stałej z kodu programu• wartości zapisanej w jednym z rejestrów BX, BP• wartości zapisanej w jednym z rejestrów SI, DI

MOV AX, [BP+4]ADD AX, [BP+6]

MOV AX, [SI+4]ADD AX, [SI+6]

MOV AX, [BP+SI+4]ADD AX, [BP+SI+6]

Page 10: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

19

8086 – tryby adresowania

• Adresowanie łańcuchów– wykorzystywane przy przetwarzaniu

ciągów danych– przesunięcie w adresie danych

źródłowych zawarte w SI– przesunięcie w adresie danych

wynikowych zawarte w DI– po wykonaniu elementarnego polecenia

wartości SI i DI ulegają zmianie• Adresowanie bezpośrednie portu we/wy

– adres portu zawarty w kodzie programu (0-255)

• Adresowanie pośrednie portu we/wy– adres portu zawarty w rejestrze DX

REP MOVS

OUT 75h, AL.

IN AL, DX

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

20

Rodzaje rozkazów procesora

Page 11: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

21

Przesłanie bajtu lub słowa

•MOV – przesłanie bajtu lub słowa1000100W|AABBBCCC Przesłanie z rejestru do rejestru lub pamięci.

Rozkaz rozpoznawany przez CU przez analizę pierwszego bajtu. Forma polecenia zależy od dodatkowych wartości:

Kodowanie rozkazu:• stały kod 1000100• W – 0 gdy przesyłany bajt, 1 gdy przesyłane słowo (np. AX czy AL)• AA – sposób obliczania przeznaczenia przesłania• 00 – brak przesunięcia chyba że CCC=110, wtedy 2 bajty DE• 01 – 1 bajt przesunięcia zapisany w D• 10 – 2 bajty przesunięcia DE• 11 – przesłanie między rejestrami• BBB – rejestr źródłowy:• 8 bitowe: 000 – AL, 001 – CL, 010 – DL, 011 - BL, 100 – AH, 101 – CH, 110 – DH, 111 – BH

• 16 bitowe: 000 – AX, 001 – CX, 010 – DX, 011 – BX, 100 – SP, 101 – BP, 110 – SI, 111 – DI

• CCC – sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 – BX+SI+DISP, 001 – BX+DI+DISP, 010 – BP+SI+DISP, 011 – BP+DI+DISP, 100 –SI+DISP, 101 – DI+DISP, 110 – BP+DISP, chyba że AA=00, 111 - BX+DISP

DDDDDDDD|EEEEEEEE

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

22

Operacje na stosie

• POP – zdjęcie danej ze stosu

– dana = SS:[SP], SP=SP+2

– do rejestru lub pamięci (2 bajty)

– do rejestru (1 bajt)

• np.: POP BX

AX

SP

adresy

• PUSH – umieszczenie danej na stosie

– SP=SP-2, SS:[SP] = dana

– z rejestru lub pamięci na stos (2 bajty)

– z rejestru na stos (1 bajt)

• np.: PUSH AX

SP BX

stos

Page 12: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

23

Inne polecenia przesłania danychPodst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

24

Rozkazy arytmetyczne

• Rozkazy arytmetyczne modyfikują zawartość znaczników. Znaczniki pamiętane są w słowie stanu procesora. Każdy z nich ma inne znaczenie:

– C – przeniesienie: ustawiany gdy nastąpiło przepełnienie przy dodawaniu lub pożyczka przy odejmowaniu

– A – analogicznie, ale przeniesienie pomiędzy połówkami bajtu

– S – znak, ustawiany zgodnie z najstarszym bitem wyniku operacji arytmetycznej; jeśli liczby kodowane są w U2 wtedy znacznik S = 1 oznacza wynik ujemny

– Z – zero, znacznik ustawiany gdy wynik operacji arytmetycznej równy jest 0, w przeciwnym wypadku kasowany

– P – parzystość, ustawiany gdy wśród 8 najmłodszych bitów wyniku jest parzysta liczba bitów „1”

– O – nadmiar, ustawiany gdy wynik operacji ma zbyt dużą liczbę bitów aby zmieścił się bez utraty informacji w miejscu przeznaczenia

Page 13: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

25

Dodawanie

• ADD

– 2 argumenty, jeden z nich może być adresem

– ADD AX, BX oznacza AX = AX+BX

• ADC – dodawanie z przeniesieniem

– 2 argumenty, jeden z nich może być adresem

– ADC AX, BX oznacza AX = AX+BX+C

– Używane przy dodawaniu wielobajtowych liczb.

• INC

– 1 argument

– INC AX oznacza AX = AX+1

– rozkaz nie modyfikuje znacznika C

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

26

Odejmowanie

• SUB

– 2 argumenty, jeden z nich może być adresem

– SUB AX, BX oznacza AX = AX-BX

• SBB – odejmowanie z pożyczką

– 2 argumenty, jeden z nich może być adresem

– SBB AX, BX oznacza AX = AX-BX-C

– Używane przy odejmowaniu wielobajtowych liczb.

• DEC

– 1 argument

– DEC AX oznacza AX = AX-1

– rozkaz nie modyfikuje znacznika C

Page 14: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

27

Porównanie

• CMP

– 2 argumenty, jeden z nich może być adresem

– CMP AX, BX oznacza ustawienie znaczników tak jak przy operacji SUB AX, BX ale zawartość rejestrów nie ulega zmianie.

• CMPSB, CMPSW

– porównanie bajtów (CMPSB) lub słów (CMPSW) spod adresów DS:[SI] i ES:[DI]

– wyniki porównania jak wyżej

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

28

Mnożenie i dzielenie

• MUL – mnożenie bez znaku

– 1 argument

– 8 bitów: MUL BL oznacza AX = AL*BL

– 16 bitów: MUL BX oznacza (DX,AX) = AX*BX

– modyfikowane znaczniki: C, O, pozostałe nieokreślone

• IMUL – j. w. ale liczby ze znakiem

• DIV – dzielenie bez znaku

– 1 argument

– 8 bitów: DIV BL oznacza AL=AX/BL, AH=reszta

– 16 bitów: DIV BX oznacza AX=(DX,AX)/BX, DX = reszta

– wartości znaczników nieokreślone

• IDIV – j. w. ale liczby ze znakiem

Page 15: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

29

Operacje na kodzie BCD

• BCD:

– AAA – ASCII Adjust after Addition

– AAS – ASCII Adjust after Subtraction

– AAM – ASCII Adjust after Multiplication

– AAD – ASCII Adjust before Division

• Spakowany BCD:

– DAA – Decimal Adjust after Addition

– DAS – Decimal Adjust after Subtraction

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

30

Operacje na bitach - przesunięcia

• SAL, SHL – przesunięcie arytmetyczne, logiczne w lewo.

– SHL AL, 3 oznacza przesunięcie AL o 3 bity w lewo

– przesunięcie arytmetyczne i logiczne w lewo oznaczają tę samą operację i są tak samo kodowane

– modyfikowane znaczniki: C, O gdy przesuw o 1 bit, O=(C!=MSB)

110101100

101011001

010110001

101100000

C AL

Page 16: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

31

Operacje na bitach - przesunięcia

•SAR, SHR – przesunięcie arytmetyczne, logiczne w prawo.

–SHL AL, 3 oznacza przesunięcie AL o 3 bity w prawo

–przesunięcie arytmetyczne zachowuje znak liczby

–modyfikowane znaczniki: C, O gdy przy SAR zmienił się znak liczby

11010110 0

01101011 0

00110101 1

00011010 1

CAL

11010110 0

11101011 0

11110101 1

11111010 1

CAL

SHR SAR

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

32

Operacje na bitach - obroty

• ROL, ROR: obroty w lewo i prawo

– ROL AL, 3 – obrót w lewo o 3 bity

11010110101011010101101110110110

AL

Page 17: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

33

Operacje na bitach - obroty

• RCL, RCR – obrót ze znacznikiem C

– RCL AL, 3 – obrót ze znacznikiem C o 3 bity

– może być wykorzystywane przy obrotach liczb wielobajtowych

11010110 0

10101100 1

01011001 1

10110011 0

CAL

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

34

Operatory logiczne na bajtach, słowach

• AND, OR, XOR

– AND AX, BX oznacza, AX = AX & BX, analogicznie pozostałe operacje

– operacja logiczna wykonywana jest na każdym bicie argumentów z osobna

– modyfikowane znaczniki S, Z, P, O(zero), C(zero)

• NOT – negacja wszystkich bitów

– NOT AX neguje wszystkie bity AX

– nie są modyfikowane znaczniki

• TEST

– podobne do AND, z tym, że ulegają zmianie jedynie znaczniki, wartości rejestrów nie

Page 18: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

35

Rozkazy przeniesienia sterowania

• Powodują zmiany sekwencyjności wykonania programu poprzez zmiany wartości rejestru IP lub CS:IP

• Są wykonywane przez CU

• W procesorze 8086 rozróżniamy 3 sposoby określenia docelowego miejsca wykonania programu po skoku:

– bez zmiany CS:

• krótki, względny, zmiana IP o -128 ÷ 127

• bliski, zmiana IP

– ze zmianą CS:

• daleki, zmiana CS oraz IP

• Skoki bliskie i dalekie mogą być bezpośrednie (nowa wartość umieszczona w kodzie programu) lub pośrednie (nowa wartość określona zawartością rejestrów)

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

36

Skok bezwarunkowy

• JMP

– skok krótki, IP = IP+A

– skok bliski, IP = DISP

–skok daleki (międzysegmentowy):

•nowe wartości CS i IP umieszczone w kodzie programu

•nowe wartości CS i IP umieszczone w rejestrach:

–JMP DS:[BP]

11101011|AAAAAAAA

DISP11111111

Page 19: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

37

Skoki warunkowe

• Wyłącznie krótkie

– JE, JZ; JL, JNGE; JLE, JNG; JB, JNAE; JBE, JNA; JP, JPE; JO, JS, JNE, JNZ; JGE, JNL; JG, JNLE; JAE, JNB; JA, JNBE; JNP, JPO; JNO; JNS; JC; JNC

– Znaczenie mnemonika wyjaśnia jego rozwinięcie np:

• JZ – Jump on Zero

• JC – Jump on Carry

• JNC – Jump on Not Carry

• JNGE – Jump on Not Greater or Equal

• ...

– dlaczego JZ = JE? Patrz CMP!

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

38

Pętle

• LOOP – pętla bezwarunkowa

– tylko krótkie

– zmniejszenie CX, skok tylko gdy CX ≠ 0

• LOOPE, LOOPZ, LOOPNE, LOOPNZ

– tylko krótkie

– zmniejszenie CX, skok tylko gdy CX ≠ 0 i spełniony jest dodatkowy warunek:

• LOOPE, LOOPZ: Z = 1

• LOOPNE, LOOPNZ: Z = 0

• JCXZ

– skok krótki tylko gdy CX ≠ 0

Page 20: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

39

Wywołanie podprogramu

• CALL – wywołanie podprogramu

– bliskie i dalekie

– przed przeniesieniem sterowania w nowe miejsce adres (słowo lub dwa słowa) rozkazu bezpośrednio następującego po CALL jest odkładany na stos

• RET – powrót z podprogramu

– bliski: IP = wartość ze stosu

– daleki: CS:IP = dwa słowa zdjęte ze stosu

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

40

Operacje na łańcuchach

• Mikroprocesor 8086 został wyposażony w możliwość łatwego przeprowadzania pojedynczej operacji na ciągach danych o znanej długości

• Operacja na łańcuchu składa się z:

– przedrostka REP, REPE, REPZ, REPNE, REPNZ

– rozkazu łańcuchowego:

• MOVS, CMPS, SCAS, LODS, STOS

• Przedrostki:

– zmniejszają CX o 1 po wykonaniu rozkazu łańcuchowego

– REP – używany tylko z MOVS I STOS, oznacza powtarzanie rozkazu gdy CX ≠ 0

– REPE – powtarzaj gdy zgodność, REPZ – powtarzaj gdy zero, REPNE – powtarzaj gdy brak zgodności, REPNZ – powtarzaj gdy nie zero

Page 21: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

41

Operacje na łańcuchach

• MOVS – move string

– przepisanie spod DS:[SI] do ES:[DI]

• CMPS – compare string

– porównanie DS:[SI] do ES:[DI], (patrz CMP)

• SCAS – scan string

– porównanie kolejnych elementów ES:[DI] z wartością z AX (AL)

• LODS – load string: AX (AL) = DS:[SI]

• STOS – store string ES:[DI] = AX (AL)

• Operacje łańcuchowe po wykonaniu odpowiednio modyfikują wartości rejestrów indeksowych SI, DI

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

42

Rozkazy sterowania procesorem

• CLC, CMC, STC – zerowanie, negowanie i ustawianie znacznika C

• CLD, STD – zerowanie i ustawianie znacznika D

• CLI, STI – zerowanie i ustawianie znacznika I

• NOP – nie rób nic

Page 22: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

43

Szybkość wykonywania poleceń

• Czas obliczenia adresu efektywnego:

• bezpośrednie: 6 clk

• bazowe, indeksowe bez przesunięcia: 5 clk

• jw. ale z przesunięciem: 9 clk

• bazowo-indeksowe bez przesunięcia:

– BP+DI, BX+SI: 7 clk

– BP+DI, BX+DI: 8 clk

• jw. ale z przesunięciem:

– BP+DI+DISP, BX+SI+DISP: 11 clk

– BP+SI+DISP, BX+DI+DISP: 12 clk

• CBW, CLC, REP: 2 clk

• MOV

• rejestry: 2 clk

• rejestr – pamięć 8 clk + AE

• akumulator – pamięć: 10 clk

• ADD

• rejestry: 3 clk

• rejestr – pamięć: 9 clk + AE

• JZ

• 16 gdy skok, 4 gdy brak skoku

• XLAT: 11 clk

• MUL 16-bitowy: 118-113 clk

• DIV 16-bitowe: 144-162 clk

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

44

Rodzaje CPU – lista rozkazów

• 80486 (w 1992):

– ponad 200 rozkazów, liczne w wielu wariantach

– 11 trybów adresowania

– 4 rejestry danych

– 33-66 MHz

• DEC ALPHA 21064 (1992)

– 64 rozkazy, prosty dekoder instrukcji

– 1 tryb adresowania

– 2x32 rejestry danych

– 100 – 200 MHz, 30W

Page 23: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

45

Parametry pamięci

• Pojemność i organizacja

• Czas dostępu

• Szybkość

• Pozostałe parametry elektryczne – napięcie pracy, tracona moc itp

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

46

Komórka pamięci SRAM

Page 24: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

47

Budowa pamięci SRAMPodst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

48

SRAM - przykład

Page 25: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

49

SRAM - odczytPodst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

50

SRAM - zapis

Page 26: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

51

DRAM

linia słów

linia bitów

C

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

52

•DRAM

IBM Application Note: Understanding DRAM Operation

Page 27: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

53

•DRAMPodst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

54

•DRAM – uproszczony odczyt

Page 28: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

55

•DRAM – uproszczony zapis

IBM Application Note: Understanding DRAM Operation

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

56

DRAM

Page 29: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

57

ROMPodst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

58

PROM

Page 30: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

59

•EEPROM, FlashPodst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

60

•Pamięci z pływającą bramką

• EPROM (1971)– trwałość 10-20 lat– ładowanie bramki pływającej przez wstrzykiwanie gorących

nośników– rozładowanie bramki przez naświetlanie UV jonizujące izolator

bramki• EEPROM (1983)

– ładowanie i rozładowanie bramki pływającej przez emisję polową (tunelowanie Fowlera-Nordheima), choć istnieją rozwiązania hybrydowe (wykorzystanie wstrzykiwania przy programowaniu)

– ograniczona żywotność: 103 – 106 cykli (4 mies. przy zmianie zawartości co 1 s)

• FLASH (1984)– odmiana EEPROM w której zapis i odczyt odbywa się blokami

danych – zwiększona wydajność

Page 31: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

61

•FRAM

źródło: Wikipedia

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

62

MRAM

źródło: Wikipedia

Page 32: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

63

System mikroprocesorowy

MikroprocesorCPU

PamięćMemory

Urządzenia wejścia - wyjściaI/O, Input - Output

Magistrala lokalna (Local Bus)

Otoczenie

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

64

Magistrale - klasyfikacja

Równoległe

Nadajnik Odbiornik

d0

d1

d2

d3

Szeregowe

Nadajnik Odbiornik

d

Page 33: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

65

Transmisja szeregowa asynchroniczna

N

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

66

Magistrale - klasyfikacja

niezbalansowane różnicowe

0

1

01

01

Page 34: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

67

Magistrala lokalna – rodzaje

CPUpamięć

programupamięćdanych

CPUpamięć

CU - program

ALU - dane

Architektura Harvard

Architektura von Neumann’a

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

68

Bramki 3-stanowe

Page 35: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

69

Logika 3-stanowa

PCI Local Bus Specification rev. 2.2 December 18, 1998

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

70

Przełączane wyjście / wejście

DWY

DWE

��/��

Page 36: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

71

Przełączane wejście - wyjście

Atm

elATm

ega8 d

ata

sheet

pullup bufor wyjściowy 3-stanowy

bufor wejściowy

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

72

Przełączane wyjście / wejście

DW

Y

DW

E

��/��

DW

Y

DW

E

��/��

DW

Y

DW

E

��/��

Page 37: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

73

Magistrala lokalna

• CLK

• A (np. A15

..A0)

• D (np. D7..D

0)

• �/�� lub ��/�

• �/�� lub ��/��

• linii pomocnicze pełniące specjalne funkcje

– ALE

– zgłaszanie i obsługa przerwań

– ...

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

74

Magistrala lokalna – prosty przykład

Przykład magistrali lokalnej wykorzystywanej przy współpracy mikrokontrolera ATmega 8515 z pamięcią SRAM. Magistrala multipleksowana, młodsze 8 bitów magistrali współdzielone pomiędzy dane i adres – wykorzystany jest zatrzask sterowany sygnałem ALE

Page 38: PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 –BX+SI+DISP, 001 –BX+DI+DISP, 010 –BP+SI+DISP, 011 –BP+DI+DISP,

Podst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

75

CPU

D7...D0

A15...A0

R/W

Magistrala lokalna – prosty przykładPodst

aw

y T

echnik

i C

yfr

ow

ej

i M

ikro

pro

ceso

row

ej

II ©

Tom

asz

Pia

secki

76

8086 – najważniejsze wyprowadzenia

•CLK – sygnał zegarowy

•RESET – zerowanie procesora

•AD0-AD15 – we/wy, 16 bitów danych lub adres

•A16/S3-A19/S6 – wy, 4 bity adresu lub bity stanu

•M/IO – wy, pamięć/IO

•ALE – wy, aktywacja zatrzasku adresu

•WR – wy, zapis/odczyt

•HOLD, HLDA – żądanie i potwierdzenie dostępu do magistrali przez urz. zew.

•INTR, NMI – linie zgłoszenia przerwania