Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Asembler MCS51. Budowa programu w asemblerze W ogólnym przypadku linia programu w asemblerze ma następującą budowę: na przykład: tuskocz:adda,r0 ;dodanie.

Podobne prezentacje


Prezentacja na temat: "Asembler MCS51. Budowa programu w asemblerze W ogólnym przypadku linia programu w asemblerze ma następującą budowę: na przykład: tuskocz:adda,r0 ;dodanie."— Zapis prezentacji:

1 Asembler MCS51

2 Budowa programu w asemblerze W ogólnym przypadku linia programu w asemblerze ma następującą budowę: na przykład: tuskocz:adda,r0 ;dodanie do akumulatora liczby z R0 movr6,a ;odeslanie sumy do R6 Asembler MCS51 2/14

3 gdzie: - obszar o szerokości min. 1 znaku, przeznaczony na wpisywanie identyfikatorów tzw. etykiet po etykiecie musi występować dwukropek i spacja (': '), oddzielają on wtedy etykietę od pozostałej zawartości linii i zwiększają czytelność programu; - obszar przeznaczony na wpisanie symbolicznej nazwy rozkazu; w polu tym wpisuje się także tzw. dyrektywy asemblera (patrz dalej); Asembler MCS51 3/14

4 gdzie-c.d.: - obszar, którego wypełnienie jest opcjonalne - zależne od wymagań wpisanego w rozkazu, pole to jest przeznaczone na listę argumentów rozkazu; - opcjonalny obszar, którego początek jest identyfikowany przez znak średnika (‘;’), jest on przeznaczony do wpisywania dowolnego tekstu objaśniającego działania realizowane przy pomocy użytych rozkazów mikroprocesora; w szczególnym przypadku komentarz może zaczynać w dowolnym miejscu linii programu, także od pierwszej kolumny (z pominięciem pozostałych pól). Asembler MCS51 4/14

5 Przeznaczenie etykiet: 1. Identyfikatory adresów w przestrzeni adresowej procesora - wskazują: adresy skoków, np: tutaj: add A,P0 adresy początkowe wywoływanych procedur, np: acall dod3B ;dodaj liczby 3-bajtowe adresy początkowe struktur danych, np: tablica1: db 12,234,0,11 ;tablica liczb 1-bajtowych Asembler MCS51 5/14

6 Przeznaczenie etykiet: 2. Identyfikatory stałych programowych, - ułatwia to ich użycie w tekście programie - zwiększenie czytelności programu, np: CR EQU 13 ;definicja znaku ASCII 3. Identyfikowanie zmiennych programowych, poprzez przypisanie im np. dyrektywą EQU adresu początkowego, np: data EQU 70h ;zmienna przechowujaca dzien mies..... mov r1,#data ;R1<-adres zmiennej ‘data’ Asembler MCS51 6/14

7 Stałe: są to wartości liczbowe lub znakowe zdefiniowane na etapie asemblacji programu lub pobierane z innych programów w procesie łączenia (linkowania). Przykłady: stałaznaczenie reprezentacja binarna ‘A’pojedynczy znak ASCII41h ‘tekst’ciąg znaków ASCII74h,65h,6Bh,73h,74h 787, 787Dliczba dziesiętna0313h 10011Bliczba binarna13h 2AFhliczba szesnastkowa02AFh 2A0Hliczba szesnastkowa02A0h 0F00hliczba szesnastkowa0F00h 0x2AF, $2AFliczba szesnastkowa02AFh 0457liczba ósemkowa012Fh 457Q, 457q liczba ósemkowa012Fh 457O, 457oliczba ósemkowa012Fh identyfikatoro przypisanej wartościzgodna z wartością Asembler MCS51 7/14

8 Wykorzystanie wyrażeń Przykładowo, zamiast sekwencji deklaracji: zmienna1 equ4500h zmienna2 equ4502h zmienna3 equ4504h zmienna4 equ4508h możemy zapisać: zmienna1 equ4500h zmienna2 equzmienna1+2 zmienna3 equzmienna2+2 zmienna4 equzmienna3+4 Wynik asemblacji - taki sam, ale przy drugim zapisie łatwiejsze poprawki Asembler MCS51 - wyrażenia 8/14

9 Dostępne operatory wyrażeń: Asembler MCS51 - wyrażenia 9/14

10 Dostępne funkcje wyrażeń: Następstwo operatorów: - nawiasy( ); - NOT, HIGH, LOW; - +, - (jednoargumentowe do określenia znaku argumentu); - *, /, MOD; - +, - (dwuargumentowe); - SHR, SHL; - AND, OR, XOR; -, >=, >, LT, LTE, EQ, NE, GTE, GT. Asembler MCS51 - wyrażenia 10/14

11 Asembler MCS51 - dyrektywy 11/14

12 Asembler MCS51 - dyrektywy 12/14

13 Asembler MCS51 - dyrektywy 13/14

14 Asembler MCS51 - dyrektywy 14/14

15 Asembler MCS51 - dyrektywy 15/14 CSEG, DSEG, ISEG, BSEG, XSEG – określają do jakiej przestrzeni adresowej (kodu progamu, RAM wewn. adresowanej bezpośrednio, pośrednio, bitów adresowalnych, RAM zewn.) mają być wpisane / przypisane definiowane po nich obiekty (kody rozkazów, stałe, etykiety). Warianty użycia: xSEG – „przełączenie” generacji kodu na wskazany segment, jeżeli był on już definiowany kontynuowane są adresy z wcześniejszego odwołania, jeżeli nie - adresacja startuje od 0. xSEG AT adres - „przełączenie” generacji kodu na wskazany segment ze wskazaniem adresu, od którego mają być umieszczane nowe obiekty.

16 Asembler MCS51 - dyrektywy 16/14 Przykład użycia dyrektyw segmentów: bseg at10h;wskazanie na bit adresowalny o adresie 10h, ;czyli 0-rowy bit w bajcie RAM wewn. o adresie 22h flaga1:dbit1;rezerwacja 1-bitowych znaczników na bitach flaga2:dbit1;10h i 11h (22h.0 i 22h.1) cseg at200h;wskazanie na obszar programu od adresu 200h kody:db23,33,51,92,99 ;5-elementowa tablica stałych programowych ;ulokowana na adresach 200h..204h org0 ajmpini;początek definiowania programu


Pobierz ppt "Asembler MCS51. Budowa programu w asemblerze W ogólnym przypadku linia programu w asemblerze ma następującą budowę: na przykład: tuskocz:adda,r0 ;dodanie."

Podobne prezentacje


Reklamy Google