Wstępdo assemblera MA51

Podobne dokumenty
Przerwania w architekturze mikrokontrolera X51

Wstęp do assemblera MA51

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

petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla

Podstawy Informatyki Języki programowania c.d.

Programowanie hybrydowe C (C++) - assembler. MS Visual Studio Inline Assembler

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Wstęp. do języka C na procesor (kompilator RC51)

Akademia Górniczo- Hutmicza w Krakowie Katedra Elektroniki WIET

Programowanie Niskopoziomowe

Struktura programu w asemblerze mikrokontrolera 8051

Mikrokontroler ATmega32. Język symboliczny

Architektura mikrokontrolera MCS51

Architektura mikrokontrolera MCS51

Strumień pola elektrycznego i prawo Gaussa

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada

MIKROKONTROLERY I MIKROPROCESORY

PMiK Programowanie Mikrokontrolera 8051

Architektura komputerów

Hardware mikrokontrolera X51

Analiza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

1. Dyrektywy asemblerowe

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

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

Ćwiczenie 2. Siedmiosegmentowy wyświetlacz LED

Liczniki, rejestry lab. 09 Mikrokontrolery 8051 cz. 1

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

TMiK Podstawy Techniki Mikroprocesorowej. Lidia Łukasiak

IV PROGRAMOWANIE MIKROKOMPUTERA Technika Cyfrowa 2. Wykład 4: Programowanie mikrokomputera 8051

Architektura komputerów. Asembler procesorów rodziny x86

Mikroinformatyka. Wielozadaniowość

Lista rozkazów mikrokontrolera 8051

Asembler - język maszynowy procesora

Instytut Teleinformatyki

Systemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Funkcja (podprogram) void

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Techniki mikroprocesorowe i systemy wbudowane

Programowanie Niskopoziomowe

Ćwiczenie 3 Wyświetlacz ciekłokrystaliczny

Sprzężenie mikrokontrolera (nie tylko X51) ze światem zewnętrznym cd...

CPU architektura i rejestry

Zadanie analizy leksykalnej

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

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303

Programowanie w języku C++ Grażyna Koba

Dyrektywy asemblerowe

Programowanie mikrokontrolerów (CISC)

Systemy wbudowane. Przykłady kodu Assembler

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Instytut Teleinformatyki

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

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

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

START: ; start programu od adresu 0100H ; zerowanie komórek od 01H do 07FH ( 1 dec dec)

kiedy znowu uzyska sterowanie, to podejmuje obliczenie od miejsca, w którym poprzednio przerwała, i z dotychczasowymi wartościami zmiennych,

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

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

Wykład 4. Środowisko programistyczne

architektura komputerów w 1 1

Mikrokontroler ATmega32. Tryby adresowania Rejestry funkcyjne

Programowanie mikrokontrolera 8051

Typy, klasy typów, składnie w funkcji

Politechnika Warszawska

Mikrokontrolery 8 bit - wprowadzenie

W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131) - języki graficzne (LD, FBD); języki tekstowe (ST, IL).

Język ludzki kod maszynowy

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Języki programowania zasady ich tworzenia

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

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

Historia modeli programowania

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Wstęp do programowania

Architektura komputerów

Algorytmika i Programowanie VBA 1 - podstawy

Pamięci EEPROM w systemach mikroprocesorowych, część 2

Cyfrowe układy scalone c.d. funkcje

PROCESORY SYGNAŁOWE - LABORATORIUM. Ćwiczenie nr 02. Programowanie układu kontroli przerwań do obsługi układu licznika

Paradygmaty programowania

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

Język C zajęcia nr 11. Funkcje

System operacyjny Linux

Ćwiczenie 7 Matryca RGB

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

Mikroprocesor Operacje wejścia / wyjścia

Mikroinformatyka. Mechanizmy ochrony pamięci

Mikrokontrolery czyli o czym to będzie...

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

Symbole mapy numerycznej jako bloki rysunkowe. Elżbieta Lewandowicz Katedra Geodezji Szczególowej

Wstęp do programowania

Wzmacniacze. sprzężenie zwrotne

Laboratorium 3: Preprocesor i funkcje ze zmienną liczbą argumentów. mgr inż. Arkadiusz Chrobot

Wskaźniki w C. Anna Gogolińska

Wstęp do programowania

Rekurencja (rekursja)

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

Transkrypt:

no MACRO yes Wstępdo assemblera MA51 c.d. makrodefinicje Ryszard J. Barczyński, 2017 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego

Assembler Assembler to język programowania charakteryzujący się tym, że... jedna instrukcja assemblera jest tłumaczona na jeden rozkaz procesora... możliwy jest bezpośredni dostęp do wszystkich zasobów systemu... praktycznie każda architektura procesora posiada własny assembler Assemblery zwykle pracują we współpracy z linkerami, bibliotekarzami itp. Assemblery często posiadają wbudowane generatory makrodefinicji

