background image

Podstawy programowania 

systemowego 

Dr inż. Zbigniew Lach 

 

konsultacje: poniedziałek, 16:15-17:00 

wtorek, 10:15-11:00 

 

 

background image

 

OPROGRAMOWANIE 

UŻYTKOWE 

 

OPROGRAMOWANIE 

SYSTEMOWE 

 

HARDWARE 

System komputerowy 

background image

oprogramowanie systemowe

  

 realizuje funkcje konieczne dla działania 
systemu komputerowego (świadczy usługi 
sprzętowi komputerowemu) 

 pojęcie szersze niż systemy operacyjne 

 w skład  o.s. wchodzi każde oprogramowanie, 
z którym użytkownik nie ma bezpośredniej 
styczności. 

Programowanie systemowe

 = rodzaj programowania 

systemów oprogramowania  

background image

Specyfika: 

Programista uwzględnia i aktywnie wykorzystuje cechy 
sprzętu i inne właściwości systemu, na którym program 
jest uruchomiony 

 

język niskiego poziomu 

środowisko o limitowanych zasobach  

bezpośredni i surowy dostęp do pamięci i kontroli 

 

wykonania  

ma małą bibliotekę uruchomieniową (albo wcale)  

 Program systemowy jest bardzo efektywny i 
ma małe narzuty uruchomieniowe

  

background image

Narzędzia wspomagania programowania systemowego 

 

Język asemblera; ograniczenia asemblera 

 

Makroasembler, 

relokowalność, dyrektywy 

 

Konsolidacja i 

ładowanie programu  

 

Programowanie 

modułowe w języku asemblera 

 

Procedury, parametry, zmienne 

wewnętrzne 

 

Wykonywanie 

działań na reprezentacjach danych 

 

Struktury danych 

 

Sterowanie programem 

 

Funkcje systemowe 

 

Sterowanie procesami 
  

Program wykładu  

background image

Zaliczenie przedmiotu: min. 50% punktów z dwóch 
kolokwiów:  

(I) 14 kwietnia 

(II) 16 czerwca  

Literatura podstawowa: 

1. A. Silberschatz. P.B. Galwin. "Podstawy systemów 

operacyjnych", WNT. Warszawa 2000  

2. Gary Syck, "Turbo Assembler. Biblia użytkownika" 

LT&P. Warszawa  1994 

3. W. Stallings, "Organizacja i architektura systemu 

komputerowego", WNT, Warszawa 2000 

 

background image

Wykład 1 

 

Oprogramowanie systemowe 

Asembler 

background image

Hierarchia oprogramowania  

Poziom 

Opis 

Program aplikacyjny 

Oprogramowanie 
zaprojektowane dla określonego 
zastosowania 

Język wysokiego 
poziomu (HLL) 

 

Program

y są kompilowane z HLL 

na język asemblera lub 
maszynowy, n.p. C++, Pascal, 
Java, Visual Basic. 

background image

Poziom 

Opis 

System operacyjny  

(loadery) 

Zawiera procedury, które mogą 
być wywoływane z programów 
napisanych w HLL lub 
asemblerze. 

Może być 

wyposażony w interfejs 
programów aplikacyjnych (API). 

Asembler (ASM) 

(konsolidatory, edytory, 
biblioteki) 

Stosuje mnemoniki instrukcji 
bezpośrednio odpowiadające 
rozkazom języka maszynowego. 

Hierarchia oprogramowania.  

background image

Poziom 

Opis 

Język Maszynowy (ML)  Instrukcje numeryczne i 

operandy, które mogą być 
umieszczone w pamięci 
komputera i bezpośrednio 
wykonywane przez procesor. 

Hierarchia oprogramowania.  

background image

Planowanie  produktu 

Projekt. systemu 

Projektowanie  sprzętu 

Projekt. programu 

Zgodność z założeniami? 

Projektowanie systemu komputerowego 

background image

Projektowanie programu

Określenie właściwości

Sporządzanie schematu

blokowego

Kodowanie

Edycja programu

źródłowego

ASEMBLACJA

(TŁUMACZENIE)

Testowanie programu

Testowanie systemu

BŁĘDY

?

BŁĘDY

?

TAK 

NIE 

TAK 

NIE 

użycie narzędzi do 

programowania 

systemowego 

Projektowanie systemu komputerowego 

background image

Narzędzia programowania systemowego 

