Przejdź do zawartości

SAS (asembler)

Z Wikipedii, wolnej encyklopedii

SAS (system adresów symbolicznych) − rodzina makroasemblerów polskich komputerów XYZ, ZAM-2 i ZAM-41, oraz radzieckiego komputera Urał 2.[1]

System programowania SAS został opracowany przez grupę SAKO pod kierownictwem profesora L. Łukaszewicza w latach 1959–1960 jako zewnętrzny język programowania dla komputera XYZ. Później system został rozbudowany i unowocześniony, by współpracować z komputerem ZAM-2. SAS jest półautomatycznym kodem, który znacznie ułatwia pracę programistów, eliminując konieczność ręcznego przydzielania miejsca w pamięci. Pozwala on na symboliczne adresowanie części instrukcji, a część operacyjna instrukcji jest przechowywana w postaci maszynowej, składającej się z dwóch liter będących skrótem polskich nazw instrukcji.

Dodatkowo, system SAS umożliwia automatyczne włączanie podprogramów zapisanych w pamięci pomocniczej do programów, dzieli programy na rozdziały oraz upraszcza prezentację wartości liczbowych dla komputera. Dzięki temu SAS znacznie ogranicza liczbę błędów popełnianych przez programistów, którzy wcześniej musieli wprowadzać rzeczywiste adresy do adresowych części instrukcji maszynowych. Skutkiem tego skrócenia czasu potrzebnego na sprawdzanie programów jest zwiększenie efektywności i szybkości ich tworzenia.[2]

Lista rozkazów

[edytuj | edytuj kod]

W literaturze podany jest zbiór rozkazów symbolicznych dla maszyny cyfrowej ZAM-2. Obejmuje on 32 pozycje. Liczba rozkazów wynika z liczby bitów przeznaczonej na część operacyjną rozkazu (5).

Kod
operacyjny
Mnemonik Opis rozkazu
0 SS Skocz i stop.
1 WR Wykonaj rozkaz wskazany adresem, po czym wróć do wykonywanego programu.
2 PG Przygotuj przepisywanie z wejścia albo bębna do pamięci operacyjnej lub z pamięci na wyjście lub bęben.
3 SK Skok bezwarunkowy.
4 SZ Skocz, jeśli w akumulatorze jest 0.
5 SP Skocz, jeśli w akumulatorze jest liczba dodatnia.
6 SN Skocz, jeśli został zasygnalizowany nadmiar.
7 SW Skocz, jeśli liczba jedynek w przeczytanym rządku taśmy była parzysta.
8 SB Przeskocz dwa rozkazy, jeśli zawartość B-rejestru i wskazanego adresem miejsca pamięci są jednakowe.
9 BT Binarna taśma.
10 UA Umieścić w akumulatorze liczbę pobraną z pamięci wskazanej adresem.
11 UM Umieścić liczbę pobraną z pamięci w rejestrze mnożnika.
12 UB Umieścić liczbę pobraną z pamięci w B-rejestrze.
13 DB Dodaj liczbę pobraną z pamięci do zawartości B-rejestru.
14 BB Odejmij liczbę pobraną z pamięci od zawartości B-rejestru.
15 RB Umieścić w rejestrze bębnowym liczbę z pamięci wskazanej adresem.
16 PP Przepisz 1 słowo z wejścia lub bębna do pamięci lub z pamięci na bęben albo na wyjście.
17 PA Prześlij zawartość akumulatora do miejsca pamięci wskazanego adresem.
18 PM Prześlij zawartość rejestru mnożnika do pamięci.
19 PB Prześlij zawartość B-rejestru do pamięci.
20 OK Zaokrąglij zawartość akumulatora i prześlij wynik do pamięci.
21 LW Przesuń w lewo łączną zawartość akumulatora i rejestru mnożnika.
22 PW Przesuń w prawo łączną zawartość akumulatora i rejestru mnożnika.
23 LC Przesuń cyklicznie w lewo zawartość akumulatora.
24 DO Dodaj słowo pobrane z pamięci do zawartości akumulatora.
25 OD Odejmij słowo pobrane z pamięci od zawartości akumulatora.
26 OB Odejmuj wartość bezwzględną słowa pobranego z pamięci od wartości bezwzględnej zawartości akumulatora.
27 MN Pomnóż słowo z pamięci przez zawartość rejestru mnożnika. 70-bitowy wynik umieścić w akumulatorze i rejestrze mnożnika traktowanych jako całość.
28 DZ Łączną zawartość akumulatora i rejestru mnożnika podziel przez liczbę pobraną z pamięci, iloraz umieścić w rejestrze mnożnika, resztę w akumulatorze.
29 KO Oblicz koniunkcję zawartości rejestru mnożnika i słowa pobranego z pamięci i zapisz ją w akumulatorze.
30 AL Oblicz alternatywę słowa pobranego z pamięci i zawartości akumulatora.
31 NI Nic nie rób.

Bibliografia

[edytuj | edytuj kod]
  • K. Fiałkowski: Autokody i programowanie maszyn cyfrowych. Warszawa: WNT, 1976.

Przypisy

[edytuj | edytuj kod]
  1. Jan Szmelter, Język SAS dla maszyny cyfrowej Urał-2 : [skrypt], Wojskowa Akademia Techniczna, 1968 (pol.).
  2. Władysław Turski, Some Results of Research on Automatic Programming in Eastern Europe, Franz L. Alt, Morris Rubinoff (red.), t. 5, Elsevier, 1964, s. 23–108 [dostęp 2023-07-09] (ang.).