Mikroprocesory i mikrosterowniki

Podobne dokumenty
Mikroprocesory i Mikrosterowniki

Podstawy Techniki Mikroprocesorowej

1. Struktura urządzeń z wykorzystaniem mikrokontrolerów...13

Mikrokontrolery AVR ATmega

Wstęp Zagadnienia ogólne... 11

AGH Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

8 bitowy rdzeń AVR. Dariusz Chaberski

Mikrokontrolery AVR ATmega

MIKROPROCESORY I MIKROKONTROLERY INSTRUKCJE / KOMENDY / ROZKAZY: PRZEGLĄD I KILKA PRZYKŁADÓW DLA PRZYPOMNIENIA, GŁÓWNE REJESTRY ROBOCZE CPU:

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

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

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Podstawy Techniki Mikroprocesorowej

Architektura komputerów

Mikrokontroler ATmega32. Tryby adresowania Rejestry funkcyjne

Mikroprocesory i mikrosterowniki

Mikroprocesory i Mikrosterowniki

NOTATNIK KONSTRUKTORA

PROCESORY ARM TRUDNO ZNALEŹĆ PROCESORY O TAK LICZNYCH, ORYGINALNYCH, NOWYCH, POMYSŁOWYCH ROZWIĄZANIACH!

Mikroprocesory i Mikrosterowniki

Struktura i działanie jednostki centralnej

Akademia Górniczo- Hutmicza w Krakowie Katedra Elektroniki WIET

Systemy mikroprocesorowe

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

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

Architektura typu Single-Cycle

Architektura komputerów. Asembler procesorów rodziny x86

architektura komputerów w 1 1

Programowanie mikrokontrolerów (CISC)

Komunikacja w mikrokontrolerach. Wydział Elektroniki Mikrosystemów i Fotoniki Piotr Markowski

Lista Rozkazów: Język komputera

Programowanie mikrokontrolerów. 5 grudnia 2007

LABORATORIUM nr 1. Temat: Wstęp do mikrokontrolerów rodziny MCS-51

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

LISTA ROZKAZÓW i TRYBY ADRESOWANIA

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

#3 - BarCamp Semihalf. System wbudowany? - Zrób to sam! Jak napisać własny RTOS? Radosław Biernacki

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

Programowanie komputera

Techniki mikroprocesorowe i systemy wbudowane

Instytut Informatyki ZMiTAC

Procesory rodziny x86. Dariusz Chaberski

Mikroprocesory i Mikrosterowniki Laboratorium

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Sterowanie multipleksowe 4-cyfrowego wyświetlacza siedmiosegmentowego w oparciu o system przerwao mikrokontrolera ATmega16 w języku Asembler

Programowanie mikroprocesorów jednoukładowych

Budowa linii asemblera

Systemy wbudowane. Przykłady kodu Assembler

Mikroprocesory i Mikrosterowniki Analog-Digital Converter Konwerter Analogowo-Cyfrowy

Model programowy komputera I: format rozkazów, lista rozkazów, tryby adresowania, cykl rozkazowy, realizacja programu w komputerze.

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

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

Technika mikroprocesorowa I Wykład 2

INSTRUKCJE Instrukcje przeniesienia: Instrukcje konwersji: Arytmetyczne instrukcje:

Mikroprocesory i Mikrosterowniki Liczniki Timer Counter T/C0, T/C1, T/C2

Technika mikroprocesorowa - laboratorium Informatyka studia dzienne

Programowanie mikrokontrolerów. 3 stycznia 2008

Architektura komputerów

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

Architektura typu multi cycle

Wstęp do Reverse engineeringu

Programowanie mikrokontrolera 8051

Procesory osadzone ETD 7211 W

Metody Realizacji Języków Programowania

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Lista rozkazów mikrokontrolera 8051

Mikroprocesory i Mikrosterowniki Laboratorium

CPU architektura i rejestry

Procedury. int mult (int mcand, int mlier){ int product = 0; while (mlier > 0) { product = product + mcand; mlier = mlier -1; } return product; }

Programowalne układy logiczne

PROGRAMOWALNE SYSTEMY MECHATRONIKI

ROUTER ROUTER ROUTER. Przełącznik Przełącznik Przełącznik Przełącznik. 25 komp. 12 komp. 10 komp. 25 komp. P3 P4 P5 P6

Systemy mikroprocesorowe

Szkolenia specjalistyczne

LISTA ROZKAZÓW i TRYBY ADRESOWANIA

Programowanie Mikrokontrolerów

1 Ogolnie o asemblerach. 2 Zarys architektury MIPS

Programowanie mikrokontrolerów. 8 listopada 2007

RAM. MIKROPROCESOR wielki inwalida" MIKROKONTROLER - przykł. AVR

Architektura komputerów

Instytut Teleinformatyki

Mikrokontroler AVR ATmega32 - wykład 9

Obszar rejestrów specjalnych. Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW

SYSTEM MIKROPROCESOROWY

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Schemat blokowy architektury AVR

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Dyrektywy asemblera. Składnia: etykieta:.dyrektywa argument. rezerwuje zasoby w SRAM początek segmentu kodu