background image

Narzędzia systemowe wspomagające 

poszczególne etapy procesu projektowania  

• Programy komputerowe  
   

Posługują się dobrze zrozumiałą dla człowieka symboliką 

 

 
• Urządzenia pomiarowe (testujące) 

 

 

Umożliwiają sprawdzenie zgodności z założeniami (testery cyfrowe) 

background image

Programy wspomagające  projektowanie 

• Asembler 

- stosuje mnemoniki instrukcji 

bezpośrednio 

odpowiadające rozkazom języka maszynowego (+linker, 
loader) 

• Konsolidator/loader - 

umożliwia scalenie programu z 

odrębnych modułów / załadowanie do pamięci i 
przekazanie sterowania

 

 

• Biblioteki - 

gotowe programy lub fragmenty programów, 

wykonujących standardowe operacje (np. mnożenie, 
dzielenie liczb, we-wy, itp..) 

background image

• Symulator - 

symuluje zachowanie się systemu podczas 

wykonania programu (tańsze i wygodniejsze niż 
debugger) 

 

• Debugger - 

umożliwia kontrolowane wykonywanie 

programu przez system, na przykład krok po kroku, w 
celu obserwacji zgodności działania programu z 
zamiarem jego autora 

 

Programy wspomagające  projektowanie 

background image

Funkcje narzędzi  systemowych 

Program 

źródłowy 

asembler 

Kod 

wynikowy 

Loader 

Kod wykonywalny 

Konsoli- 

dator 

• Zależność od procesora 

– różne formaty instrukcji, różne rozkazy 

symulator 

debugger 

sprzęt 

background image

Asembler 

Narzędzia programowania systemowego 

background image

Język  asemblera 

• Niskopoziomowy język 

programowania związany 
z konkretnym  procesorem 
ściśle odpowiadający 
zestawowi instrukcji 
języka maszynowego 
 

• Każda instrukcja ASM 

odpowiada dokładnie 
jednej instrukcji ML 

background image

Porównanie HLL i ASM 

Typ 

zastosowań 

HLL 

ASM 

Oprogramowanie 
ogólnego 
przeznaczenia na 
jedną platformę 
komputerową 

Struktury 
formalne języków 
ułatwiają 
zorganizowanie 
programu 

Brak struktur 
formalnych 

Oprogramowanie 
ogólnego 
przeznaczenia na 
wiele platform 
komputerowych 

Przenośne 
 

Trudne do 
wykonania  

background image

Porównanie HLL i ASM 

Typ 

zastosowań 

HLL 

ASM 

Sterownik 
urządzenia 

Złożone techniki 
programowania 

Dostęp do 
hardware’u 
bezpośredni i 
prosty 

Systemy 
wbudowane i gry 
wymagające 
bezpośredniego 
dostępu do 
urządzeń 

Dają w wyniku 
zbyt długie 
programy 
maszynowe; 
mogą być 
nieefektywne  

Idealny, 

ponieważ 

program 
maszynowy jest 
krótki i może być 
wykonywany 
szybko 

background image

Cechy programów  w ASM  

• Zwiększenie szybkości aplikacji 

– bezpośredni dostęp do hardware’u (np.: 

bezpośredni dostęp do portów zamiast 
wywołania systemowego) 

– dobry program ASM jest szybszy i zajmuje 

mniej miejsca (krytyczne fragmenty programu 
w ASM) 

• Ograniczenia 

– Bardzo szybkie i zwarte lecz przystosowane 

tylko do jednego typu procesora

 

 

background image

  
  

  
  

  

;zaczynam pisać program 

  

  

ORG 

    

0000H 

  

  

  

;rozmieść program od adresu 0 

  

  

DANE  

  

EQU  

  

10H 

    

  

;przypisz nazwie DANE  wartość 10 heks 

            

  

START:   

  

MOV A,   #DANE 

    

;wpisz dane do rejestru A 

  

JMP 

START 

  

;skok do linii oznaczonej etykietą START 

  

  

  

  

  

Przykładowy  program w ASM 

  

background image

Formalizm  języka  asemblera 

Język  asemblera

  - 

sposób  przedstawiania  programu 

tak,  aby 

był  on  zrozumiały  dla  asemblera  (bliski 

językowi  maszynowemu  –  mały  nakład  pracy  przy 
tłumaczeniu) 

 

Język asemblera

 jest 

