EMAS: Różnice pomiędzy wersjami

Przejdź do nawigacji Przejdź do wyszukiwania
Dodane 151 bajtów ,  26 lut 2016
(Nie pokazano 4 pośrednich wersji utworzonych przez tego samego użytkownika)
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 (ale 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]]).
Repozytorium źródeł EMAS: https://github.com/jakubfi/emas


= Wywołanie =
= Wywołanie =
Linia 54: Linia 56:
  ?GVZ
  ?GVZ


Wewnętrznie EMAS operuje na 32-bit liczbach ze znakiem. Kiedy ostateczna wartość będąca wynikiem operacji ma zostać umieszczona w obiekcie wynikowym, jej zakres jest sprawdzany i użytkownik jest informowany o ewentualnym przekroczeniu zakresu. Wyjątkiem jest argument dyrektywy '''.dword''', który jest 32-bit liczbą w kodzie U2.
Wewnętrznie EMAS operuje na 32-bit liczbach ze znakiem. Kiedy ostateczna wartość będąca wynikiem operacji ma zostać umieszczona w obiekcie wynikowym, jej zakres jest sprawdzany i użytkownik jest informowany o ewentualnym jego przekroczeniu. Wyjątkiem jest argument dyrektywy '''.dword''', który jest 32-bit liczbą w kodzie U2.


=== Znaki ===
=== Znaki ===
Linia 88: Linia 90:
=== Łańcuchy ===
=== Ł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 (w przypadku dyrektyw '''.ascii''' i '''.asciiz''') używając jednej z sekwencji unikowych:
Łańcuchy znaków są ciągami znaków ujętymi w podwójne cudzysłowy. Poszczególne znaki można zapisywać dosłownie, lub (w przypadku dyrektyw '''.ascii''' i '''.asciiz''') używając jednej z sekwencji unikowych:


* \0'''yyy''' - gdzie '''yyy''' jest ósemkowym kodem znaku
* \0'''yyy''' - gdzie '''yyy''' jest ósemkowym kodem znaku
Linia 150: Linia 152:
  .global snprintf
  .global snprintf
  .global strdup
  .global strdup
 
  printf:
  printf:
  ...
  ...
Linia 156: Linia 158:
  ...
  ...
  strdup:
  strdup:
 
  procedura:
  procedura:
  .global procedura
  .global procedura
Linia 276: Linia 278:
'''Składnia:''' .r40 ''łańcuch_r40''
'''Składnia:''' .r40 ''łańcuch_r40''


Zapisuje w programie wynikowym podany łańcuch, kodując go po trzy znaki R40 na słowo maszynowe.
Zapisuje w programie wynikowym podany łańcuch, kodując go po trzy znaki R40 na słowo maszynowe. '''UWAGA:''' W kodzie R40 można użyuwać jedynie liter, liczb i znaków specjalnych: _, #, %.


=== .res ===
=== .res ===

Menu nawigacyjne