Mikroprocesory i Mikrosterowniki

Podobne dokumenty
Podstawy Techniki Mikroprocesorowej

Mikroprocesory i mikrosterowniki

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

Mikrokontrolery AVR ATmega

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

8 bitowy rdzeń AVR. Dariusz Chaberski

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

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

Podstawy Techniki Mikroprocesorowej

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Mikrokontroler ATmega32. Tryby adresowania Rejestry funkcyjne

Architektura komputerów

Mikroprocesory i mikrosterowniki

Mikroprocesory i Mikrosterowniki

Architektura komputerów. Asembler procesorów rodziny x86

Mikroprocesory i Mikrosterowniki

Struktura i działanie jednostki centralnej

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

NOTATNIK KONSTRUKTORA

Systemy mikroprocesorowe

Akademia Górniczo- Hutmicza w Krakowie Katedra Elektroniki WIET

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

Programowanie mikrokontrolerów (CISC)

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

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

architektura komputerów w 1 1

Lista Rozkazów: Język komputera

Lista rozkazów mikrokontrolera 8051

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Programowanie mikrokontrolerów. 5 grudnia 2007

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Programowanie komputera

Systemy wbudowane. Przykłady kodu Assembler

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

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

Technika mikroprocesorowa I Wykład 2

Architektura komputerów

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

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Mikroprocesory i Mikrosterowniki Laboratorium

Instytut Informatyki ZMiTAC

INSTRUKCJE Instrukcje przeniesienia: Instrukcje konwersji: Arytmetyczne instrukcje:

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

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

Lista instrukcji mikroprocesora Programowanie w assemblerze

Techniki mikroprocesorowe i systemy wbudowane

CPU architektura i rejestry

LISTA ROZKAZÓW i TRYBY ADRESOWANIA

Programowanie mikrokontrolera 8051

Programowanie mikrokontrolerów. 3 stycznia 2008

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

Procesory rodziny x86. Dariusz Chaberski

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

1. Wstęp Różnice pomiędzy mikrokontrolerami ST7 a ST7LITE Rdzeń mikrokontrolerów ST7FLITE... 15

Technika mikroprocesorowa - laboratorium Informatyka studia dzienne

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

Architektura komputerów

Budowa linii asemblera

Asembler - język maszynowy procesora

Mikroprocesory i Mikrosterowniki Analog-Digital Converter Konwerter Analogowo-Cyfrowy

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

Metody Realizacji Języków Programowania

Mikroprocesory i Mikrosterowniki Laboratorium

Architektura typu multi cycle

Mikrokontroler AVR ATmega32 - wykład 9

Programowalne układy logiczne

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

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

Rozszerzalne kody operacji (przykład)

SYSTEM MIKROPROCESOROWY

Programowanie mikroprocesorów jednoukładowych

PROGRAMOWALNE SYSTEMY MECHATRONIKI

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

Procesory osadzone ETD 7211 W

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

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

Programowanie mikrokontrolerów. 8 listopada 2007

Jerzy Nawrocki, Wprowadzenie do informatyki

organizacja procesora 8086

LABORATORIUM MIKROKONTROLERY I MIKROSYSTEMY

TMiK Podstawy Techniki Mikroprocesorowej. Lidia Łukasiak

Szkolenia specjalistyczne

Organizacja typowego mikroprocesora

Wstęp do Reverse engineeringu

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

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

Programowanie Mikrokontrolerów

Mikroprocesory i technika mikroprocesorowa

Systemy mikroprocesorowe

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

architektura komputerów w 1 1

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

Wstęp Architektura mikrokontrolerów 68HC08

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

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

MOV Copy Register

Wysyłanie na stos / pobieranie ze stosu Rd SP (RAMEND)

PUSH Push Register on Stack POP Pop Register from Stack

1. Instrukcje skoku i warunkowe 1.1. 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

1. Instrukcje skoku i warunkowe 1.2. 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

1. Instrukcje skoku i warunkowe 1.3. 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

2. Instrukcje arytmetyczne i logiczne 2.1. Instrukcje 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

2. Instrukcje arytmetyczne i logiczne 2.2. Instrukcje 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

3. Instrukcje bitowe i rejestru SREG 3.1. Instrukcje bitowe

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

3. Instrukcje bitowe i rejestru SREG 3.2. Instrukcje rejestru 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

4. Tryby adresowania, Instrukcje transferu danych

Instrukcje transferu danych

Tryby adresowania mapy pamięci 40 / 110 20 / 110 2 / 110 8 / 110 2 / 110 30 / 110 2 / 110 Pamięć programu FLASH EEPROM 8 kb (4096 x 16 bitów) 0 Pamięć danych 32 rejestry uniwersalne 64 rejestry specjalne 0 31 0 (32) 63 (95) 0 (96) rejestr Program Counter (licznik programu) SRAM 512 B 511 (607) (RAMEND) 4095

4.1. Tryby adresowania: rejestry uniwersalne bezpośrednio