strukturą sformalizowaną.  

Rządzą nim: 
   

reguły leksykalne (znaczeniowe) 

   

reguły składni 

 

background image

W języku asemblera: 
 
- 

program składa się z oddzielnych wierszy 

- 

w jednym wierszu umieszcza się jedno polecenie 

- instrukcja mikroprocesora  
- dyrektywa asemblera 

 

- opcjonalnie komentarz.  

Formalna składnia języka asemblera 

Formalizm  języka  asemblera 

background image

Formalizm  języka  asemblera 

Asembler typowo 

rozróżnia jednostki leksykalne : 

program  

wiersz  

instrukcja  

operand

  

background image

<program>  ::= <wiersz> <koniec pliku > | <wiersz> <program> 
     

  - 

program jest ciągiem 1 lub wielu wierszy 

 

<wiersz> ::= <definicja> | <dyrektywa> |  <polecenie> | <komentarz> 
      

wiersz zawiera  definicję, polecenie lub komentarz 

 

<definicja> ::= <symbol > 

=

 <operand> <komentarz> 

     

  - 

definicja jest symbolem po którym następuje znak przypisania oraz 

operand  
 

<polecenie> ::= <etykieta> <instrukcja> <komentarz>  | <instrukcja> 
<komentarz>  | <komentarz> 
       

etykieta i instrukcja są w poleceniu opcjonalne 

 

<etykieta> ::= <symbol> : 
 

etykieta jest symbolem po którym umieszczono dwukropek 

 

<instrukcja> ::= <rozkaz> <operand> | <rozkaz> 
      

- operand jest opcjonalny w instrukcji 

 

Formalizm  języka  asemblera 

background image

<komentarz>  ::= 

;

<tekst> <koniec linii> | <koniec linii> 

     

  - 

komentarz przed końcem linii jest opcjonalny 

 
<rozkaz> ::= ADD  | ADDC  | SUB | SUBC  | ... | DJNZ 
      

