, 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