Mikroprocesory i mikrosterowniki Wydział Elektroniki Mikrosystemów i Fotoniki Politechniki Wrocławskiej Ćwiczenie nr 1

Układ transmisji szeregowej AVR

Asembler - język maszynowy procesora

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

Programowanie niskopoziomowe

1 Zarys architektury MIPS

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

LABORATORIUM MIKROKONTROLERY I MIKROSYSTEMY

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

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

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

Transkrypt:

Mikroprocesory i mikrosterowniki Instrukcje, tryby adresowania Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach rękopisu. Na podstawie dokumentacji ATmega8535, www.atmel.com. Piotr Markowski

Lista instrukcji ATmega8535

Lista instrukcji ATmega8535 (1) Arytmetyczne i logiczne

Lista instrukcji ATmega8535 Oznaczenia Rd, Rr rejestr uniwersalny X, Y, Z rejestry uniwersalne 16-bitowe P rejestr specjalny K stała (dane) k stała (adres) b,s numer bitu w rejestrze

Lista instrukcji ATmega8535

Lista instrukcji ATmega8535 (2) Skoku/warunkowe

Lista instrukcji ATmega8535 (3) Transferu danych

Lista instrukcji ATmega8535 (4) Na bitach

Lista instrukcji ATmega8535 (5) Specjalne

1.Pierwsze instrukcje

LDI Load Immediate

OUT Store Register to I/O Location OUT P,Rr 0 r 31, 0 P 63

IN - Load an I/O Location to Register IN Rr,P 0 r 31, 0 P 63

Program 1 Zadanie: wysłać 1 na co drugi pin portu A

RJMP Relative Jump

RJMP Relative Jump

INC Increment

DEC Decrement

ROL Rotate Left trough Carry ROR Rotate Right trough Carry

Zadanie: biegnąca dioda

2. Instrukcje skoku warunkowego

Instrukcje skoku warunkowego

BRIE Branch if Global Interrupt is Enabled

BRID Branch if Global Interrupt is Disabled

BRTS Branch if the T Flag is Set BRTC Branch if the T Flag is Cleared

BRHS Branch if Half Carry Flag is Set BRHC Branch if Half Carry Flag is Cleared

BRGE Branch if Greater or Equal (Signed) BRLT Branch if Less Than (Signed)

BRVS Branch if Overflow Set BRVC Branch if Overflow Cleared

BRPL Branch if Plus BRMI Branch if Minus

BREQ Branch if Equal BRNE Branch if Not Equal

BRSH Branch if Same or Higher (Unsigned) BRLO Branch if Lower (Unsigned)

BRSH Branch if Same or Higher (Unsigned) BRLO Branch if Lower (Unsigned) BRSH = BRCC (Branch if Carry Clear) BRLO = BRCS (Branch if Carry Set)

BRBS Branch if Bit in SREG is Set BRBC Branch if Bit in SREG is Cleared

Przykład Pętla opóźniająca BRNE (flaga Z)

Pętla opóźniająca 1 1 2(1) 1 + 255 (1+2) = 766 cykli 0,8 ms 1 + 255 (766+1+2) = 196 095 cykli 200 ms BRNE skocz do OP jeśli flaga Z = 0 Z = 1 0000 0001 -> 0000 0000 R20 R20

3. Instrukcje warunkowe (pominięcia)

Instrukcje pominięcia

CPSE Compare Skip if Equal

SBRS Skip if Bit in Register is Set SBRC Skip if Bit in Register is Cleared

SBIS Skip if Bit in I/O Register is Set SBIC Skip if Bit in I/O Register is Cleared

Przykład Zmiana kierunku obrotu SBRS/SBRC

Zmiana kierunku obrotu 7 6 5 4 3 2 1 0

4. Instrukcje skoku

Instrukcje skoku

IJMP Indirect Jump

RCALL Relative Call to Subroutine

ICALL Indirect Call to Subroutine

RET Return from Subroutine

RETI Return from Interrupt

Przykład - podprogramy

5. Operacje logiczne

Operacje logiczne

AND Logical AND

ANDI Logical AND with Immediate

OR Logical OR ORI Logical OR with Immediate

EOR Exclusive OR

COM One s Complement

NEG Two s Complement

TST Test for Zero or Minus

CLR Clear Register

SER Set Register

6. Operacje arytmetyczne

Operacje arytmetyczne

ADD Add without Carry SUB Subtract without Carry

ADC Add with Carry SBC Subtract with Carry

ADIW Add Immediate to Word SBIW Subtract Immediate from Word

SUBI Subtract Immediate

SBCI Subtract Immediate with Carry

MUL Multiply Unsigned

MULS Multiply Signed

MULS Multiply Signed 0111 1111-127 0111 1110-126... 0000 0001-1 0000 0000-0 1111 1111 - -1 1111 1110 - -2... 1000 0001 - -127 1000 0000 - -128

MULSU Multiply Signed with Unsigned

Mnożenie MUL: 1000 0110 1100 1110 R1 R0 MULS: 0000 0111 1100 1110 R1 R0 MULSU: 1111 0101 1100 1110 R1 R0