rozkazami są: ADD,ADDC,SUB,SUBC,...,DJNZ  (

mnemoniki

 

<dyrektywa> ::= DB | ... | ORG 
      

dyrektywami są: DB,...,ORG

 

 
<operand> ::= <symbol > | <liczba> 
      

operand jest symbolem lub liczbą 

 
<tekst>::= <znak alfanumeryczny>  ... <znak alfanumeryczny> 
<symbol>::= <litera> <znak alfanumeryczny>  ...<znak alfanumeryczny> 
<znak alfanumeryczny>::=<litera>  | <cyfra> 
<liczba>::=<cyfra> | <cyfra> 
 
 

 

 

Formalizm  języka  asemblera 

background image

Mnemoniki  rozkazów 

Mnemonik

 

+ wskaźnik (wskaźniki) trybu adresowania i 

predefiniowane nazwy rejestrów 

 rozpoznanie instrukcji 

procesora (kod instrukcji) 

 

Mnemoniki w przykładowym języku asemblera: 

Mnemonik 

Opis 

LJMP 

skocz do adresu podanego w polu argumentów 
instrukcji 

CPL 

neguj bit, którego adres podano w argumencie 

MOV 

prześlij argument źródłowy do lokalizacji argumentu            
przeznaczenia 

background image

Mnemonik 

Opis 

LCALL 

wywołaj procedurę, której adres podano w 
argumencie 

SJMP 

skocz do adresu wyznaczonego na podstawie stanu 
licznika rozkazów i przesunięcia zawartego w 
argumencie 

DJNZ 

zmniejsz o jeden stan rejestru lub komórki pamięci, 
a następnie skocz, jeżeli wynik zmniejszenia jest 
różny od zera 

RET 

wróć z podprogramu 

Mnemoniki  rozkazów 

background image

Tryb adresowania 

Wskaźniki trybu adresowania 

- 

identyfikują tryb adresowania 

- zwykle jednoznakowe symbole umieszczone przed 
 

lub po argumencie  

 

W przykładowym języku asemblera: 

wskaźnik 

Opis 

adresowanie natychmiastowe 

adresowanie pośrednie 

adresowanie bezpośrednie 

background image

Dyrektywy  asemblera 

Dyrektywy asemblera  
• nie odpowiadają instrukcjom ML 
• nie są tłumaczone na ML 
• służą do sterowania pracą asemblera. 
• posiadają przypisane zwykle kilkuznakowe 

symbole 

 

 

-  

ORG,  

-  

ABS, REL 

-  

IF, ENDIF 

-  

DB, DW 

background image

Dyrektywy  asemblera 

Dyrektywy między innymi służą do: 
 
• nadawania adresu początkowego kodowi 

maszynowemu linii programu 

• oznaczenia początku segmentu, który ma być 

tłumaczony na postać relokowalną 

• sterowania wykonaniem asemblacji 
• zarezerwowania obszaru w pamięci i przypisaniu 

wartości poszczególnym bajtom 

 

background image

  
  

  
  

  

;zaczynam pisać program 

  

  

ORG 

    

0000H 

  

  

  

;rozmieść program od adresu 0 

  

  

DANE  

  

EQU  

  

10H 

    

  

;przypisz nazwie DANE  wartość 10 heks 

            

  

START:   

  

MOV A,   #DANE 

    

;wpisz dane do rejestru A 

  

JMP 

START 

  

;skok do linii oznaczonej etykietą START 

  

  

  

  

  

Ilustracja elementów składowych programu  

  

dyrektywa inicjalizacji adresu instrukcji  

d

yrektywa przypisania wartości  

etykieta  

mnemonik  

komentarz  

background image

Realizacja funkcji asemblera (programu 

tłumaczącego)  

background image

• Zamienić mnemoniki kodów operacji na odpowiedniki 

w języku maszynowym 

 

• Zamienić symboliczne operandy na odpowiadające im 

adresy ich lokalizacji w komputerze 

 

• Zbudować instrukcje maszynowe we właściwym 

formacie 

 

• Zamienić stałe na  ich wewnętrzne reprezentacje 

maszynowe 

 

• Utworzyć program wynikowy i listing 

Funkcje asemblera 

background image

Zasada działania asemblera   

Asembler pobiera plik źródłowy i zamienia umieszczony tam 

tekst (w jęz. asemblera) na ciąg binarnych rozkazów 

maszynowych (język maszynowy). 

 
 Produktem asemblera są : 
plik wynikowy  (zwykle  z rozszerzeniem  .OBJ lub .HEX) 
plik listingu programu (rozszerzenie  .LST).  
 
Plik wynikowy zawiera program w języku maszynowym 

zapisany w formacie odpowiednim do dalszego 

przetwarzania przez inne programy narzędziowe.   

background image

asemblacja 

listing 

 

   Program w języku 
 asemblera
 

 

 

Plik wynikowy 

Funkcje 

asemblera 

background image

 

1            0097          LED 

 

EQU  97H 

     

2  0000: 02 01 00   

 

          LJMP 

START 

3  0100:            

 

 

          ORG 100H 

4  0100: B2 97       START:            CPL  LED 

      

5  0102: 74 0A       

 

          MOV  A,#10 

      

6  0104: 12 01 09   

 

          LCALL DELAY 

      

7  0107: 80 F7        

 

          SJMP START 

      

8  0109: 78 FF       DELAY:            MOV  R0,#0FFH 

      

9  010B: D8 FE      LOOP: 

 

DJNZ R0, LOOP 

          10  010D: D5 E0 F9   

 

 

DJNZ ACC, DELAY 

          11  0110: 22           

 

          RET 

Zawartość pliku listingu przykładowego programu 

background image

Proces tłumaczenia  programu. Zadania.

  

1.

Analiza leksykalna.  

2.

Analiza syntaktyczna (składniowa). 

3.

Określenie ilości bajtów zajmowanych przez kod każdej 
instrukcji. 

4.

Przypisanie instrukcjom odpowiadających im kodów. 

a)

tłumaczenie rozkazu na kod maszynowy,  

b)

przypisanie wartości stałym, 

c)

przypisanie wartości adresom. 

5.

Określenie miejsca w pamięci, w którym ma być umieszczony 
uzyskany kod maszynowy.  

background image

LED            EQU   

 97H 

                   LJMP    START 
                   ORG     100H 
START:      CPL      LED 
                   MOV   

A,#10 

        LCALL  DELAY 

                   SJMP  

START 

DELAY:      MOV   

R0,#0FFH 

LOOP:        DJNZ  

R0, LOOP 

                                DJNZ   

ACC, DELAY 

                                RET

 

 

Program w przykładowym języku asemblera. 

background image

Wiersz 

Etykieta/symbol 

