1 / 13

Budowa programu w asemblerze

Budowa programu w asemblerze W ogólnym przypadku linia programu w asemblerze ma następującą budowę: < pole etykiety > < pole mnemonika > < pole argumentów > < pole komentarza > na przykład: tuskocz: add a,r0 ;dodanie do akumulatora liczby z R0 mov r6,a ;odeslanie sumy do R6. gdzie:

kyna
Download Presentation

Budowa programu w asemblerze

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Budowa programu w asemblerze W ogólnym przypadku linia programu w asemblerze ma następującą budowę: <pole etykiety> <pole mnemonika> <pole argumentów><pole komentarza> na przykład: tuskocz: add a,r0;dodanie do akumulatora liczby z R0 mov r6,a;odeslanie sumy do R6

  2. gdzie: <pole etykiety> - 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; <pole mnemonika> - obszar przeznaczony na wpisanie symbolicznej nazwy rozkazu; w polu tym wpisuje się także tzw. dyrektywy asemblera (patrz dalej);

  3. gdzie-c.d.: <pole argumentów> - obszar, którego wypełnienie jest opcjonalne - zależne od wymagań wpisanego w <polu mnemonika> rozkazu, pole to jest przeznaczone na listę argumentów rozkazu; <pole komentarza> - 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).

  4. 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

  5. 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’

  6. 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ła znaczenie reprezentacja binarna ‘A’ pojedynczy znak ASCII 41h ‘tekst’ ciąg znaków ASCII 74h,65h,6Bh,73h,74h 787, 787D liczba dziesiętna 0313h 10011B liczba binarna 13h 2AFh liczba szesnastkowa 02AFh 2A0H liczba szesnastkowa 02A0h 0F00h liczba szesnastkowa 0F00h 0x2AF, $2AF liczba szesnastkowa 02AFh 0457 liczba ósemkowa 012Fh 457Q, 457q liczba ósemkowa 012Fh 457O, 457o liczba ósemkowa 012Fh identyfikator o przypisanej wartości zgodna z wartością

  7. Wykorzystanie wyrażeń Przykładowo, zamiast sekwencji deklaracji: zmienna1 equ 4500h zmienna2 equ 4502h zmienna3 equ 4504h zmienna4 equ 4508h możemy zapisać: zmienna1 equ 4500h zmienna2 equ zmienna1+2 zmienna3 equ zmienna2+2 zmienna4 equ zmienna3+4 Wynik asemblacji - taki sam, ale przy drugim zapisie łatwiejsze poprawki

  8. Dostępne operatory wyrażeń:

  9. 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.

  10. Dyrektywy asemblera

  11. Dyrektywy asemblera

  12. Dyrektywy asemblera

  13. Dyrektywy asemblera

More Related