, Kompilator ASEM 51 instrukcja obsługi 

[ Pobierz całość w formacie PDF ]

$RESTORE G $RS przywraca�poprzedni�stan�$LIST/$GEN/$COND
IV�Kompatybilność�z�asemblerem�firmy�Intel
Wraz�z�kompilatorem�ASM51�intel�zdefiniował�i�zaimplementował�język�asemblera�dla�mikrokontrolerów�
rodziny�MCS�51,�który�zawsze�był�jedynym�prawdziwym�standardem�w�świecie�8051.
Niestety�Intel�ogłosił� koniec�życia �ASM51�(wersja�finalna�2.3)�wszystkich�pozostałych�narzędzi�
programistycznych�do�końca�1993�roku.
Asembler�ASEM�51�jest�podzbiorem�standardu�Intel,�który�gwarantuje�maksymalną�kompatybilność�z�
istniejącymi�plikami�zródłowymi�8051.�Posiada�on�implementację�wszystkich�instrukcji�mnemonicznych�8051�
podobnie,�jak�bogaty�i�użyteczny�zestaw�pseudo�instrukcji�i�kontrolek�kompilatora�Intel.
IV.1�Obostrzenia
Od�czasu,�gdy�ASEM�51�generuje�pliki�w�formacie�Intel�HEX�(lub�absolutnym�OMF�51)�zamiast�relokowanych�
modułów,�cały�kod�dla�8051�musi�znajdować�się�w�jednym�pojedynczym�pliku.�W�konsekwencji�wszystkie�
pseudo�instrukcje,�które�współdziałają�z�relokowanymi�segmentami,�zewnętrznymi�lub�publicznymi�symbolami,�
nie�zostały�zaimplementowane:
PUBLIC
EXTRN
SEGMENT
RSEG
Intelowski�styl�makr�nie�jest�wspierany!�(Więc�znak�'%'�może�być�używany�w�komentarzach.)
Do�teraz�tylko�następujące�kontrolki�asemblera�i�ich�skróty�zostały�zaimplementowane:
|�kontrolki�główne skrót. |�kontrolki�ogólne skrót
����������+�����������������������������������������+�������������������������������������������������������
|�$DATE�() $DA |�$EJECT $EJ
|�$DEBUG $DB |�$GEN $GE
|�$NODEBUG $NODB |�$NOGEN $NOGE
|�$MACRO�()�$MR |�$GENONLY $GO
Kontlol� |�$NOMACRO $NOMR|�$INCLUDE�() $IC
ki |�$MOD51 $MO |�$LIST $LI
|�$NOMOD51 $NOMO|�$NOLIST $NOLI
Intel |�$PAGING $PI |�$SAVE $SA
|�$NOPAGING $NOPI |�$RESTORE $RS
|�$SYMBOLS $SB |�$TITLE $TT
|�$NOSYMBOLS $NOSB |
|�$PAGELENGHT�()�$PL |
|�kontrolki�główne skrót. |�kontrolki�ogólne skrót
����������+�����������������������������������������+�������������������������������������������������������
|�$PAGEWIDTH�()�$PW|
����������+�����������������������������������������+�������������������������������������������������������
|�$NOBUILTIN ����� |�$COND �����
Kontrol�|�$NOTABS ����� |�$NOCOND �����
ki |�$PHILIPS ����� |�$CONDONLY �����
ASEM� | |�$ERROR�() �����
51 | |�$WARNING�() �����
IV.2�Wyrażenia
Kontrolki�asemblera�nie�muszą�się�zaczynać�w�kolumnie�nr�1,�ale�mogą�być�poprzedzone�przez�dowolną�ilość�
spacji�lub�znaków�tabulacji.�Kontrolki�główne�mogą�być�również�poprzedzone�przez�linie�komentarza�i�
wyrażenia�$INCLUDE,�dołączone�pliki�include�zawierają�tylko�kolejne�wyrażenia�kontrolne�oraz�komentarze.
Plik�zródłowy�może�zawierać�puste�linie�i�linie�komentarza�za�wyrażeniem�END.�Aańcuchy�znaków�mogą�być�
również�zawarte�w�podwójnych�cudzysłowach.
Symbol�DATA�dla�rejestru�funkcji�specjalnych�PCON�jest�predefiniowany.
Operator�bitu�'.'�jest�legalny�we�wszystkich�wyrażeniach,�nie�tylko�w�tych,�które�pasują�do�segmentu�typu�BIT.
ASEM�51�przedstawia�zestaw�meta�instrukcji,�które�uzupełniają�instrukcje�języka�MCS�51�firmy�Intel,�alenie�są�
jego�cześcią.
Meta�instrukcje�IFxx,�ELSEIFxx,�ELSE�oraz�ENDIF�pozwalają�na�kompilację�warunkową,�do�czasu,�gdy�
wystąpią�meta�instrukcje�MACRO,�REPT,�ENDM,�EXITM�oraz�LOCAL�(i�niektóre�znaki�kontrolne)�z�
potężnego�języka�makr.
Po�szczegółowe�informacje�dotyczące�meta�instrukcji�zobacz�do�rozdziału� III.10�Kompilacja�warunkowa �oraz�
 III.11�Makroprocesor .