Mnemonik/dyrektywa 

wsk 

Arg #1 

Arg #2 

1 

LED 

EQU 

97H 

2 

LJMP 

START 

3 

ORG 

100H 

4 

START: 

CPL 

LED 

5 

MOV A, 

10 

6 

LCALL 

DELAY 

7 

SJMP 

START 

8 

DELAY: 

MOV R0, 

0FFH 

9 

LOOP: 

DJNZ R0, 

LOOP 

10 

DJNZ 

ACC, 

DELAY 

11 

RET 

Wsk: wskaźnik adresowania 

Wyodrębnienie składowych przykładowego programu.  

background image

Mnemonik operacji 

Liczba bajtów 

kod 

LJMP 

3 

02 aa aa 

CPL 

2 

B2 a1 

MOV A 

2 

74 cc 

LCALL 

3 

12 aa aa 

SJMP 

2 

80 aw 

DJNZ R0 

2 

D8 aw 

DJNZ 

<komórka> 

3 

D5 a1 aw 

RET 

1 

22 

Uwagi: 
aa aa 

 

dwubajtowy adres bezwzględny,  pierwszy najbardziej  znaczący  bajt 

a1 

 

jednobajtowy adres bezwzględny 

aw 

 

jednobajtowy adres względny 

cc 

 

-  

jednobajtowa stała 

<komórka>   

predefiniowana nazwa komórki lub jednobajtowy adres bezwzględny 

Kody maszynowe instrukcji procesora niezbędne do zakodowania 

przykładowego programu.  

T

a

b

e

la

 k

o

d

ó

w

 i

n

s

tr

u

k

c

ji

 

background image

02  

 

 

LJMP 

START 

aa 

aa  

 

 

 

B2 

START:                    CPL 

LED 

a1       

74  

 

 

MOV 

A,#10 

cc        

 

 

12  

 

 

LCALL   DELAY 

aa 

aa 

80 

 

 

SJMP 

START 

aw 

78      DELAY:                     MOV  R0,#0FFH 

cc 

 

D8   LOOP:   

DJNZ 

R0, LOOP 

aw       

D5 

 

 

DJNZ  

ACC, DELAY 

a1 

aw     

 

 

22         

 

 

RET  

 

Częściowe tłumaczenie na język maszynowy przykładowego programu. 

LC=0000 

LC=0100 

LC=0102 

LC=0104 

LC=0107 

LC=0109 

LC=010B 

LC=010D 

LC=0110 

background image

Symbol 

l. Bajtów 

Bajt #1 

Bajt #2 

LED 

1 

97 

- 

START 

2 

01 

00 

DELAY 

2 

01 

09 

LOOP 

2 

01 

0B 

 

 

Kompletna tablica symboli dla przykładowego programu. 
 

T

a

b

e

la

 s

y

m

b

o

li

 

background image

02  

 

 

LJMP 

START 

aa 

aa  

 

 

 

B2 

START:                    CPL 

LED 

97       

74  

 

 

MOV 

A,#10 

0A    

 

 

12  

 

 

LCALL DELAY 

aa 

aa 

80 

 

 

SJMP 

START 

F7       

 

 

78      DELAY:                     MOV  R0,#0FFH 

FF 

 

D8   LOOP:   

DJNZ 

R0, LOOP 

FE 

D5 

 

 

DJNZ  

ACC, DELAY 

E0 

F9     

 

 

22 

 

 

RET 

Dodatkowe tłumaczenie przykładowego programu z podstawieniem wartości 

stałych i wartości przesunięć względnych. 

LC=0000 

LC=0100 

LC=0102 

LC=0104 

LC=0107 

LC=0109 

LC=010B 

LC=010D 

LC=0110 

background image

02  

 

 

LJMP 

START 

01 

00

  

 

 

 

B2 

START:                    CPL 

LED 

97       

74  

 

 

MOV 

A,#10 

0A    

 

 

12  

 

 

LCALL DELAY 

01 

09 

80 

 

 

SJMP 

START 

F7       

 

 

78      DELAY:                     MOV  R0,#0FFH 

FF 

 

D8   LOOP:   

DJNZ 

R0, LOOP 

FE 

D5 

 

 

DJNZ  

ACC, DELAY 

E0 

F9     

 

 

22 

 

 

RET 

Finalne tłumaczenie przykładowego programu z podstawieniem wartości stałych, 