Rejestry uniwersalne bezpośrednio Pamięć programu 0 Pamięć danych 32 rejestry uniwersalne 0 31 0 (32) FLASH EEPROM 8 kb (4096 x 16 bitów) 64 rejestry specjalne 63 (95) 0 (96) rejestr Program Counter (licznik programu) SRAM 512 B 511 (607) (RAMEND) 4095

Rejestry uniwersalne bezpośrednio INC R16 CLR R17 ROL R18 SWAP R19

Rejestry uniwersalne bezpośrednio ASR Rd DEC Rd ROL Rd ADD R20,R21 OR R22,R23 MUL R24,R24 CP R25,R26 MOV R27,R28 LDI R29,123

MOVW Copy RegisterWord movw R29:R28,R31:R30

4.2. Tryby adresowania: rejestry specjalne bezpośrednio

Rejestry specjalne bezpośrednio Pamięć programu 0 Pamięć danych 32 rejestry uniwersalne 0 31 0 (32) FLASH EEPROM 8 kb (4096 x 16 bitów) IN R16,PINA OUT DDRB,R18 64 rejestry specjalne 63 (95) 0 (96) SBI GICR,6 CBI ADMUX,4 rejestr Program Counter (licznik programu) SRAM 512 B SEI 511 (607) (RAMEND) 4095

Rejestry specjalne bezpośrednio

Tryby adresowania pamięć danych Pamięć programu 0 Pamięć danych 32 rejestry uniwersalne 0 31 0 (32) FLASH EEPROM 8 kb (4096 x 16 bitów) 64 rejestry specjalne 63 (95) 0 (96) rejestr Program Counter (licznik programu) SRAM 512 B 511 (607) (RAMEND) 4095

4.3. Tryby adresowania: pamięć danych bezpośrednio

Tryby adresowania pamięć danych bezpośrednio

Adresowanie bezpośrednie (LDS, STS)

LDS Load Direct from Data Space STS Store Direct to Data Space LDS R16,31 //pod STS 58,R17 //pod

Tryby adresowania pamięć danych Kod op. 0111 001001 010111 Arg. 1 (9) Arg. 2 0111 001001 010111 Kod op. Arg. 1 (9) Arg. 2 (23) Pam. danych 11010001

Tryby adresowania pamięć danych pośrednio 4.4. Pamięć danych pośrednio 4.5. Pam. d. pośrednio z pre-dekrementacją 4.6. Pam. d. pośrednio z post-inkrementacją 4.7. Pam. d. pośrednio z przesunięciem

Tryby adresowania pamięć danych pośrednio

Adresowanie pośrednie (LD, ST) LDI R31,$2a LDI R30,$c2 LDI Yl,$2a LDI Yh,$c2 LD R16, Z //do ST Y, R17 //pod

PUSH R20 //wyślij na STOS //następnie Adresowanie pośrednie (LD, ST) Pre-dekrementowany LD R16,-Z //do ST -Y, R17 //pod

POP R20 //pobierz ze //następnie Adresowanie pośrednie (LD, ST) Post-inkrementowany LD R16, Z+ //do R16 bajt ST Y+, R17 //pod adr. zapisany

Adresowanie pośrednie z przesunięciem (LDD, STD) LDD R16, Y+25 //do R16 bajt STD Z+63, R17 //pod adr. zapisany

4.8. Tryby adresowania: pamięć programu

Tryby adresowania mapy pamięci Pamięć programu 0 Pamięć danych 32 rejestry uniwersalne 0 31 0 (32) FLASH EEPROM 8 kb (4096 x 16 bitów) 64 rejestry specjalne 63 (95) 0 (96) rejestr Program Counter (licznik programu) SRAM 512 B 511 (607) (RAMEND) 4095

Tryby adresowania pamięć programu

LPM Load Program Memory SPM Store Program Memory LPM //do R0 LPM R16, Z //do R16 LPM R17,Z+ //do R17 SPM //do pary //ładuje 16

4.9. Adresowanie skoków względne 4.10. Adresowanie skoków pośrednie 4.11. Adresowanie skoków bezpośrednie

Tryby adresowania mapy pamięci Pamięć programu 0 Pamięć danych 32 rejestry uniwersalne 0 31 0 (32) FLASH EEPROM 8 kb (4096 x 16 bitów) 64 rejestry specjalne 63 (95) 0 (96) rejestr Program Counter (licznik programu) SRAM 512 B 511 (607) (RAMEND) 4095

Adresowanie skoków względne RJMP, RCALL, BRxx RJMP 753 //skocz do RCALL 753 //skocz BRNE 54 //skocz o

Adresowanie skoków pośrednie IJMP, ICALL LDI R31,$2a LDI R30,$c2 IJMP //skocz do ICALL //skocz

Adresowanie skoków bezpośrednie JMP, CALL JMP 2547 //skocz do CALL 2547 //skok

5. Instrukcje specjalne (kontrolne 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.