Systemy wbudowane. Przykłady kodu Assembler

Podobne dokumenty
Programowanie niskopoziomowe

Podstawy Techniki Mikroprocesorowej

Język programowania: Lista instrukcji (IL Instruction List)

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

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Architektura komputerów

Struktura i działanie jednostki centralnej

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

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

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

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Architektura typu Single-Cycle

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

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Architektura komputerów

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

MIKROKONTROLERY I MIKROPROCESORY

ARCHITEKTURA PROCESORA,

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

architektura komputerów w 1 1

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

Architektura komputerów

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Język programowania: Lista instrukcji (IL Instruction List) Wykład w ramach przedmiotu: Sterowniki programowalne Opracował dr inż. Jarosław Tarnawski

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Projektowanie. Projektowanie mikroprocesorów

Organizacja typowego mikroprocesora

Mikrokontrolery AVR ATmega

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

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

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

Technika mikroprocesorowa. Języki programowania mikrokontrolerów

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/ / 24

Elementy składoweµc - przypomnienie

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

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Mikroprocesory i mikrosterowniki

CPU architektura i rejestry

Mikroprocesory i Mikrosterowniki

Mikrokontroler ATmega32. Tryby adresowania Rejestry funkcyjne

Laboratorium 1: Wprowadzenie do środowiska programowego. oraz podstawowe operacje na rejestrach i komórkach pamięci

Techniki mikroprocesorowe i systemy wbudowane

Architektura systemów komputerowych

Mikrokontrolery 8 bit - wprowadzenie

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

Wstęp Architektura... 13

Architektura komputerów. Asembler procesorów rodziny x86

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

Programowanie niskopoziomowe

Sprzęt i architektura komputerów

Budowa systemów komputerowych

Programowanie Niskopoziomowe

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

Mikrokontroler AVR ATmega32 - wykład 9

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]

Systemy wbudowane Mikrokontrolery

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Mikroprocesor Operacje wejścia / wyjścia

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Mikrokontrolery czyli o czym to będzie...

PROGRAMOWALNE SYSTEMY MECHATRONIKI

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Mikroprocesory i Mikrosterowniki

Mikroprocesory i Mikrosterowniki

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Podstawy Techniki Mikroprocesorowej

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

KARTA PRZEDMIOTU. Programowanie niskopoziomowe, C2. Low Level Programming Informatyka

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Architektura mikroprocesorów TEO 2009/2010

Lista instrukcji mikroprocesora Programowanie w assemblerze

KARTA PRZEDMIOTU. Programowanie niskopoziomowe, C1

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

organizacja procesora 8086

Programowanie mikrokontrolera 8051

Programowanie w C++ 1 Opis procesora Sextium II. Opis procesora Sextium. materiały dydaktyczne udostępnione przez Tomasza Wierzbickiego

elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

Programowanie Mikrokontrolerów

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

UTK jednostki wykonawczej EU (Ex ecution Unit), jednostki steruj c ej CU,

Kurs Zaawansowany S7. Spis treści. Dzień 1

Technika mikroprocesorowa I Wykład 2

Mikrokontroler ATmega32. Język symboliczny

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

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Prezentacja systemu RTLinux

Rozszerzalne kody operacji (przykład)

Zarządzanie pamięcią w systemie operacyjnym

Lista Rozkazów: Język komputera

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

Technologie informacyjne (2) Zdzisław Szyjewski

Lista rozkazów mikrokontrolera 8051

Przerwania, polling, timery - wykład 9

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Liczniki, rejestry lab. 09 Mikrokontrolery 8051 cz. 1

AGH Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Akademia Górniczo- Hutmicza w Krakowie Katedra Elektroniki WIET

2 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/ / 24

Transkrypt:

Systemy wbudowane Przykłady kodu Assembler

Wstęp Slowo assembly w języku angielskim oznacza składać, montować W odniesieniu do języka programowania słowo to odnosi się do niskopoziomowego języka programowania urządzeń elektronicznych Językiem niskopoziomowym nazywa się taki język, w którym każde z poleceń ma bezpośrednie przełożenie (najlepiej jeden do jednego) na instrukcję maszynową danej architektury sprzętowej Każda architektura sprzętowa posiada swój zestaw rozkazów co oznacza, że język assemblera nie jest językiem uniwersalnym

