Informacje wstępne. Historia Maszyna Turinga

Podobne dokumenty
Załącznik do ćwiczenia w środowisku MASM32 wersji 10 Sterowanie przebiegiem wykonania programu

Architektura komputerów. Asembler procesorów rodziny x86

Architektura Systemów Komputerowych, Wydział Informatyki, ZUT

Programowanie komputera

Sprzęt i architektura komputerów

Sterowanie pracą programu

Struktura i działanie jednostki centralnej

Architektura komputerów

INSTRUKCJE Instrukcje przeniesienia: Instrukcje konwersji: Arytmetyczne instrukcje:

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna

Technika mikroprocesorowa I Wykład 2

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki

Architektura komputerów

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

Architektura komputerów

organizacja procesora 8086

Sprzęt i architektura komputerów

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Organizacja typowego mikroprocesora

Podstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów

Programowanie Niskopoziomowe

Architektura Systemów Komputerowych

5. Mikroprocesory 8086 i 8088

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

Wprowadzenie do Architektury komputerów. Asembler procesorów rodziny x86

Programowanie w asemblerze Architektura procesora

Programowanie niskopoziomowe

Procesory rodziny x86. Dariusz Chaberski

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

J. Duntemann Zrozumieć Assembler Leo J. Scanlon Assembler 8086/8088/80286 S. Kruk Programowanie w Języku Assembler

Lista rozkazów mikrokontrolera 8051

Architektura typu Single-Cycle

Lista instrukcji mikroprocesora Programowanie w assemblerze

LEKCJA TEMAT: Współczesne procesory.

Jerzy Nawrocki, Wprowadzenie do informatyki

Wprowadzenie do Architektury komputerów. Asembler procesorów rodziny x86

Mikroprocesor Intel 8088 (8086)

end start ; ustawienie punktu startu programu i koniec instrukcji w assemblerze.

Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne

Programowanie mikrokontrolera 8051

Logiczny model komputera i działanie procesora. Część 1.

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

architektura komputerów w 1 1

Procesor Intel 8086 model programisty. Arkadiusz Chrobot

Przykładowe pytania DSP 1

dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle" POKL

MIKROKONTROLERY I MIKROPROCESORY

Programowalne układy logiczne

Procesor Intel 8086 model programisty. Arkadiusz Chrobot

Magistrala systemowa (System Bus)

Podstawy techniki cyfrowej i mikroprocesorowej II. Urządzenia wejścia-wyjścia

Podstawy techniki mikroprocesorowej. Dr inż. Grzegorz Kosobudzki p.311a A-5. Tel

Kod hex Instrukcja Opis 37 AAA Koryguj AL po dodawaniu BCD

Mikrokontroler ATmega32. Tryby adresowania Rejestry funkcyjne

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach

Architektura systemów komputerowych Laboratorium 8 Symulator SMS32 Instrukcje skoku i pętle

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Ćwiczenie 3. Konwersja liczb binarnych

Pytania. W obecnie wykorzystywanych komputerach osobistych jest stosowana architektura: jednoszynowa. pamięciowo-centryczna.

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Dotyczy jednostek operacyjnych i ich połączeń stanowiących realizację specyfikacji typu architektury

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Technika mikroprocesorowa I Wykład 1

1. Operacje logiczne A B A OR B

PODSTAWOWE ELEMENTY ASEMBLERA TRYBY ADRESOWANIA. OPERATORY ASEMBLERA

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

Programowanie mikrokontrolerów (CISC)

Mikroprocesor Operacje wejścia / wyjścia

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4

Lista Rozkazów: Język komputera

Schemat blokowy procesora rdzeniowego ATmega16. Głównym zadaniem JC jest zapewnienie poprawnego i szybkiego wykonywania programu.

2. Architektura mikrokontrolerów PIC16F8x... 13

Architektura komputerów

Podstawy Techniki Mikroprocesorowej

. III atyka, sem, Inform Symulator puterów Escape rchitektura kom A

Zuzanna Hartleb i Artur Angiel

Mikrokontroler 80C51

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

TMiK Podstawy Techniki Mikroprocesorowej. Lidia Łukasiak

ARCHITEKTURA PROCESORA,

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

Architektura systemów komputerowych

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Architektura komputerów

Wstęp Architektura... 13

Programowanie Niskopoziomowe

Budowa i zasada działania komputera. dr Artur Bartoszewski

Transkrypt:

Informacje wstępne 1 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 Historia Maszyna Turinga 2 maszyna Turinga Q M Q T1 Q T2 Q T3 Q T4 Q T5 Q T6 Q T7 Q T8

System mikroprocesorowy 4 3 Mikroprocesor

Cyfrowe kodowanie informacji 5 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 Podstawowe części składowe procesora magistrala lokalna 6 sygnały sterujące

Podstawowe części składowe procesora 7 Układ sterowania Control Unit 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) Rejestry Registers 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 Podstawowe części składowe procesora 8 Jednostka arytmetyczno - logiczna Arithmetic Logic Unit 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

Sposób działania mikroprocesora 9 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. 10

Prosty mikroprocesor 11 a a a b b b b b LDA STA JMP JZ ADD SUB AND INV DIN ADR R W MEM MEMS ALU ALUS AIN DIN ADD SUB AND INV Pamięć danych Akumulator ALU DOUT OUT Z AOUT SETA ADR INC IPIN SET Pamięć programu IP DOUT OUT Prosty mikroprocesor 12

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 13 Adres fizyczny 8086 - adresowanie 1 MB pamięci Adres = segment*16 + przesunięcie 14