składnia macro_name MACRO par1, par2,... park {linie instrukcji} Makrodefinicja umożliwia przypisanie nazwy grupie instrukcji Tak zdefiniowanej nazwy można używać w programie jak zwykłej instrukcji Jej użycie powoduje każdorazowo wstawienie zdefiniowanej zawartości

przykład definicji SAVE MACRO ; Makrodefinicja ; zachowuje ; na stosie ; kilka rejestrów PUSH ACC PUSH B PUSH PSW PUSH DPH PUSH DPL przykład drugiej definicji RESTORE MACRO ; Makrodefinicja ; odtwarza ze stosu ; rejestry zachowane ; przez makro SAVE POP DPL POP DPH POP PSW POP B POP ACC

przykład definicji Exchange MACRO p1, p2 ; Makrodefinicja ; zamienia ; zawartości ; dwóch komórek ; pamięci PUSH p1 PUSH p2 POP p1 POP p2 przykład użycia [...] DSEG Dana1: DS 1 Dana2: DS 1 CSEG [...] Exchange Dana1, Dana2 [...]

przykład definicji ZapalLED MACRO CLR P1.3 ZgasLED MACRO SETB P1.3 przykład użycia [...] JB FlagaLED, Lab01 ZgasLED JMP Lab02 Lab01: ZapalLED Lab02: [...]

Możliwe jest rekursyjne stosowanie makrodefinicji Assembler MA51 dopuszcza 32 poziomy rekursji W makrodefinicjach można używać symboli lokalnych Do ich definicji służy dyrektywa LOCAL W MA51 można zdefiniować do 16 symboli lokalnych Mogą to być etykiety oraz deklaracje danych

dyrektywa LOCAL składnia macro_name MACRO par1,par2,..park LOCAL symb [,symb] {linie instrukcji} Symbole oznaczone jako lokalne są dostępne tylko wewnątrz makrodefinicji Przy rozwinięciu makrodefinicji tworzone są dla nich unikalne nazwy

dyrektywa LOCAL przykład delay MACRO par1 LOCAL del0 P7,#par1 del0: DJNZ P7,del0 użycie P1,#0 delay 3 P1,#1 delay 5 wygeneruje kod Uni1: DJNZ Uni2: DJNZ P1,#0 P7,#3 P7,Uni1 P1,#1 P7,#5 P7,Uni2

Dyrektywy powtórzeń bloków Odmianami makrodefinicji są dyrektywy powtórzeń Umożliwiają one wielokrotne powtórzenia bloku tekstu Powtórzenia mogą być zagnieżdżone Dyrektywy te to REPT, WHILE, IRP, IRC

dyrektywa REPT składnia REPT liczba_powtórzeń {linie instrukcji} Wnętrze makrodefinicji zostanie powtórzone liczba_powtórzeń razy

dyrektywa REPT przykład shortdel MACRO REPT 3 NOP ; koniec bloku powtórzeń ; koniec makrodefinicji w wyniku użycia shortdel otrzymamy kod NOP NOP NOP

dyrektywa IRP składnia IRP par,<arg [,arg]> {linie instrukcji} Wnętrze makrodefinicji zostanie powtórzone dla każdego argumentu z listy Liczba powtórzeń jest równe liczbie argumentów

dyrektywa IRP przykład pulse MACRO port IRP element,<#0aah, #055h, #0AA> port,element ; koniec bloku powtórzeń ; koniec makrodefinicji w wyniku użycia pulse P1 otrzymamy kod P1,#0AAh P1,#055h P1,#0AAh

dyrektywa IRC składnia IRC par,<łańcuch_tekstowy> {linie instrukcji} Wnętrze makrodefinicji zostanie powtórzone dla znaku łańcucha tekstowego Liczba powtórzeń jest równa liczbie znaków łańcucha

dyrektywa IRC przykład printend MACRO IRC znak,<end> A,#'znak' CALL PrintZnak ; koniec bloku w wyniku użycia printend otrzymamy kod CALL CALL CALL A,#'E' PrintZnak A,#'N' PrintZnak A,#'D' PrintZnak

operator NUL przykład ZerujBit MACRO par IF NUL par P0,#0 ; bez parametru zeruj cały port ELSEIF CLR P0.par ; a z parametrem pojedynczy bit ENDIF Operator NUL umożliwia sprawdzenie czy parametr nie jest pusty

operator % przykład Dana EQU 10 MojeA MACRO par A,par wywołanie MojeA Dana wygeneruje A,Dana a wywołanie MojeA %Dana wygeneruje A,10 Operator % oblicza wartość numeryczną parametru przed jego przekazaniem

uwagi końcowe Makrodefinicje mogą znacznie skrócić program Makrodefinicje mogą uczynić program czytelniejszym... mogą też uczynić go zupełnie nieczytelnym Wielu programistów zupełnie nie używa makrodefinicji... nie ma obowiązku Nigdy, przenigdy nie myl makrodefinicji z podprogramami