Wstęp W assemblerze używa się tzw. mnemoników. Mnomonik to w pojęciu naukowym technika wspomagająca naukę mniej przyswajalnych przez ludzki mózg informacji poprzez zaprezentowanie ich/zamianę oryginalnej wartości na inną, prostszą do zapamiętania Mnemoniki w assemblerze mają za zadanie odpowiadać każdemu numerowi instrukcji bądź rozkazowi maszynowemu danego układu

Wstęp Mnemonikami zastępowane są także bezpośrednie adresy rejestrów, segmentów czy flag mikroukładów Niekiedy często wykonywane operacje (seria operacji maszynowych) zapisywane są pod jednym mnemonikiem (dla wygody programistów) Aplikacje pisane w assemblerze generalnie powinny być lepiej dopasowane do wskazanej architektury, a co za tym idzie efektywniej wykorzystywać jej możliwości Niestety obecne rozbudowanie niektórych układów powoduje, że tylko najlepsi inżynierowie danego układu są w stanie sprostać napisaniu dobrego kodu ASM

Assembler AVR Procesor posiada 135 rozkazów mnemonicznych Większość rozkazów wykonuje się w jednym takcie procesora Rozkazy jedynie typu RISC Rozkazy dla poszczególnych kontrolerów są podobne, jednak w poszczególnych modelach może być ich mniej/więcej AVR32 ma zupełnie inny zestaw rozkazów, który nie pasuje do zestawu AVR8

Ogólne oznaczenia w AVRASM2 Status Register (SREG) SREG - Rejestr stanu C - Flaga przeniesienia Z - Flaga zerowania N - Flaga ujemna V - Wskaźnik przepełnienia U2 S - N V (test znaku) H przeniesienia połówki T bit transferu używany przez instrukcje BLD (Bit LoaD) oraz BST (Bit STore) I flaga ogólnego włączenia/wyłączenia przerwań

Ogólne oznaczenia AVRASM2 Rejestry i operandy Rd - rejestr Przeznaczenia (i źródła) Rr - rejestr Źródłowy R Wynik wykonanej instrukcji K stałe dane k stały adres b bit w pliku rejestru bądź rejestru We/Wy (3-bit) s bit w Rejstrze Statusu (3-bit) X,Y,Z pośredni adres rejestru (X=R27:R26, Y=R29:R28 oraz Z=R31:R30) A lokalizacja adresu We/Wy q Przemieszczenie dla bezpośredniowego adresowania (6-bit)

Rejestry Wejścia/Wyjścia RAMPX, RAMPY, RAMPZ pozwalają na pośrednie adresowanie całej dostępnej przestrzeni kontrolera MCU (powyżej 64 KB) oraz wypełnianie danych w pamięci kontrolera powyżej 64 KB RAMPD rejestr złączony do rejestrem Z pozwalający na bezpośrednie adresowanie przestrzeni danych kontrolera (powyżej 64KB) EIND rejestr złączony z rejestrem Z pozwalający na pośredni skok i wywołanie w całej przestrzeni pamięci programu MCU (większego niż 128KB/64K słów)

Rejestry Wejścia/Wyjścia Stos STACK Stos dla zwortu adresu i przechowywania rejestrów SP Wskaźnik Rejestru na STOS Flagi flaga zależna od instrukcji 0 flaga czyszczona przez instrukcję 1 flaga ustawiona przez instrukcję - stan flagi nie zależy od instrukcji

Dostęp bezpośredni do rejestrów

Dostęp bezpośredni do rejestrów

Bezpośrednie Wejście/Wyjście

Bezpośrednie adresowanie danych

Pośrednie adresowanie z przeniesieniem

Adresowanie pośrednie

Pośrednie adresowanie danych z obniżeniem wartości o 1

Pośrednia adresacja z powiększeniem o jeden

Stała adresacja pamięci programu przy użyciu Load Program Memory, Extended Load Program Memory oraz Storage Program Memory

Adresacja programu z inkrementacją

Bezpośrednia adresacja programu poprzez skok i wywołanie

Pośrednie adresowanie pamięci programu

Względna adresacja pamięci programowej

Materiały https://en.wikipedia.org/wiki/assembly_language https://www.ibm.com/support/knowledgecenter/ssltbw_2.1.0/com.ibm.zos.v2r1.asma400/asmr102112.htm http://www.atmel.com/webdoc/avrassembler/index.html https://www.renesas.com/en-us/support/technical-resource s/engineer-school/mcu-01-basic-structure-operation.html http://www.atmel.com/images/atmel-0856-avr-instruction- Set-Manual.pdf