IV.3�Dalsze�różnice
By�uczynić�semantykę�unikalną,�szczególnie�w�odniesieniu�do�stosowania�operatorów�ogólnych�w�wyrażeniach�
jest�inna.�Dalej,�wyrażenia�z�operacjami�bitowymi� . �przechodzą�jako�wynik�do�typu�BIT,�a�nie�do�NUMBER.�
Typ�segmentów,�które�są�definiowane�przy�użyciu�EQU�lub�SET�zawsze�rozwijane�są�do�NUMBER.
W�przeciwnym�razie�może�być�trudne,�w�niektórych�wypadkach,�wymuszenie�definicji�symbolu�bez�typu.�Jest�to�
opisane�w�szczegółach�w�rozdziałach� III.4� oraz�w� III.7 .
Poza�instrukcją�DB,�łańcuch�stałej�zerowej�długości�'�'�jest�niedozwolony.
Kontrolka�$NOMOD51�blokuje�także�predefiniowane�adresy�w�przestrzeni�CODE.
Symbole�specjalne�AR0...AR7�są�predefiniowane�dla�banku�0�zanim�pierwszy�raz�pojawi�się�wyrażenie�USING.
V�Format�pliku�"List�File"
Plik�listy�(listingu)�kompilatora�ASEM�51�został�zaprojektowany�tak,�by�dostarczyć�użytkownikowi�tak�wiele�
informacji�na�temat�generowanego�kodu,�jak�to�możliwe.
Poza�listą�kodu�zródłowego,�występuje�pięć�podstawowych�struktur�w�listingu:
��nagłówek�strony
��nagłówek�pliku
��nagłówki�linii
��diagnostyka�błędu
��tabela�symboli�lub�powiązań�krzyżowych
Normalnie,�każda�strona�listingu�zaczyna�się�od�nagłówka�strony�w�formacie:
ASEM�51�V1.3 Copyright�(c)�2002�by�W.W.�Heinz PAGE�1
Identyfikuje�on�kompilator,�zawiera�informację�o�prawach�autorskich�i�pokazuje�informację�o�aktualnym�
numerze�strony�w�prawym�górnym�marginesie.�Po�nagłówku�strony,�linie�zródłowe�są�wypisywane�w�formacie�
listy.�Gdy�osiągnięta�zostaje�maksymalna�ilość�linii�na�stronę,�następny�nagłówek�strony�jest�wstawiany�po�
znaku�nowej�strony.
Jeśli�drukarka�nie�obsługuje�znaków�nowej�strony,�nagłówek�może�zostać�zablokowany�przy�pomocy�kontrolki�
$NOPAGING.�Ilość�linii�na�stronę�może�zostać�dostosowana�do�formatu�papieru�przy�pomocy�kontrolki�
$PAGELENGHT.�Szerokość�nagłówka�(i�wszyskich�innych�linii)�może�być�ustawiona�przy�pomocy�kontrolki�
$PAGEWIDTH.
Nagłówek�pliku�pojawia�się�tylko�na�pierwszej�stronie.�Identyfikuje�on�kompilator,�wypisuje�listę�wszystkich�
plików�wejściowych�i�wyjściowych�i�oznacza�kolumny�dla�nagłówków�linii.�Typowy�nagłówek�pliku�wygląda�w�
następujący�sposób:
MCS�51�Family�Macro�Assembler�A�S�E�M� �5�1�V�1.3
========================================
Source�File: demo.a51
Object�File: demo.hex
List�File: demo.lst
Line I Addr Code Source
Bezpośrednio�po�nagłówku�pliku�następuje�lista�linii�kodu�zródłowego.
Każda�linia�kodu�zródłowego�jest�poprzedzona�nagłówkiem�linii.�Nagłówek�linii�składa�się�z�czterech�kolumn:�
numeru�linii,�pliku�dołączanego�lub�poziomu�makra,�adresu�linii�i�generowanego�kodu.
Domyślnie�nagłówki�linii�zawierają�znaki�tabulacji,�by�zaoszczędzić�przestrzeń�dyskową.
Jeśli�drukarka�lub�przeglądarka�plików�nie�obsługuje�znaków�tabulacji,�można�je�zastąpić�spacjami�przy�użyciu�
kontrolki�$NOTABS.
Kolumna� Line �zawiera�globalny�numer�linii.�Nie�jest�konieczny�lokalny�numer�linii�w�poszczególnych�plikach�
zródłowych,�ale�globalny�numer,�który�jest�zliczany�przez�główny�plik�zródłowy,�pliki�dołączane�i�wszystkie�
linie�ekspansji�makr.
Od�czasu,�gdy�pliki�dołączane�i�makra�mogą�być�zagnieżdżane�arbitralnie,�numer�linii�globalnej�jest�przerywany�
przez�znak� : dla�głównego�pliku�zródłowego,�wszystkich�poziomów�plików�dołączanych�i�przez�znak� + dla�
poziomów�ekspansji�makr.
Kolumna� I �zawiera�flagi�z�poziomem�zagnieżdżenia�plików�dołączanych�lub�makr.�W�głównym�pliku�
zródłowym,�kolumna�ta�jest�pusta.�Pierwszy�plik�dołączony�otrzymuje�poziom�1.�Jeśli�w�tym�pliku�dołączanym�
znajduje�się�kolejny�plik�dołączany,�otrzymuje�on�poziom�2,�itd.�Zasada�jest�identyczna�dla�zagnieżdżania�makr.�
Jeśli�makro�jest�wywoływane�z�głównego�pliku�zródłowego,�otrzymuje�ono�poziom�1.�Jeśli�makro�wywołuje�
kolejne�makro,�wywoływane�makro�otrzymuje�poziom�2,�itd. [ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • osy.pev.pl