EMAS: Różnice pomiędzy wersjami

Przejdź do nawigacji Przejdź do wyszukiwania
Dodane 2633 bajty ,  11 lut 2014
brak opisu edycji
Nie podano opisu zmian
Nie podano opisu zmian
Linia 1: Linia 1:
EMAS jest assemblerem skrośnym dla MERRY 400, używającym, w odróżnieniu od [[ASSEM]], składni bliższej współczesnym assemblerom, oraz mnemoników MERY 400 (bez przyrostków zależnych od lokalizacji argumentu, patrz: [[Lista rozkazów]]).
EMAS jest assemblerem skrośnym dla MERRY 400, używającym, w odróżnieniu od [[ASSEM]], składni bliższej współczesnym assemblerom, oraz mnemoników MERY 400 (ale bez przyrostków zależnych od lokalizacji argumentu, patrz: [[Lista rozkazów]]).


= Wywołanie =
= Wywołanie =
Linia 20: Linia 20:
** '''-v''' - wyświetl informacje o wersji i zakończ działanie
** '''-v''' - wyświetl informacje o wersji i zakończ działanie
** '''-h''' - wyświetl pomoc i zakończ działanie
** '''-h''' - wyświetl pomoc i zakończ działanie
= Opis języka =
== Komentarze ==
EMAS pozwala na użycie komentarzy jedo- i wieloliniowych:
; samotny komentarz jednoliniowy
lw r1, 2 ; komentarz jednoliniowy na końcu dowolnej linii
/* komentarz
    wieloniniowy
*/
lw r1, 2 /* komentarz wieloliniowy, choć tak naprawdę w jedej linii */
== Stałe ==
Stałymi w programie mogą być liczby całkowite, liczby zmiennoprzecinkowe oraz łańcuchy znaków.
=== Liczby całkowite ===
Liczby całkowite można zapisywać w systemie binarnym, ósemkowym, dziesiętnym lub szesnastkowym, np:
0b1101110000
0177
-931
0xffa9
Istnieje jeszcze jeden sposób zapisu stałych całkowitoliczbowych, wynikający z ułożenia [[Rejestry i wskaźniki|wskaźników w rejestrze R0]], gdzie poszczególnym bitom przypisany jest jednoliterowy symbol ze zbioru (Z, M, V, C, L, E, G, Y, X). Można dzięki niemu zapisać liczbę szesnastobitową z ustawionymi na 1 bitami, które odpowiadają danym wskaźnikom. Przykłady takiego zapisu stałych:
?ZM
?GVZ
EMAS przechowuje liczby całkowite jako 32-bit liczby w kodzie U2 i na takich liczbach operuje. W trakcie umieszczania liczb w obiekcie wynikowym są one obcinane do 16 najmłodszych bitów. Wyjątkiem jest argument dyrektywy '''.dword''', który jest 32-bit liczbą w kodzie U2.
=== Liczby zmiennoprzecinkowe ===
Akceptowane są następujące sposoby zapisu liczb zmiennoprzecinkowych:
9
1.2
0.003
-9.125e-2
1e4
Jedynym miejscem w programie, w którym może wystąpić liczba zmiennoprzecinkowa, jest argument dyrektywy '''.float'''.
=== Łańcuchy ===
Łańcuchy znaków są ciągami 8-bit znaków ujętymi w podwójne cudzysłowy. Poszczególne znaki można zapisywać dosłownie, lub używając jednej z sekwencji unikowych:
* \0'''yyy''' - gdzie '''yyy''' jest ósemkowym kodem znaku
* \x'''yy''' - gdzie '''yy''' jest szesnastkowym kodem znaku
* \'''y''' - umożliwia zakodowanie jednego znaków specjalnych (wartości '''y''' inne niż poniżej są niepoprwane):
** \n - nowa linia
** \t - tabulacja pozioma
** \r - powrót karetki
** \f - wysuw strony
** \\ - dosłowny ukośnik w tył
** \" - dosłowny podwójny cudzysłów
Przykłady poprawnych łańcuchów znaków:
"MERA-400\n"
"\xab\xac\xad"
"\"napis\""
Umieszczając łańcuchy w programie wynikowym EMAS lokuje każde dwa kolejne sąsiadujące ze sobą znaki kolejno w starszej i młodszej połówce 16-bit słowa. Jeśli łańcuch zawiera nieparzystą liczbę znaków, to w ostatnim słowie na pozycji młodszego bajtu znajdzie się wartość 0.
== Symbole ==
== Zmienne ==
== Wyrażenia ==
== Dyrektywy assemblera ==
== Rozkazy ==

Menu nawigacyjne