8086 - rejestry AX BX CX DX SP BP SI DI rejestry danych AH AL BH BL CH CL DH DL rejestry wskaźnikowe wskaźnik stosu wskaźnik bazowy indeks źródła indeks przeznaczenia akumulator baza licznik dane CS DS SS ES IP rejestry segmentowe segment kodu segment danych segment stosu segment danych rejestry specjalne licznik rozkazów słowo stanu CPU 15 Program procesora Program zapisany w assemblerze mov cx,10h mov ax,0 mov si,1000h :petla add ax,[si] add si,2 dec cx jnz petla Kod maszynowy B9h, 10h, 00h, B8h, 00h, 00h, BEh, 00h, 10h, 03h, 04h, 83h, C6h, 02h, 49h, 75h, F8h 16

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, DX ADD AX, BX MOV AX, 13 ADD AX, 13 MOV AX, DS:[13] ADD AX, ES:[13] ADD AX, DS:[SI] MOV ES:[DI], AX 17 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] 18

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 19 Rodzaje rozkazów procesora 20

Przesłanie bajtu lub słowa MOV przesłanie bajtu lub słowa 1000100W AABBBCCC DDDDDDDD EEEEEEEE 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 21 Operacje na stosie 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 AX SP SP stos 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 adresy BX 22

Inne polecenia przesłania danych 23 Rozkazy arytmetyczne 24 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

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 25 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 26

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 27 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 28

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 29 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) 0 1 1 0 C 11010110 10101100 01011000 10110000 AL 30

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 AL SHR C 11010110 0 11101011 0 11110101 1 11111010 1 AL SAR C 31 Operacje na bitach - obroty ROL, ROR: obroty w lewo i prawo ROL AL, 3 obrót w lewo o 3 bity 11010110 10101101 01011011 10110110 AL 32

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 AL C 33 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 TEST NOT AX neguje wszystkie bity AX nie są modyfikowane znaczniki podobne do AND, z tym, że ulegają zmianie jedynie znaczniki, wartości rejestrów nie 34

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) 35 Skok bezwarunkowy JMP skok krótki, IP = IP+A skok bliski, IP = DISP skok daleki (międzysegmentowy): 11101011 AAAAAAAA 11111111 DISP nowe wartości CS i IP umieszczone w kodzie programu nowe wartości CS i IP umieszczone w rejestrach: JMP DS:[BP] 36

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! 37 Pętle LOOP pętla bezwarunkowa tylko krótkie zmniejszenie CX, skok tylko gdy CX 0 LOOPE, LOOPZ, LOOPNE, LOOPNZ JCXZ tylko krótkie zmniejszenie CX, skok tylko gdy CX 0 i spełniony jest dodatkowy warunek: LOOPE, LOOPZ: Z = 1 LOOPNE, LOOPNZ: Z = 0 skok krótki tylko gdy CX 0 38

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 39 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: Przedrostki: MOVS, CMPS, SCAS, LODS, STOS 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 40

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 41 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 42

Szybkość wykonywania poleceń 43 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 JZ rejestry: 3 clk rejestr pamięć: 9 clk + AE 16 gdy skok, 4 gdy brak skoku XLAT: 11 clk MUL 16-bitowy: 118-113 clk DIV 16-bitowe: 144-162 clk 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 44

Parametry pamięci Pojemność i organizacja Czas dostępu Szybkość Pozostałe parametry elektryczne napięcie pracy, tracona moc itp 45 Komórka pamięci SRAM 46

Budowa pamięci SRAM 47 SRAM - przykład 48

SRAM - odczyt 49 SRAM - zapis 50

DRAM linia słów linia bitów C 51 DRAM 52 IBM Application Note: Understanding DRAM Operation

DRAM 53 DRAM uproszczony odczyt 54

DRAM uproszczony zapis 55 IBM Application Note: Understanding DRAM Operation DRAM 56

ROM 57 PROM 58

EEPROM, Flash 59 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ść 60

FRAM 61 źródło: Wikipedia MRAM 62 źródło: Wikipedia

System mikroprocesorowy Mikroprocesor CPU Magistrala lokalna (Local Bus) Pamięć Memory Urządzenia wejścia - wyjścia I/O, Input - Output Otoczenie 63 Magistrale - klasyfikacja Równoległe Szeregowe Nadajnik d 0 d 1 d 2 d 3 Odbiornik Nadajnik d Odbiornik 64

Transmisja szeregowa asynchroniczna N 65 Magistrale - klasyfikacja niezbalansowane różnicowe 1 0 0 1 0 1 66

Magistrala lokalna rodzaje Architektura Harvard pamięć pamięć programu CPU Architektura von Neumann a CU - program ALU - dane pamięć danych CPU 67 Bramki 3-stanowe 68

Logika 3-stanowa 69 PCI Local Bus Specification rev. 2.2 December 18, 1998 Przełączane wyjście / wejście D WY D WE / 70

Przełączane wejście - wyjście pullup bufor wejściowy bufor wyjściowy 3-stanowy Atmel ATmega8 datasheet 71 Przełączane wyjście / wejście D WY / D WE D WY / D WE D WY / D WE 72

Magistrala lokalna CLK A (np. A 15..A 0 ) D (np. D 7..D 0 ) / lub / / lub / linii pomocnicze pełniące specjalne funkcje ALE zgłaszanie i obsługa przerwań... 73 Magistrala lokalna prosty przykład 74 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

Magistrala lokalna prosty przykład R/W CPU D 7...D 0 A 15...A 0 75 8086 najważniejsze wyprowadzenia 76 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