przesunięć względnych i adresów. 

LC=0000 

LC=0100 

LC=0102 

LC=0104 

LC=0107 

LC=0109 

LC=010B 

LC=010D 

LC=0110 

background image

 

1          0097          LED 

 

EQU  97H 

     

2  0000: 02 01 00   

 

          LJMP 

START 

3  0100:            

 

 

          ORG 100H 

4  0100: B2 97       START:            CPL  LED 

      

5  0102: 74 0A       

 

          MOV  A,#10 

      

6  0104: 12 01 09   

 

          LCALL DELAY 

      

7  0107: 80 F7        

 

          SJMP START 

      

8  0109: 78 FF       DELAY:            MOV  R0,#0FFH 

      

9  010B: D8 FE      LOOP: 

 

DJNZ R0, LOOP 

          10  010D: D5 E0 F9   

 

 

DJNZ ACC, DELAY 

          11  0110: 22           

 

          RET 

Zawartość pliku listingu przykładowego programu 

background image

Problem odwołań w przód 

• Odwołanie w przód: do etykiety, która zdefiniowana jest w 

dalszej części programu 

 

 

1          0097          LED 

 

EQU  97H 

     

2  0000: 02 01 00   

 

          LJMP 

START 

3  0100:            

 

 

          ORG 100H 

4  0100: B2 97       START:            CPL  LED 

 

………………………. 

SYMTAB 

xxx 

yyy 

LED    97H 

START ??? 

97H 

background image

Schemat blokowy działania prostego asemblera jednoprzejściowego cz 1.  

Next

LC

0

W 1 kolumnie nazwa

Występuje w

tablicy symboli

Błąd

STOP

Wpisz do tablicy

Druga kolumna

W tablicy symboli

przypisz symbolowi

wartość E90

W tablicy symboli przypisz

symbolowi

wartość

Licznika

FIN

START

T

T

T

N

N

N

  

II ga kolumna 

symbol  lub  liczba? 

background image

Schemat blokowy działania prostego asemblera jednoprzejściowego cz.2.  

W 2 kolumnie

Dyrektywa

B

łąd

STOP

Wpisz do Licznika

Lokalizacji warto

ść

wyst

ępującą za

dyrektyw

ą ORG

Format instrukcji

zgodny z jednym z

dopuszczalnych

Określ typ

adresowania

Błąd

STOP

Do pliku wynikowego

wpisz kod instrukcji

określony na podstawie...

LC

LC+1

NEXT

N

N

N

T

T

N

  

FIN 

background image

Asembler  dwuprzejściowy 

A)  etap  zapisywania  tablicy  symboli 

(odwołań) 

  pierwsze 

przejście 

B) etap generacji kodu  

 drugie 

przejście 

  

ad A) Pierwsze 

przejście: dla każdego wiersza: 

1.

sprawdzenie 

składni. 

Jeżeli 

napotkano 

błędy, 

odpowiednia  informacja  wpisywana  jest  do  pliku  listingu 
(rozszerzenie .LST). 

2.

przydzielenie 

pamięci  niezbędnej  dla  kodu  programu 

(alokacja) 

3.

jeżeli  w  pierwszym  przejściu  wykryto  błędy  składni 

 

kończy pracę. 

background image

Asembler  dwuprzejściowy 

Ad  B) 

“obraz”  bajtów,  które  będą  załadowane  pod  poszczególne 

adresy w 

pamięci operacyjnej (nadanie wartości) .  

 

1.

Dla 

każdej linii tworzy odpowiadający jej 

finalny

 kod. 

2.

Rezultat  jest  zapisywany  do  pliku  listingu  (dla  analizy 
przez 

programistę). 

3.

Kod  programu  zostaje  zapisany  do  pliku  wynikowego 
(.OBJ  lub  .HEX), 

jeżeli  nie  wystąpiły  błędy  =  koniec 

przetwarzanie pliku 

źródłowego.  

background image

Przejście 1 

Przejście 2  

Plik  

przejściowy 

Plik 
wynikowy 

Program 
źródłowy 

OPTAB 

SYMTAB 

SYMTAB 

• Tablica kodów instrukcji (OPTAB) 

 

• Tablica symboli (SYMTAB) 

 

• Licznik lokalizacji (LC) 

Struktury  danych asemblera 

background image

Główne składowe i główne operacje asemblera