FMUL Fractional Multiply Unsigned

Mnożenie ułamków Zapis liczby zmiennoprzecinkowej: 2 0 + 2-1 + 2-2 + 2-3 + 2-4 + 2-5 +... 1000 0000 = 1100 0000 = 0110 0000 = 1111 1111 = 1.9921875 FMUL: x =

FMULS Fractional Multiply Signed

Ułamki ze znakiem 0111 1111 = 0.9921875... 0000 0001 = 0.0078125 0000 0000 = 0 1111 1111 = -0.0078125 0000 0000 + 1... 1000 000 = -1

FMULSU Fractional Multiply Signed with Unsigned

CP Compare

CPC Compare with Carry

CPI Compare with Immediate

7. Operacje na bitach

Operacje na bitach

SBR Set Bits in Register CBR Clear Bits in Register

SBI Set Bit in I/O Register CBI Clear Bit in I/O Register

Rejestry specjalne

LSL Logical Shift Left LSR Logical Shift Right

ROL Rotate Left trough Carry ROR Rotate Right trough Carry + 1001 1100 1001 1100 C=0 ADC C=1 0011 1000

ASR Arithmetic Shift Right

SWAP Swap Nibbles

8. Operacje na SREG

Operacje na rejestrze SREG

Instrukcje CL.. CLI CLT CLH CLS CLV CLN CLZ CLC I T H S V N Z C «0 «0 «0 «0 «0 «0 «0 «0 Clear flag

Instrukcje SE.. SEI SET SEH SES SEV SEN SEZ SEC I T H S V N Z C «1 «1 «1 «1 «1 «1 «1 «1 Set flag

BSET Bit Set in SREG BCLR Bit Clear in SREG

BLD Bit Load from T Flag to Register BST Bit Store from Register to T Flag

9. Tryby adresowania (operacje przesyłu danych)

Tryby adresowania mapy pamięci 0 31 0 63 0 32 rej. uniwersalne 64 rej. specjalne 511 RAMEND 512 bajtów SRAM

Operacje przesyłu danych

Operacje przesyłu danych

Tryby adresowania rejestry uniwersalne

Tryby adresowania rejestry uniwersalne ASR Rd DEC Rd ROL Rd

Tryby adresowania rejestry specjalne

Tryby adresowania rejestry

MOV Copy Register

MOVW Copy RegisterWord movw movw movw movw movw

Tryby adresowania pamięć danych Bezpośrednie: 0 32 rej. uniwersalne Pośrednie: 31 0 63 0 511 RAMEND 64 rej. specjalne 512 bajtów SRAM

Tryby adresowania SRAM

Adresowanie bezpośrednie (LDS, STS)

LDS Load Direct from Data Space STS Store Direct to Data Space

Tryby adresowania mapy pamięci 0 31 0 63 0 511 RAMEND 32 rej. uniwersalne 64 rej. specjalne 512 bajtów SRAM str. 297

Adresowanie pośrednie (LD, ST) Pre Post dekrementowany inkrementowany

Adresowanie pośrednie (LD, ST) Pre dekrementowany

Adresowanie pośrednie (LD, ST)

LD Load Indirect from Data Space to Register using Index X, Y or Z

ST Store Indirect From Register to Data Space using Index X, Y or Z

Adresowanie pośrednie z przesunięciem (LDD, STD) Tylko rejestry Y i Z LDD Rd,Y+q STD Y+q,Rd 0 q 63 Y, Z nie zmieniają się

Tryby adresowania stos

Wysyłanie na stos / pobieranie ze stosu Rd

PUSH Push Register on Stack POP Pop Register from Stack

Tryby adresowania FLASH

Adresowanie pamięci FLASH RJMP, RCALL

Adresowanie pamięci FLASH IJMP, ICALL

LPM Load Program Memory SPM Store Program Memory

LPM Load Program Memory SPM Store Program Memory

LPM Load Program Memory

SPM Store Program Memory

10. Operacje MCU

Operacje specjalne MCU

NOP No Operation

SLEEP

WDR Watchdog Reset

BREAK

Przykładowe zagadnienia sprawdzające

Przykładowe zagadnienia sprawdzające 1. Zapisz liczbę 147 w 8-bitowym kodzie: binarnym, U2, szesnastkowo-dziesiętnym. 2. Wskaż błąd w zapisie instrukcji LDI: LDI R16,R17. W jakich kodach liczbowych należy zapisać R16, R17 dla instrukcji MULS R16,R17? (opanowanie wiedzy na temat wybranych instrukcji: LDI, OUT/IN, ROL/ROR, MULS, EOR, MOV, BRNE, RJMP/IJMP/RCALL, RET/RETI, SBRS/SBRC/SBIS/SBIC, PUSH/POP, SEI/CLI). 3. Zapisz liczbę -1.75 w 8-bitowym kodzie zmiennoprzecinkowym. 4. Adresowanie bezpośrednie vs. pośrednie wyjaśnij różnicę. 5. Jakich rodzajów pamięci dotyczy pojęcie adresowania? 6. Adresowanie post-inkrementowane / pre-dekrementowane wyjaśnij terminy.