Η ΓΛΧΑ ASSEMBLY TOY MIX



Σχετικά έγγραφα
Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

Η/Υ A ΤΑΞΕΩΣ ΑΕ Συστήματα Αρίθμησης. Υποπλοίαρχος Ν. Πετράκος ΠΝ

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

Ενδεικτικά Θέματα Στατιστικής ΙΙ

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

Κβαντικοί Υπολογισμοί. Πέκπηε Γηάιεμε

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

Οργάνωση και Δομή Παρουσιάσεων

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ

Σύνθεζη ηαλανηώζεων. Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο:

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ. 3. Έλαο θαηαρσξεηήο SISO ησλ 4 bits έρεη: α) Μία είζνδν, β) Δύν εηζόδνπο, γ) Σέζζεξεηο εηζόδνπο.

ΑΠΛΟΠΟΙΗΗ ΛΟΓΙΚΩΝ ΤΝΑΡΣΗΕΩΝ ΜΕ ΠΙΝΑΚΕ KARNAUGH

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε.

4) Να γξάςεηε δηαδηθαζία (πξόγξακκα) ζηε Logo κε όλνκα θύθινο πνπ ζα ζρεδηάδεη έλα θύθιν. Λύζε Γηα θύθινο ζηθ επαλάιαβε 360 [κπ 1 δε 1] ηέινο

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο

ΚΔΦ. 2.4 ΡΗΕΔ ΠΡΑΓΜΑΣΗΚΩΝ ΑΡΗΘΜΩΝ

Αιγόξηζκνη Δθρώξεζε, Δίζνδνο θαη Έμνδνο ηηκώλ Γνκή αθνινπζίαο. Δηζαγσγή ζηηο Αξρέο ηεο Δπηζηήκεο ησλ Η/Υ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ΜΕΛΕΣΗ E.O.K. ΜΕ ΑΙΘΗΣΗΡΑ ΘΕΗ

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84

2.4 Βαζικές ζσνιζηώζες/ ενηολές ενός αλγορίθμοσ

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ

Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο κόζηος ανά μονάδα παραγωγής. Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο ζηαθερό κόζηος ανά μονάδα παραγωγής

ΜΗΧΑΝΟΛΟΓΙΚΟ ΣΧΔΓΙΟ ΙΙ

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά:

ΣΕΙ ΙΟΝΙΩΝ ΝΗΩΝ ΣΜΗΜΑ: ΣΕΥΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ Ρέππα Μαξγαξίηα

ΠΛΗ36. Άσκηση 1. Άσκηση 2. Οη δηεπζύλζεηο ησλ 4 σλ ππνδηθηύσλ είλαη νη αθόινπζεο. Υπνδίθηπν Α: /27 Υπνδίθηπν Β:

Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training. Dipl.Biol.cand.med. Stylianos Kalaitzis

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ ΚΑΗ ΔΠΑΛ ΣΔΣΑΡΣΖ 25 ΜΑΨΟΤ 2016 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΑΡΥΔ ΟΗΚΟΝΟΜΗΚΖ ΘΔΧΡΗΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ - ΔΠΗΛΟΓΖ

ΘΔΜΑ 1 ο Μονάδες 5,10,10

Άσκηση 1 - Μοπυοποίηση Κειμένου

Αιγόξηζκνη Δνκή επηινγήο. Απιή Επηινγή ύλζεηε Επηινγή. Εηζαγσγή ζηηο Αξρέο ηεο Επηζηήκεο ησλ Η/Τ. introcsprinciples.wordpress.

ΛΙΜΝΗ ΤΣΑΝΤ. Σρήκα 1. Σρήκα 2

ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ: έζησ

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Ειζαγωγή ζηη Φωηογραθία. Χριζηάκης Σαζεΐδης EFIAP

ΕΝΤΟΛΕΣ WINDOWS ΚΑΙ UNIX

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

Constructors and Destructors in C++

Πξώην εξγαζηεξηαθό κάζεκα. Αξρηηεθηνληθή Η/Υ Ι

f '(x)g(x)h(x) g'(x)f (x)h(x) h'(x) f (x)g(x)

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots)

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

Γηζδηάζηαηνη Πίλαθεο

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

Σσήμα 6.1: Στημαηική αναπαράζηαζη ηης μνήμης

Μηα ζπλάξηεζε κε πεδίν νξηζκνύ ην Α, ζα ιέκε όηη παξνπζηάδεη ηοπικό μέγιζηο ζην, αλ ππάξρεη δ>0, ηέηνην ώζηε:

Η αξρή ζύλδεζεο Client-Server

Γ ΣΑΞΖ ΔΝΗΑΗΟΤ ΛΤΚΔΗΟΤ ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΘΔΣΗΚΩΝ ΚΑΗ ΟΗΚΟΝΟΜΗΚΩΝ ΠΟΤΓΩΝ ΤΝΑΡΣΖΔΗ ΟΡΗΑ ΤΝΔΥΔΗΑ (έως Θ.Bolzano) ΘΔΜΑ Α

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γεσηέρα 10 Ηοσνίοσ 2019 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

ΣΔΙ ΙΟΝΙΩΝ ΝΗΩΝ ΣΜΗΜΑ: ΣΔΧΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΗΛΔΠΙΚΟΙΝΩΝΙΩΝ ΧΔΙΜΔΡΙΝΟ ΔΞΑΜΗΝΟ Ρέππα Μαξγαξίηα

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Εσθύγραμμη Κίνηζη

Οδηγίες τρήζης για λειηοσργία μεηαθοράς καναλιών ζε υηθιακό δέκηη OST-7060 HD

ΔΠΙΣΡΟΠΗ ΓΙΑΓΩΝΙΜΩΝ 74 ος ΠΑΝΔΛΛΗΝΙΟ ΜΑΘΗΣΙΚΟ ΓΙΑΓΩΝΙΜΟ ΣΑ ΜΑΘΗΜΑΣΙΚΑ Ο ΘΑΛΗ 19 Οκηωβρίοσ Δνδεικηικές λύζεις

Intel Accelerate Your Code

ΠΑΝΕΠΙΣΗΜΙΟ ΜΑΚΕΔΟΝΙΑ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΣΜΗΜΑ ΕΦΑΡΜΟΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΣΕΥΝΗΣΗ ΝΟΗΜΟΤΝΗ

Φςζική Πποζαναηολιζμού Γ Λςκείος. Αζκήζειρ Ταλανηώζειρ 1 ο Φςλλάδιο

Δξγαιεία Καηαζθεπέο 1 Σάμε Σ Δ.Κ.Φ.Δ. ΥΑΝΙΧΝ ΠΡΧΣΟΒΑΘΜΙΑ ΔΚΠΑΙΓΔΤΗ. ΔΝΟΣΗΣΑ 11 ε : ΦΧ ΔΡΓΑΛΔΙΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Φαθόο κε ζσιήλα.

(Ενδεικηικές Απανηήζεις) ΘΔΜΑ Α. Α1. Βιέπε απόδεημε Σει. 262, ζρνιηθνύ βηβιίνπ. Α2. Βιέπε νξηζκό Σει. 141, ζρνιηθνύ βηβιίνπ

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

α) ηε κεηαηόπηζε x όηαλ ην ζώκα έρεη κέγηζην ξπζκό κεηαβνιήο ζέζεο δ) ην κέγηζην ξπζκό κεηαβνιήο ηεο ηαρύηεηαο

ΦΥΣΙΚΗ ΤΩΝ ΡΕΥΣΤΩΝ. G. Mitsou

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γευηέρα 11 Ηουνίου 2018 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΑΡΥΔ ΟΙΚΟΝΟΜΙΚΗ ΘΔΩΡΙΑ ΛΤΔΙ ΓΙΑΓΩΝΙΜΑΣΟ ΚΔΦΑΛΑΙΟΤ 2

ΔΦΑΡΜΟΜΔΝΑ ΜΑΘΗΜΑΣΙΚΑ ΣΗ ΧΗΜΔΙΑ Ι ΘΔΜΑΣΑ Α επηέκβξηνο Να ππνινγηζηνύλ νη κεξηθέο παξάγσγνη πξώηεο ηάμεο ηεο ζπλάξηεζεο f(x,y) =

1. (Epp 30) Γξάςηε ηελ άξλεζε ησλ παξαθάησ ινγηθώλ πξνηάζεσλ:

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη

ΟΣΑ Επηρεηξεζηαθή Ννεκνζύλε. Ελόηεηα: Ad1.2.2 «Ση θξύβεηαη» πίζω από κηα Επηρεηξεζηαθή Αλαθνξά (report): XML & XSD γηα αξράξηνπο

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) FritzBox Fon WLAN Annex B ( )

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

Σήκαηα Β Α Γ Γ Δ Λ Η Σ Ο Ι Κ Ο Ν Ο Μ Ο Υ Γ Ι Α Λ Δ Ξ Η - ( 2 ) ΕΙΣΑΓΨΓΗ ΣΤΙΣ ΤΗΛΕΠΙΚΟΙΝΨΝΙΕΣ

ΔΝΓΔΙΚΣΙΚΔ ΛΤΔΙ ΣΑ ΜΑΘΗΜΑΣΙΚΑ ΠΡΟΑΝΑΣΟΛΙΜΟΤ 2017

30. Γξαζηεξηόηεηα 1: Δπαλαιεπηηθέο Δλέξγεηεο

Αντισταθμιστική ανάλυση

A. Αιιάδνληαο ηε θνξά ηνπ ξεύκαηνο πνπ δηαξξέεη ηνλ αγωγό.

Επωηήζειρ Σωζηού Λάθοςρ ηων πανελλαδικών εξεηάζεων Σςναπηήζειρ

ΠΑΝΕΛΛΑΔΙΚΕ ΕΞΕΣΑΕΙ Γ ΣΑΞΗ ΗΜΕΡΗΙΟΤ ΓΕΝΙΚΟΤ ΛΤΚΕΙΟΤ & ΠΑΝΕΛΛΗΝΙΕ ΕΞΕΣΑΕΙ Γ ΣΑΞΗ ΗΜΕΡΗΙΟΤ ΕΠΑΛ (ΟΜΑΔΑ Β )

ΓΔΧΜΔΣΡΙΑ ΓΙΑ ΟΛΤΜΠΙΑΓΔ

Ανάπηςξη Δθαπμογών ζε Ππογπαμμαηιζηικό Πεπιβάλλον

EL Eνωμένη στην πολυμορυία EL A8-0046/319. Τροπολογία

Transcript:

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 105 Η ΓΛΧΑ ASSEMBLY TOY MIX 5.1 Ζ πκβνιηθή Γιώζζα Μεραλήο MIXAL... 106 5.2 Πεξηγξαθή Δληνιώλ ΜΗΥΑL... 107 5.3 Γνκή πκβνινκεηαθξαζηή θαη ε Γηαδηθαζία Μεηάθξαζεο... 109 5.4 Φεπδνεληνιέο ή κε Δθηειέζηκέο Δληνιέο... 118

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 106 5.1 Η σκβοιηθή Γιώζζα Μεταλής MIXAL ηελ παξάγξαθν πνπ αλαθεξόκαζηαλ ζηε γιώζζα κεραλήο καο δόζεθε ε επθαηξία λα δηαπηζηώζνπκε ηηο δπζθνιίεο πνπ αληηκεησπίδεη o πξνγξακκαηηζηήο γιώζζαο κεραλήο, κέρξη λα θηάζεη ζηελ θαηαζθεπή ηνπ αξηζκεηηθνύ θώδηθα. 'Έλαο ηέηνηνο πξνγξακκαηηζκόο όρη κόλν είλαη απσζεηηθόο ζαλ εξγαζία, αιιά είλαη πεγή ιαζώλ ζην ζηάδην ηεο αξρηθήο θαηαζθεπήο ηνπ πξνγξάκκαηνο θαη θάλεη ζρεδόλ απαγνξεπηηθή ηελ πξνζπάζεηα βειηίσζεο ή ηξνπνπνίεζεο ηνπ. Παξαηεξνύκε όηη ε βαζηθή δνπιεηά πνπ θάλνπκε γηα λα θηάζνπκε ζηνλ αξηζκεηηθό θώδηθα ρσξίδεηαη ζε δύν ινγηθά ηκήκαηα. Σν πξώην είλαη ην ζηάδην ζπγθξόηεζεο ηνπ πξνγξάκκαηνο. ' απηό αλαιύνπκε ην πξόβιεκα καο ζ' έλα αιγόξηζκν ν νπνίνο απνηειείηαη από εληνιέο ηνπ βαζηθνύ ζπλόινπ εληνιώλ. Ζ εληνιέο γξάθνληαη κε ζπκβνιηθό ηξόπν. ην ίδην ζηάδην απνθαζίδνπκε γηα ηηο δηεπζύλζεηο ησλ δεδνκέλσλ θαη ησλ εληνιώλ. Με όια ηα παξαπάλσ ζηνηρεία έηνηκα πξνρσξνύκε ζην δεύηεξν ζηάδην ζην νπνίν δελ θάλνπκε ηίπνηε άιιν από ην λα κεηαθξάδνπκε ηηο ζπκβνιηθέο εληνιέο, ζηνλ αξηζκεηηθό θώδηθα ηεο γιώζζαο κεραλήο. ην ζηάδην απηό ζπκβνπιεπόκαζηε ζπλερώο δηάθνξνπο πίλαθεο κε ηνπο θσδηθνύο ησλ εληνιώλ, F- πεδίσλ θ.ι.π. Αλ ινηπόλ ζην πξώην ζηάδην θαηνξζώζνπκε λα γξάςνπκε ηηο εληνιέο κε έλα ζπκβνιηθό ηξόπν (γιώζζα), ηόηε ην δεύηεξν ζηάδην, ην άραξν θαη κεραληθό, ζα κπνξνύζακε λα ην αλαζέζνπκε ζε έλα πξόγξακκα (assembler). Σν πξόγξακκα απηό ζα δέρεηαη ζηε είζνδν ηνλ ζπκβνιηθό ηξόπν γξαθήο ησλ εληνιώλ θαη ζα καο δίλεη ζηε έμνδν ην πξόγξακκα ζε γιώζζα κεραλήο. Απηή είλαη βαζηθά ε ηδέα ηεο γιώζζαο assembly. Να κεηαθέξεη ηνλ θώδηθά από ηε ζπκβνιηθή ηνπ κνξθή (πξνγξακκαηηζηήο) ζηελ αξηζκεηηθή (κεραλή). Δίπακε ζηελ εηζαγσγή θαη θαιό είλαη αλ ην επαλαιάβνπκε. Ζ γιώζζα assembly ζπλνδεύεηαη θαη από ην όλνκα ηνπ ππνινγηζηή γηα ηνλ νπνίν θαηαζθεπάζηεθε. Σε δηθή καο assembly ζα ηελ νλνκάδνπκε ΜΗΥΑL (MIX Αssembly Language). H ζύληαμε ζε ζπκβνιηθό επίπεδν αληί ζε αξηζκεηηθό καο παξέρεη ηξεηο βαζηθέο επθνιίεο : α) Γνπιεύνπκε κε ζύκβνια θαη όρη κε αξηζκνύο. Οη δηεπζύλζεηο ηεο κλήκεο είλαη νλόκαηα θαη όρη αξηζκνί. Πξάγκαηη κπνξνύκε λα γξάςνπκε LDA LABEL,0(0:5) όπνπ LABEL είλαη ε ζπκβνιηθή δηεύζπλζε ηεο αξηζκεηηθήο δηεύζπλζεο +1450 ηελ νπνία αληηζηνηρίζακε ζην ζύκβνιν LABEL. Ζ αληηζηνηρία ζπκβνιηθώλ θαη αξηζκεηηθώλ δηεπζύλζεσλ, γίλεηαη ζηελ αξρή ηνπ πξνγξάκκαηνο κε ηελ βνήζεηα ησλ ςεπδνεληνιώλ. Γηα παξάδεηγκα, ε εληνιή αιιαγήο ξνήο J1P 0053 πνπ ζεκαίλεη "πήγαηλε ζηε δηεύζπλζε +0053, αλ ν ri1 έρεη ζεηηθό πξόζεκν", κπνξεί λα γξαθεί J1P LOOP, αλ πξνεγνπκέλσο έρνπκε θξνληίζεη λα δώζνπκε ζηελ δηεύζπλζε 0053 ην ζπκβνιηθό όλνκα LOOP. β) Μαο δίλεη ηε δπλαηόηεηα λα παξαιείςνπκε νξηζκέλεο ηηκέο ζηα πεδία Η θαη F, νη

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 107 νπνίεο επαλαιακβάλνληαη ζπλερώο. ηελ εληνιή LDA LABEL,0(0:5) πνπ δώζακε πξνεγνπκέλσο, νη ηηκέο ηνπ Η-πεδίνπ (Η=0) θαη ην F-πεδίνπ (F=05) επαλαιακβάλνληαη ζπλερώο, γηαηί ην 90% ησλ εληνιώλ είηε ελεξγνύλ πάλσ ζε νιόθιεξε ζέζεο κλήκεο είηε ρξεζηκνπνηνύλ άκεζν ππνινγηζκό ηεο ηειηθήο δηεύζπλζεο. Άξα γξάθνπκε LDA LABEL θαη ν ζπκβνινκεηαθξαζηήο ζπκπιεξώλεη ηα ππόινηπα. Oη ηηκέο Η=0 θαη F=05 νλνκάδνληαη σπολοούκελες ηηκές (default values) θαη έρνπλ ζαλ ζπλέπεηα λα ειαηηώλεηαη ζεκαληηθά ν θώδηθαο πνπ γξάθεη ν πξνγξακκαηηζηήο. γ) Οη αξηζκεηηθέο ηηκέο πνπ εθ ησλ πξαγκάησλ αλαγθαδόκαζηε λα έρνπκε ζην πξόγξακκα (ζηαζεξέο θ.ι.π) είλαη ζηο δεθαδηθό θαη ότη ζηο οθηαδηθό ζύζηεκα. Ζ κεηαηξνπή γίλεηαη από ηνλ ζπκβνινκεηαθξαζηή ζηε θάζε ηεο κεηάθξαζεο. Τπάξρνπλ δύν θαηεγνξίεο εληνιώλ ζηε ζπκβνιηθή γιώζζα MIXAL. Ζ πξώηε θαηεγνξία είλαη νη υεσδοεληοιές (pseudo instructions) κε ηηο νπνίεο νξίδνπκε νπζηαζηηθά ηεο κεηαβιεηέο θαη ηηο ζηαζεξέο ηνπ πξνγξάκκαηνο, δειαδή αληηζηνηρίδνπκε ζε ζπκβνιηθά νλόκαηα, δηεπζύλζεηο κλήκεο (κεηαβιεηέο) ή αξηζκεηηθέο ηηκέο (ζηαζεξέο). Ζ δεύηεξε θαηεγνξία είλαη νη εθηειέζηκες εληοιές (instructions) κε ηηο νπνίεο ζπληάζζεηαη ε ινγηθή ηνπ πξνγξάκκαηνο. Κάζε εληνιή ή ςεπδνεληνιή πεξηγξάθεηαη ζε κόλν κηα γξακκή. Μεηαμύ ησλ εληνιώλ θαη ςεπδνεληνιώλ είλαη απαξαίηεην λα παξεκβάιινπκε ζτόιηα (comments). 'Όινη γλσξίδνπκε ηε ρξεζηκόηεηα πνπ έρνπλ ηα ζρόιηα κέζα ζην πξόγξακκα θαη ζην πξνεγνύκελν θεθάιαην πηζηεύνπκε λα ζαο πείζακε γηα ηελ αλαγθαηόηεηα ηνπο. Ζ ΜΗΥΑL πξνβιέπεη λα ππάξρνπλ νιόθιεξεο γξακκέο κε ζρόιηα (comment lines) αξθεί λα έρνπλ ζηε ζηήιε 1 ην ζύκβνιν "*". Δπίζεο κηα ιεπθή γξακκή κε έλα "*" ζηε ζηήιε 1 κπνξεί λα παίδεη ηνλ ξόιν ηνπ δηαρσξηζηή κεηαμύ ηκεκάησλ ηνπ πξνγξάκκαηνο πνπ απνηεινύλ μερσξηζηέο ελόηεηεο. Δπίζεο θάζε εληνιή θέξεη ηα δηθά ηεο ζρόιηα όπσο ζα δνύκε παξαθάησ: 5.2 Περηγραθή Εληοιώλ ΜΙΥΑL Έλα ζπκβνιηθό όλνκα (symbol) ζηε ΜΗΥΑL ζρεκαηίδεηαη από κηα αθνινπζία από γξάκκαηα ηνπ ιαηηληθνύ αιθάβεηνπ θαη ςεθία ηνπ δεθαδηθνύ ζπζηήκαηνο. Μπνξεί λα έρεη κήθνο ην πνιύ 10 ςεθία ή ραξαθηήξεο θαη πξέπεη λα περηέτεη ηοσιάτηζηολ έλα ταραθηήρα. Σα ζπκβνιηθά νλόκαηα δίλνληαη από ηνλ πξνγξακκαηηζηή ζηηο εηηθέηεο(labels) ησλ εληνιώλ, ζηηο κεηαβιεηέο (ζπκβνιηθέο δηεπζύλζεο) θαη ζηηο ζηαζεξέο. Οη εληνιέο πνπ απνηεινύλ θαη ηνλ θύξην όγθν ηνπ πξνγξάκκαηνο απνηεινύληαη από ηα πεδία. Δηηθέηα όλνκα εληνιήο Γηεύζ. Παξάγνληα ζρόιηα ή Παξάγνληαο εληνιήο

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 108 ην πεδίν ηεο εηηθέηαο πνπ νξίδεηαη από ηηο ζηήιεο 1 έσο 10, ηνπνζεηνύκε ην ζπκβνιηθό όλνκα ηεο δηεύζπλζεο ηεο κλήκεο πνπ ζα ηνπνζεηεζεί ε εληνιή θαηά ηε θάζε ηεο εθηέιεζεο. Απηή είλαη θαη ε πξαγκαηηθή έλλνηα ηεο εηηθέηαο. H εληύπσζε όηη είλαη έλα ζεκείν αλαθνξάο γηα λα κπνξνύκε λα θάλνπκε goto είλαη ιαλζαζκέλε. Σν ζπκβνιηθό όλνκα ηνπνζεηείηαη αξηζηεξά πξνζαλαηνιηζκέλν κέζα ζην δεθαζέζην πεδίν ηεο εηηθέηαο. Γελ είλαη ππνρξεσηηθό γηα θάζε εληνιή. Σν επόκελν πεδίν πεξηέρεη ην ζπκβνιηθό όλνκα κηαο εληνιήο θαη νξίδεηαη από ηηο ζηήιεο 12 έσο θαη 15. Παξαηεξνύκε όηη ε ζηήιε 11 δελ αλήθεη ζε θαλέλα πεδίν θαη απηό γίλεηαη γηα ηελ θαιύηεξε αλαγλσζηκόηεηα ηεο εληνιήο θαη ηνπ πξνγξάκκαηνο γεληθόηεξα. Σα ζπκβνιηθά νλόκαηα ησλ εληνιώλ πεξηέρνληαη ζε εηδηθνύο πίλαθεο καδί κε ηνπ αξηζκεηηθνύο θσδηθνύο C θαη F. ηνπο ίδηνπο πίλαθεο πεξηέρεηαη θαη ε ιεηηνπξγία ηεο θάζε εληνιήο (Παξάξηεκα Η). Σν ηξίην πεδίν πεξηέρεη ηελ δηεύζπλζε ηνπ παξάγνληα ή ηνλ παξάγνληα ηεο εληνιήο θαη νξίδεηαη από ηηο ζηήιεο 17 έσο θαη 36. Γηα ηε ζηήιε 16 ηζρύεη όηη θαη γηα ηε ζηήιε 11. Άιιεο εληνιέο ζέινπλ ζην πεδίν απηό, ηελ δηεύζπλζε ηνπ παξάγνληα (π.ρ LDA M1, πνπ ζεκαίλεη, θόξησζε ζηνλ θαηαρσξεηή Α ην πεξηερόκελν ηεο δηεύζπλζεο Μ1), θαη άιιεο ζέινπλ ηνλ ίδην ηνλ παξάγνληα(π.ρ ENTA 3, πνπ ζεκαίλεη ηνπνζέηεζε ζηνλ θαηαρσξεηή Α ηελ αξηζκεηηθή ηηκή 3) Σν πεδίν απηό ζ' άιιεο εληνιέο απνηειείηαη από ηξία, ζ' άιιεο από δύν θαη ζ' άιιεο από έλα, ηκήκαηα. ε κεξηθέο εληνιέο δελ ππάξρεη θαζόινπ παξάγνληαο. Ζ κνξθή ηνπ πεδίνπ όηαλ ππάξρνπλ θαη ηα ηξία ηκήκαηα είλαη: πκβνιηθή δηεύζπλζε ή ζηαζεξά, Γείθηεο (F-πεδίν) αο ππελζπκίδνπκε θαη πάιη ηελ δηαθνξά πνπ ππάξρεη κεηαμύ ηεο ζπκβνιηθήο δηεύζπλζεο ηνπ παξάγνληα θαη ηνπ ίδηνπ ηνλ παξάγνληα (ζηαζεξά). Γηα παξάδεηγκα, ζηελ εληνιή LDA LABEL ην ζύκβνιν LABEL είλαη ε ζπκβνιηθή δηεύζπλζε παξάγνληα ηεο εληνιήο, ελώ ζηελ εληνιή ENTA LABEL ην ζύκβνιν LABEL είλαη κηα ζηαζεξά. Έηζη ζηελ κελ πξώηε εληνιή ζηνλ rα ζα ηνπνζεηεζεί ηα πεξηερόκελν ηεο δηεύζπλζεο LABEL, ζηελ δεύηεξε εληνιή ζηνλ rα ζα ηνπνζεηεζεί ε αξηζκεηηθή ηηκή πνπ αληηπξνζσπεύεη ε ζπκβνιηθή ζηαζεξά LABEL. Σν ηειεπηαίν πεδίν κηαο εληνιήο, αλήθεη ζηα ζρόιηα πνπ ζπλνδεύνπλ ηελ εληνιή θαη απνηεινύλ επεμήγεζε(ζε ειεύζεξε γξαθή) ηεο ιεηηνπξγίαο ηεο εληνιήο. Σα ζρόιηα ζεσξνύληαη απαξαίηεηα θαη πεξηέρνληαη ζηηο ζηήιεο 38 έσο θαη 80. Ζ κνξθή ηεο εληνιήο πνπ πεξηγξάςακε πην πάλσ αλήθεη ζηελ θαηεγνξία ηεο δεζκεσκέλες κνξθήο (fixed format). Γειαδή ηα πεδία ηεο εληνιήο βξίζθνληαη ζε θαζνξηζκέλεο από πξηλ ζηήιεο ηεο γξακκήο εηζόδνπ. Ο άιινο ηύπνο κνξθήο κηαο εληνιήο είλαη απηόο ηεο "ειεύζερες" γξαθήο (Free format) όπνπ ηα πεδία δελ έρνπλ ζηαζεξή ζέζε αιιά ρσξίδνληαη κεηαμύ ηνπο κ' έλα ή πεξηζζόηεξα θελά. Ο πξώηνο ηύπνο επθνιύλεη ηνλ ζρεδηαζκό ηνπ ζπκβνινκεηαθξαζηή, ελώ ν δεύηεξνο ηε γξαθή ηνπ πξνγξάκκαηνο, αθνύ ν πξνγξακκαηηζηήο

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 109 δελ έρεη λα ζθέπηεηαη αξηζκνύο ζηειώλ όηαλ θσδηθνπνηεί. Ο πξώηνο ηξόπνο δίλεη πεξηζζόηεξν αλαγλώζηκα πξνγξάκκαηα (από ηνλ άλζξσπν) θαη ην κεηνλέθηεκα ησλ ζηαζεξώλ νξίσλ θάζε πεδίνπ εμνπδεηεξώλεηαη από ηηο επθνιίεο (TABS) πνπ έρνπλ νη ζπληάθηεο πξνγξακκάησλ (Editors) Παράδεηγκα : 1 10 12 15 17 36 38 ----------------+-+------+---+---------------------------+-+----------------------------------------------- LDA FOR,2(1:5) ra<-- MEM[FOR + REG[2]](1:5) LDA FOR Φόξησζε ζηνλ ra ην πεξηερόκελν * ηεο δηεύζπλζεο FOR. LOOP LDA FOR (1:5) Φόξησζε ζηνλ ra ηελ απόιπηε ηηκή * ηεο δηεύζπλζεο FOR. LDA FOR,1 ra <-- MEM[FOR + REG[1]] * ENT1 14 ri1 <-- 14 (ΑΡΥΗΚΖ ΣΗΜΖ). ANT DEC1 1 Αθαίξεζε 1 από ηνλ ri1. J1P ANT Αλ ην πεξηερόκελν ηνπ ri1 είλαη * ζεηηθό πήγαηλε ζηελ εληνιή κε * ζπκβνιηθή δηεύζπλζε ANT HLT ηακάηεζε ην πξόγξακκα. Σα ζρόιηα ζπλήζσο αλαθέξνληαη ζε νκάδεο εληνιώλ πνπ απνηεινύλ κηα ελόηεηα θαη ζπαλίσο ζε θάζε κηα από ηηο εληνιέο, όπσο έγηλε ζην παξάδεηγκα. 5.3 Δοκή σκβοιοκεηαθραζηή θαη ε Δηαδηθαζία Μεηάθραζες Αο δνύκε ιίγν ηε δνκή ελόο ζπκβνινκεηαθξαζηή θαη πην ζπγθεθξηκέλα ηηο δνκέο δεδνκέλσλ πνπ πεξηέρεη θαη νη νπνίεο καο ελδηαθέξνπλ. Οη δνκέο απηέο είλαη: ν πίλαθαο ησλ ζσκβοιηθώλ ολοκάηφλ ηφλ εληοιώλ (opcode table) ν πίλαθαο ησλ ζπκβνιηθώλ νλνκάησλ πνπ δίλεη ν πξνγξακκαηηζηήο θαη ν νπνίνο νλνκάδεηαη ζσκβοιηθός πίλαθας(symbol table) κηα κεηαβιεηή πνπ νλνκάδεηαη κεηρεηής ζέζες(location counter). πκβνιηθό όλνκα C F-πεδίν LDA 10 (L:R) ST1 31 (L:R) ADD 01 (L:R) FADD 01 06 CMPA 70 (L:R) JMP 47 00 JSJ 47 01 JOV 47 02 ΗΝ 44 N OUT 45 N Πίλαθας 5.1 πκβνιηθόο πίλαθαο εληνιώλ.

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 110 Δίλαη ίζσο ην απινύζηεξν από ηα πξνγξάκκαηα ηνπ ζπζηήκαηνο θαη ζηεξίδεηαη νπζηαζηηθά ζηελ θαηαζθεπή θαη ζηε ζπλέρεηα ζηελ αλάγλσζε ηνπ ζπκβνιηθνύ πίλαθα. Πίλαθας ζσκβοιηθώλ ολοκάηφλ εληοιώλ : Ο πίλαθαο απηόο νξίδεηαη από ηνλ θαηαζθεπαζηή ηνπ ζπκβνινκεηαθξαζηή θαη πεξηέρεη ηα ζπκβνιηθά νλόκαηα ησλ εληνιώλ θαη ηνπο αληίζηνηρνπο αξηζκεηηθνύο θσδηθνύο. Ο πίλαθαο απηόο είλαη "κόλν αλάγλσζεο " θαη ρξεζηκνπνηείηαη από ηνλ assembler θαηά ηε θάζε ηεο κεηάθξαζεο. Έλα κηθξό ηκήκα ηνπ πίλαθα κε ηα ζπκβνιηθά νλόκαηα ησλ εληνιώλ ηνπ MIX δίλνπκε ζηνλ πίλαθα 5.1. Πξνζέμηε, ηελ ηξηπιή ιεηηνπξγία ηνπ πεδίνπ F. ε άιιεο εληνιέο πεξηγξάθεη κεξηθό πεδίν (π.ρ LDA), ζε άιιεο θσδηθό κνλάδαο εηζόδνπ/εμόδνπ (π.ρ ΗΝ) θαη ζε άιιεο πεξηγξάθεη ηνλ ζπλ-θσδηθό ηεο εληνιήο (π.ρ JMP) σκβοιηθός πίλαθας : Δίλαη ν πίλαθαο ζπκβνιηθώλ νλνκάησλ πνπ δίλνληαη από ηνλ πξνγξακκαηηζηή. Σα ζπκβνιηθά απηά νλόκαηα κπνξεί λα είλαη ζπκβνιηθά νλόκαηα δηεπζύλζεσλ, ζπκβνιηθά νλόκαηα εηηθεηώλ, ζπκβνιηθά νλόκαηα ζηαζεξώλ (ςεπδνεληνιή EQU). Ο πίλαθαο απηόο απνηειείηαη από δύν ζηήιεο (Πίλαθαο 5.2). Ζ κηα πεξηέρεη ην ζπκβνιηθό όλνκα θαη ε δεύηεξε ηελ αξηζκεηηθή ηηκή ηεο δηεύζπλζεο ή ηεο ζηαζεξάο πνπ αληηζηνηρεί ζ' απηό. πκβνιηθό όλνκα Σηκή (Γηεύζπλζε ε ζηαζεξά) XYZ 0437 ANT1 0003 A -7 B 23 LOOP 2002 ANT 1631 LP 18 Πίλαθας 5.2 πκβνιηθόο πίλαθαο νλνκάησλ Σα ζπκβνιηθά νλόκαηα νξίδνληαη από ηηο ςεπδνεληνιέο θαη ηηο εηηθέηεο ησλ εθηειέζηκσλ εληνιώλ. Μεηά ηελ ηνπνζέηεζε ησλ ζπκβόισλ ζην ζπκβνιηθό πίλαθα ν assembler αγλνεί αλ ε ηηκή πνπ αληηζηνηρεί ζε έλα ζύκβνιν, αλαθέξεηαη ζε δηεύζπλζε ή ζηαζεξά. Δίλαη επνκέλσο ζέκα ζσζηήο ρξήζεο ηνπ ζπκβόινπ κέζα ζην πξόγξακκα. Αλ γηα παξάδεηγκα ηνπνζεηήζνπκε κηα ζπκβνιηθή ζηαζεξά ζηε ζέζε πνπ απαηηείηαη ζπκβνιηθή δηεύζπλζε, ηόηε ε ηηκή ηεο ζηαζεξάο ζα εξκελεπζεί ζαλ δηεύζπλζε. Ζ παξαγσγή ηνπ αξηζκεηηθνύ θώδηθα κπνξεί λα γίλεη ζε κία ή δύν θάζεηο πνπ νλνκάδνληαη πεξάζκαηα θαη ραξαθηεξίδνπλ ηνλ κεηαθξαζηή ζαλ ζπκβνινκεηαθξαζηή ελόο πεξάζκαηνο (one pass assembler) ή δύν πεξαζκάησλ (two pass assembler).

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 111 ηνλ ζπκβνινκεηαθξαζηή ελόο πεξάζκαηνο έρνπκε ηα παξαθάησ βήκαηα: αλάγλσζε κηαο εληνιήο από ην αξρείν εηζόδνπ ηνπνζέηεζε ελόο ζπκβνιηθνύ(αλ ππάξρεη) νλόκαηνο ζηνλ ζπκβνιηθό πίλαθα κεηάθξαζε ηεο εληνιήο ζε αξηζκεηηθή κνξθή ηνπνζέηεζε ηεο κεηαθξαζκέλεο εληνιήο ζηε κλήκε ή ζε αξρείν(object file). Ζ κέζνδνο απηή έρεη ζρεδόλ θαηαξγεζεί γηαηί όπσο ζα δνύκε παξαθάησ δελ δίλεη κεγάιε επειημία ζηελ ζύληαμε ηνπ ζπκβνιηθνύ θώδηθα. ηνλ ζπκβνινκεηαθξαζηή δύν πεξαζκάησλ, όπσο είλαη απηόο ηνπ MIX, ε κεηάθξαζε γίλεηαη ζε δύν θάζεηο (ζρήκα 5.1). Ο assembler δηαβάδεη εληνιή πξνο εληνιή ην ζπκβνιηθό αξρείν εηζόδνπ θαη ζρεκαηίδεη ηνλ ζπκβνιηθό πίλαθα. Ο assembler μαλαδηαβάδεη ην πξόγξακκα θαη κε ηε βνήζεηα ηνπ ζπκπιεξσκέλνπ ζπκβνιηθνύ πίλαθα θαηαζθεπάδεη ηνλ αξηζκεηηθό θώδηθα. Ζ αμία ησλ δύν πεξαζκάησλ ζα θαλεί αξγόηεξα όηαλ ζα κηιήζνπκε γηα ηηο πξσζύζηεξεο αλαθνξέο. ην ζρήκα 2.1 θαίλεηαη όηη ηελ δεύηεξε θνξά ν assembler δελ μαλαδηαβάδεη ην αξρηθό αξρείν εηζόδνπ πνπ πεξηέρεη ην πεγαίν πξόγξακκα, αιιά έλα άιιν αξρείν ην νπνίν ην νλνκάζακε ελδηάκεζν. Σν αξρείν απηό δελ είλαη αθξηβώο αληίγξαθν ηνπ αξρηθνύ αιιά πεξηέρεη θαη πιεξνθνξίεο πνπ απνζπάζηεθαλ θαηά ηε πξώηε θάζε, θαη ζα ρξεηαζηνύλ ζηε δεύηεξε. ΟΗ πιεξνθνξίεο αθνξνύλ ηελ δηεύζπλζε πνπ ζα ηνπνζεηεζεί θάζε εληνιή ζηε κλήκε, όηαλ θνξησζεί ζε απηήλ ν εθηειέζηκνο θώδηθαο. Με ηνλ ηξόπν απηό ην πξώην πέξαζκα βνεζά ην δεύηεξν. ε πνιιέο πεξηπηώζεηο ν θαηαζθεπαζηήο ηνπ assembler ηνπνζεηεί ην ελδηάκεζν αξρείν θαηεπζείαλ ζηε κλήκε (αλ ππάξρεη αξθεηή θαη MIX δελ έρεη) κε ζηόρν ηελ βειηίσζε ηεο ηαρύηεηαο ηεο κεηάθξαζεο. Γελ πξέπεη λα μερλάκε όηη θαηά ηηο δύν θάζεηο ν ζπκβνινκεηαθξαζηήο ςάρλεη γηα ζπληαθηηθά ιάζε ηα νπνία καο ηα παξνπζηάδεη καδί κε κηα εθηύπσζε ηνπ ζπκβνιηθνύ θώδηθα ηνπ πξνγξάκκαηνο. Θα δνύκε ηώξα ηνλ ηξόπν θαηαζθεπήο ηνπ ζπκβνιηθνύ πίλαθα. Ζ ζέζε ησλ ζπκβνιηθώλ νλνκάησλ κέζα ζην πξόγξακκα, νδεγεί ηνλ κεηαθξαζηή λα ηνπνζεηήζεη έλα ζπκβνιηθό όλνκα κέζα ζηνλ πίλαθα θαη λα ηνπ δώζεη κηα ηηκή. Ο κεηαθξαζηήο ρξεζηκνπνηεί επίζεο θαη ηηο ηηκέο ησλ ζπκβνιηθώλ νλνκάησλ πνπ ήδε ππάξρνπλ ζηνλ πίλαθα. Τπάξρνπλ δύν ηξόπνη λα ηνπνζεηήζνπκε ζπκβνιηθά νλόκαηα ζ' έλα ζπκβνιηθό πίλαθα. Ο πξώηνο γίλεηαη κε ηε βνήζεηα ηνπ πεδίνπ εηηθέηαο κηαο απιήο εληνιήο θαη νη ηηκέο είλαη πάληα δηεπζύλζεηο. Ο δεύηεξνο γίλεηαη κε ηε βνήζεηα ησλ ςεπδνεληνιώλ θαη νη ηηκέο είλαη είηε δηεπζύλζεηο (ςεπδνεληνιέο CON, ALF θαη ORIG) ή ζηαζεξέο ( ςεπδνεληνιή EQU).

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 112 πκβνιηθόο θώδηθαο πκβνιηθόο πίλαθαο Πξώην πεξαζκα Δλδηάκεζν αξρείν Γεύηεξν πέξαζκα πληαθηηθά ιάζε Δθηειέζηκνο θώδηθαο τήκα 5.1 Ρνή ζπκβνινκεηαθξαζηή δύν πεξαζκάησλ Σν κεηαθξαζκέλν πξόγξακκα κεηά ην ηέινο ηεο κεηάθξαζεο πξέπεη λα θνξησζεί ζηε κλήκε γηα λα εθηειεζηεί. Ο κεηαθξαζηήο είλαη ππνρξεσκέλνο, όρη κόλν λα κεηαθξάζεη κηα εληνιή, αιιά θαη λα θαζνξίζεη ζε πνηα ζέζε ηεο κλήκεο ζα θνξησζεί. ρεκαηίδεη δειαδή ηνλ ράξηε ηεο κλήκεο. 'Άιισζηε ν κεηαθξαζκέλνο θώδηθαο (ζηηο απιέο πεξηπηώζεηο όπσο ν MIX) δελ είλαη ηίπνηε άιιν πάξα κηα εηθόλα ηεο κλήκεο πξηλ από ηελ εθηέιεζε. Ζ ραξηνγξάθεζε ηεο κλήκεο γίλεηαη θαηά ην πξώην πέξαζκα κε ηνλ ηαπηόρξνλν ζρεκαηηζκό ηνπ ζπκβνιηθνύ πίλαθα. ηνλ κεραληζκό θαζνξηζκνύ ησλ ζέζεσλ κλήκεο θαη ζηνλ ζρεκαηηζκό ηνπ ζπκβνιηθνύ πίλαθα θαζνξηζηηθό ξόιν παίδεη ν κεηξεηήο ζέζεο (location counter). O κεηξεηήο ζέζεο είλαη κηα εηδηθή κεηαβιεηή ηελ νπνία ρεηξίδεηαη ν κεηαθξαζηήο assembler αιιά θαη ν πξνγξακκαηηζηήο ηεο assembly. Καηά ηε έλαξμε ηεο κεηάθξαζεο ν κεηξεηήο ζέζεο έρεη ηελ ηηκή 0000 εθηόο αλ έρεη νξηζηεί δηαθνξεηηθά(ςεπδνεληνιή ORIG). Ζ ηηκή ηνπ κεηξεηή ζέζε εθθξάδεηαη από έλα ΟΚΣΑΓΗΚΟ αξηζκό θαη αιιάδεη ηηκή ή παξακέλεη ζηαζεξή κε βάζε ην είδνο ηεο ςεπδνεληνιήο ή ηεο εθηειέζηκήο εληνιήο πνπ πξόθεηηαη λα κεηαθξαζηεί. Ζ αιιαγή γίλεηαη ζην ηέινο ηεο κεηάθξαζεο σο εμήο: ζε θάζε εθηειέζηκή εληνιή απμάλεη θαηά έλα ζε θάζε ςεπδνεληνιή EQU ε ηηκή ηνπ παξακέλεη ζηαζεξή ζε θάζε ςεπδνεληνιή CON ή ALF απμάλεη θαηά έλα ζε θάζε ςεπδνεληνιή ORIG κεηαβάιιεηαη κε βάζε ηελ αξηζκεηηθή παξάζηαζε πνπ βξίζθεηαη ζηελ ζέζε ηνπ παξάγνληα ηεο ςεπδνεληνιήο

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 113 Ζ ηηκή πνπ έρεη ν κεηξεηήο ζέζεο πρίλ από ηελ επεμεξγαζία(πξώην πέξαζκα) κηαο εθηειέζηκεο εληνιήο, θαζνξίδεη θαη ηελ ζέζε ηεο κλήκεο πνπ ζα ηνπνζεηεζεί ε κεηαθξαζκέλε εληνιή όηαλ ην πξόγξακκα θνξησζεί ζηε κλήκε Δπίζεο ε ηηκή πνπ έρεη ν κεηξεηήο ζέζεο ΠΡΗΝ ηελ επεμεξγαζία(πξώην πέξαζκα) κηαο ςεπδνεληνιήο νξηζκνύ κεηαβιεηήο (CON ή ALF) θαζνξίδεη θαη ηελ ζέζε ηεο κλήκεο πνπ ζα ηνπνζεηεζεί ε κεηαβιεηή κεηαθξαζκέλε εληνιή όηαλ ην πξόγξακκα θνξησζεί ζηε κλήκε Aπηό ζεκαίλεη όηη, αλ ε ηξέρνπζα ηηκή ηνπ κεηξεηή ζέζεο είλαη 0144, ηόηε: αλ ε επόκελε γξακκή πνπ ζα δηαβαζηεί πεξηέρεη εληνιή, απηή ζα ηνπνζεηεζεί ζηε δηεύζπλζε, 0144 ηεο κλήκεο αλ πεξηέρεη ςεπδνεληνιή νξηζκνύ κεηαβιεηήο ηόηε ε κεηαβιεηή ζα ηνπνζεηεζεί ζηελ ζέζε 0144 ηεο κλήκεο. Καη ζηηο δύν πεξηπηώζεηο, θαη πξηλ δηαβαζηεί ε επόκελε γξακκή, ν κεηξεηήο ζέζεο απμάλεηαη θαηά 1, πξάγκα πνπ ζεκαίλεη όηη ε εληνιή πνπ πξόθεηηαη λα δηαβαζηεί ή ε κεηαβιεηή πνπ πξόθεηηαη λα νξηζηεί ζα ηνπνζεηεζνύλ ζηε δηεύζπλζε 0145. Ζ ίδηα δηαδηθαζία ζπλερίδεηαη κέρξη ηελ αλάγλσζε θαη ηεο ηειεπηαίαο εληνιήο ηνπ πξνγξάκκαηνο. Δπνκέλσο κπνξνύκε λα πνύκε όηη "ο κεηρεηής ζέζες είλαη κηα εηδηθή κεηαβιεηή ηοσ κεηαθραζηή assembler, ο οποίος (κεηρεηής) περηέτεη ηελ δηεύζσλζε ηες ζέζες κλήκες ζηελ οποία ζα ηοποζεηεζεί ε ηρέτοσζα εληοιή ή κεηαβιεηή". Αλ ε "ηξέρνπζα" εθηειέζηκή εληνιή ή ςεπδνεληνιή νξηζκνύ κεηαβιεηήο έρεη εηηθέηα, ηόηε ην όλνκα ηεο εηηθέηαο ηνπνζεηείηαη ζηνλ ζπκβνιηθό πίλαθα ζηε ζηήιε ησλ ζπκβνιηθώλ νλνκάησλ θαη ζηελ αληίζηνηρε ζέζε ησλ ηηκώλ, ηνπνζεηείηαη ε ηηκή ηνπ κεηξεηή ζέζεο. Αλ ε ηξέρνπζα ςεπδνεληνιή είλαη ε EQU, ηόηε ην όλνκα ηεο εηηθέηαο ηνπνζεηείηαη ζηνλ ζπκβνιηθό πίλαθα ζηε ζηήιε ησλ ζπκβνιηθώλ νλνκάησλ θαη ζηελ αληίζηνηρε ζέζε ησλ ηηκώλ, ηνπνζεηείηαη ε ηηκή ηεο ζηαζεξάο πνπ βξίζθεηαη ζηε ζέζε ηνπ παξάγνληα ηεο ςεπδνεληνιήο. Παράδεηγκα : Τπνζέηνπκε όηη : ζην ζπκβνιηθό όλνκα ARRAY αληηζηνηρίζακε ηελ δηεύζπλζε 0000 8 ν κεηξεηήο ζέζεο πξηλ από ηελ αλάγλσζε ηεο εληνιήο "ENT1 99" έρεη ηελ ηηκή 1001 8 θαη έρνπκε ηνλ παξαθάησ θώδηθα ENT1 99 LABEL STZ ARRAY,1 DEC1 1 J1P LABEL Ζ εληνιή ENT1 99 ζα ηνπνζεηεζεί ζηε δηεύζπλζε 1001. 'Όηαλ ν assembler θηάζεη ζηελ επόκελε εληνιή ε ηηκή ηνπ κεηξεηή ζέζεο ζα είλαη 1002. Σν ζπκβνιηθό όλνκα LABEL ζα ηνπνζεηεζεί ζηνλ πίλαθα ζπκβνιηθώλ νλνκάησλ κε αληίζηνηρε ηηκή 1002. Ζ εληνιή " STZ ARRAY,1" κεηαθξαζκέλε, ζα ηνπνζεηεζεί ζηε δηεύζπλζε 1002. Ζ

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 114 επόκελε εληνιή ζα ηνπνζεηεζεί ζηε δηεύζπλζε 1003 θαη ε κεζεπόκελε "J1P LABEL" ζηε δηεύζπλζε 1004. Μεηά ην ηέινο ηνπ πξώηνπ πεξάζκαηνο ζα έρνπκε ηηο παξαθάησ πιεξνθνξίεο : πκβνιηθόο πίλαθαο πκβνιηθόο πίλαθαο Δηθόλα νλνκάησλ εληνιώλ ελδηάκεζνπ αξρείνπ ύκβνιν ηηκή ύκβνιν C F LC Πξόγξακκα assembly ARRAY 0000 ENT1 61 02 1001 ENT1 99 LABEL 1002 STZ 41 (L:R) 1002 LABEL STZ ARRAY,1 DEC1 64 01 1003 DEC1 1 J1P 51 01 1004 J1P LABEL ηo δεύηεξν πέξαζκα ηώξα, παξαηεξνύκε όηη ζε θάζε ζύκβνιν αληηζηνηρεί θαη κηα αξηζκεηηθή ηηκή. Δπνκέλσο είκαζηε έηνηκνη γηα ηελ αληηθαηάζηαζε όισλ ησλ ζπκβόισλ κε αξηζκνύο. Οη ζηαζεξέο 99 θαη 01 ζα κεηαθεξζνύλ ζην νθηαδηθό. Ζ κεηάθξαζε ζα δώζεη ηνλ παξαθάησ θώδηθα: Θέζε κλήκεο Πξόγξακκα ζε γιώζζα κεραλήο m I F C 1001 +0143 00 02 61 1002 +0000 01 05 41 1003 +0001 00 01 64 1004 +1002 00 01 51 Καηά ηε κεηάθξαζε ιάβακε ππόςε καο ηα παξαθάησ : Οη εληνιέο ENT1, DEC1 θαη J1P δελ δέρνληαη κεξηθό πεδίν (βιέπε ζπκβνιηθό πίλαθα εληνιώλ). ηελ εληνιή STZ ARRAY,1 δελ ππάξρεη F-πεδίν. Απηό ζεκαίλεη όηη ζα κεηαθξάζνπκε 05 (ππνλννύκελε ηηκή). Αο ζπλνςίζνπκε ηώξα ηηο ελέξγεηεο πνπ θάλεη ν ζπκβνινκεηαθξαζηήο όηαλ ζπλαληά κηα απιή εληνιή. (γηα ηηο ςεπδoεληνιέο ζα κηιήζνπκε παξαθάησ). Πρώηο πέραζκα: Β1: Αλ δελ ππάξρεη εηηθέηα πήγαηλε ζην βήκα Β3. Β2: Σνπνζέηεζε ηελ εηηθέηα ζηε κία ζηήιε ηνπ ζπκβνιηθό πίλαθα θαη ζηελ άιιε βάιε ηελ ηξέρνπζα ηηκή ηνπ κεηξεηή ζέζεο. Β3: Αύμεζε θαηά έλα ηε ηηκή ηνπ κεηξεηή ζέζεο (ζρήκα 5.2) Β4: Σνπνζέηεζε ηελ εληνιή καδί κε ηε δηεύζπλζε πνπ ζα θνξησζεί ζηε κλήκε, ζην ελδηάκεζν αξρείν. Δεύηερο πέραζκα: Β1: Μεηάθξαζε ηεο εληνιήο ζε δπαδηθό θώδηθα κε ηε βνήζεηα ηνπ ζπκβνιηθνύ πίλαθα νλνκάησλ (πξώην πέξαζκα) θαη ηνπ ζπκβνιηθνύ πίλαθα εληνιώλ (θαηαζθεπαζηήο)

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 115 ARXH Αξρηθέο ηηκέο LC=0 1 Αλάγλσζε ζπκβνιηθνύ θώδηθα Αλίρλεπζε OPCODE CON ΕΝΣΟΛΗ ALF ORIG END EQU ΟΥΙ ΔΣΗΚΔΣΑ ΔΣΗΚΔΣΑ PASS 2 OXI ΝΑΙ NAI H εηηθέηα ζηνλ ζπκβνιηθό πίλαθα κε ηηκή ηελ ηξέρνπζα ηηκή ηνπ LC H εηηθέηα ζηνλ ζπκβνιηθό πίλαθα κε ηηκή ηελ ηξέρνπζα ηηκή ηνπ LC Ζ εηηθέηα ζηνλ ζπκβνιηθό πίλαθα κε ηηκή ηελ ηηκή ηεο ζηαζεξάο πνπ βξίζθεηαη ζην πεδίν ηνπ παξάγνληα LC=LC+1 Τπνινγηζκόο ηεο αξηζ. παξάζηαζεο ηνπ παξάγνληα θαη ηνπνζεηεζή ηεο ζηνλ LC Δλδηάκεζν αξρείν 1 τήκα 5.2 Πξώην πέξαζκα (pass 1) ζπκβνινκεηαθξαζηή

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 116 PASS2 2 Δλδηάκεζν ΣΔΛΟ αξρείν Αλίρλεπζε OPCODE CON ALF ΕΝΣΟΛΗ ORIG END EQU Μεηάθραζε ηεο εληνιήο κε ηε βνήζεηα ηνπ ΤΜΒΟΛΗΚΟΤ ΠΗΝΑΚΑ Τπνινγηζκόο ηεο δηεύζ. έλαξμεο ηνπ πξνγξ. Δγγξαθή ηεο δηεπζ. ζην εθηειέζηκν αξρείν Δεκοσργία Θέζες Μλήκες Γηεύζπλζε: ε ηηκή ηνπ LC από ην Pass1 Πεξηερόκελν: ε κεηαθξαζκέλε εληνιή Δεκοσργία Θέζες Μλήκες Γηεύζπλζε: ε ηηκή ηνπ LC απo ην Pass1 Πεξηερόκελν: ε ηηκή ηνπ παξάγνληα Δθηειέζηκν αξρείν 2 Δθηύπσζε πκβνιηθνύ θώδηθα + πλη. ιάζε τήκα 5.3 Γεύηεξν πέξαζκα (pass 1) ζπκβνινκεηαθξαζηή

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 117 Β2: Γεκηνύξγεζε ζην αξρείν εμόδνπ (object file) κηα εγγξαθή πνπ ζα αληηζηνηρεί ζε κηα ζέζε κλήκεο θαηά ηε θόξησζε ηνπ πξνγξάκκαηνο, κε δηεύζπλζε ηε δηεύζπλζε ηεο εληνιήο πνπ βξέζεθε θαηά ην πέξαζκα έλα θαη πεξηερόκελν ηε κεηαθξαζκέλε εληνιή. (ζρήκα 5.3) Β3: Δθηύπσζε ηεο εληνιήο κε ηα ζπληαθηηθά ιάζε (αλ ππάξρνπλ). Καηά ηελ δηάξθεηα θαη ησλ δύν βεκάησλ αληρλεύεηαη ε εληνιή γηα ζπληαθηηθά ιάζε ηα νπνία παξνπζηάδνληαη ζηελ ηειηθή εθηύπσζε. Ζ ζπκβνιηθή δηεύζπλζε κηαο εληνιήο κπνξεί λα είλαη πεξηζζόηεξν ζύλζεηε από έλα απιό ζπκβνιηθό όλνκα. Απηό γίλεηαη γηα λα δηεπθνιύλνπκε ηνλ πξνγξακκαηηζκό. Γεληθά κηα ζπκβνιηθή δηεπζπλζε κπνξεί λα εθθξάδεηαη από : - ζπκβνιηθό όλνκα. - αξηζκεηηθή ζηαζεξά (ζην δεθαδηθό ζύζηεκα) - αζηεξίζθν (*). - ζπκβνιηθή αξηζκεηηθή έθθξαζε. Ζ πεξίπησζε ηνπ ζπκβνιηθνύ νλόκαηνο είλαη ε πην ζπλεζηζκέλε θαη αλαθέξεηαη ζηηο εληνιέο πνπ έρνπλ αλάγθε κηαο δηεύζπλζεο.. Παράδεηγκα : LDA FOUR ST1 ANT CMPA NIKOS J1P LABEL H αξηζκεηηθή ζηαζεξά αλαθέξεηαη ζηηο εληνιέο άκεζεο ελέξγεηαο πνπ ζην πεδίν ηνπ παξάγνληα δελ κπαίλεη ε δηεύζπλζε ηνπ παξάγνληα αιιά ν ίδηνο ν παξάγνληαο (κηα ζηαζεξά). Παράδεηγκα : ENT1 3 DECA 7 INC2 17 ENTA 39 ην ζεκείν απηό ζα αλαθέξνπκε κόλν, θαη ζα ην εμεγήζνπκε αξγόηεξα, όηη κπνξνύκε λα έρνπκε θαη κηα αξηζκεηηθή ζηαζεξά κε ζπκβνιηθή κνξθή (βιέπε ςεπδνεληνιή EQU). πκβνιίδνπκε κε αζηεξίζθν (*) ηελ ηξέρνπζα ηηκή ηνπ κεηξεηή Θέζεο, ν νπνίνο κπνξεί λα ρξεζηκνπνηεζεί ζαλ έλα ηδηόηππν ζπκβνιηθό όλνκα. Παράδεηγκα : JBUS *(18) J1P * H εληνιή JBUS *(16) ππελζπκίδεη ζηνλ ΜΗΥ όηη πξέπεη λα κείλεη ζηε δηεύζπλζε πνπ ππνλνεί ν κεηξεηήο ζέζεο (δειαδή ζηελ ίδηα ηελ εληνιή) κέρξηο όηνπ ε κνλάδα εηζόδνπ 18, ηειεηώζεη ηελ κεηαθνξά ησλ δεδνκέλσλ ζηε κλήκε. Σν πιήζνο ησλ δεδνκέλσλ πνπ ζα κεηαθεξζνύλ εμαξηάηαη απνθιεηζηηθά από ηελ κνλάδα. εκεηώλνπκε όηη ν κεηξεηήο ζέζεο (LC) ιεηηνπξγεί θαηά ηε δηάξθεηα ηεο κεηάθξαζεο ηνπ πξνγξάκκαηνο, ελώ ν απαξηζκεηήο εληνιώλ (PC) θαηά ηελ δηάξθεηα εθηέιεζεο ηνπ πξνγξάκκαηνο. Γηα ηνλ πξώην ππεύζπλνο είλαη ν κεηαθξαζηήο (έλα

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 118 πξόγξακκα), ελώ γηα ηνλ δεύηεξν ππεύζπλε είλαη ε κνλάδα ειέγρνπ (κηα κεραλή). Αλ ζειήζνπκε λα βάινπκε ηνλ ΜΗΥ λα δνπιεύεη αηώληα δελ έρνπκε παξά λα δώζνπκε ηελ εληνιή JMP *. Μπνξείηε λα εμεγήζεηε γηαηί ζα ζπκβεί απηό; Μηα αξηζκεηηθή ζπκβνιηθή έθθξαζε είλαη έλαο ζπλδπαζκόο ησλ πξνεγνύκελσλ πεξηπηώζεσλ(ζύκβνιν, αξηζκεηηθή ζηαζεξά, αζηεξίζθνο) θαη ησλ ηειεζηώλ +, -, *, /, θαη : όπνπ ε δηαίξεζε είλαη ε αθέξαηα δηαίξεζε (αθέξαην πειίθν). Ζ έθθξαζε (a:b) ιεηηνπξγεί ζαλ (8 ρ a) + b. Ζ ιεηηνπξγία ησλ εθθξάζεσλ γίλεηαη απζηεξά από αξηζηεξά πξνο ηα δεμηά. Γελ ππάξρεη ηεξαξρία πξάμεσλ θαη δελ επηηξέπνληαη παξελζέζεηο. Παράδεηγκα : Ζ έθθξαζε 25-5+1/3*5 ιεηηνπξγεί ζαλ ((((25-5)+1)/3)*5)=35. Ζ έθθξαζε 2*4-2*4 δελ δίλεη απνηέιεζκα 0, όπσο μέξακε κέρξη ηώξα, αιιά 24. Μέζα ζηηο εθθξάζεηο κπνξεί λα κεηέρεη θαη ε ηηκή ηνπ κεηξεηή ζέζεο. Ζ έθθξαζε *+35*2 επηηξέπεηαη. Σν πξώην αζηεξάθη (*) ππνλνεί ηελ ηηκή (ηξέρνπζα) ηνπ κεηξεηή ζέζεο. Δπεηδή ν παξάγσλ κηαο εληνιήο απνηειείηαη από ηξία πεδία, επηηξέπεηαη θαζέλα από απηά λα είλαη κηα αξηζκεηηθή έθθξαζε. Παράδεηγκα : LDA J1P ARRAY-1,I-2(3:5) *+3,ANT+1 Απαξαίηεηε πξνϋπόζεζε είλαη, νη ηηκέο ησλ εθθξάζεσλ λα βξίζθνληαη κέζα ζηα όξηα πνπ επηηξέπνπλ η' αληίζηνηρα πεδία. Τπελζπκίδνπκε όηη νη ηηκέο ηνπ πεδίνπ δηεπζύλζεσλ πξέπεη λα βξίζθνληαη κεηαμύ ησλ αξηζκώλ -4095 θαη +4095 θαη νη ηηκέο ηνπ Η-πεδίνπ θαη F-πεδίνπ κεηαμύ ησλ αξηζκώλ 0 θαη 63. 5.4 Φεσδοεληοιές ή κε Εθηειέζηκές Εληοιές Οη ςεπδνεληνιέο δελ αλήθνπλ ζην βαζηθό ζύλνιν εληνιώλ, δελ κεηαθξάδνληαη ζε γιώζζα κεραλήο θαη επνκέλσο δελ εθηεινύληαη. Με ηηο εληνιέο απηέο δίλνληαη δηαδηθαζηηθέο νδεγίεο ζηνλ assembler ζρεηηθέο, κε ηε δηεπζέηεζε κλήκεο, ηελ αληηζηνηρία ησλ ζπκβνιηθώλ νλνκάησλ θαη δηεπζύλζεσλ, ην νξηζκό ησλ ζηαζεξώλ, ηελ αιιαγή ηεο ηηκήο ηνπ κεηξεηή ζέζεο, θ.ι.π. 'Όιεο απηέο νη δηαδηθαζηηθέο εληνιέο νλνκάδνληαη ςεπδνεληνιέο θαη έρνπλ ηελ ίδηα δνκή κε ηηο θπξίσο εληνιέο. Γεληθά νη ςεπδνεληνιέο πιεξνθνξνύλ ηνλ ζπκβνινκεηαθξαζηή γηα ηνλ ράξηε κλήκεο πάλσ ζηνλ νπνίν ζα δνπιέςνπλ νη εθηειέζηκεο εληνιέο. Ο ΜΗΥ πξνβιέπεη γηα ηελ ΜΗΥΑL, πέληε ςεπδνεληνιέο (ORIG, CON, ALF, EQU, θαη END. πλνπηηθά, ε εληνιή ORIG θαζνξίδεη ηελ ηηκή ηνπ κεηξεηή ζέζεο. Ζ εληνιή CON αληηζηνηρεί ζ' έλα ζπκβνιηθό όλνκα κηα ζέζε ηεο κλήκεο ε νπνία ζα δερζεί κηα αξηζκεηηθή ηηκή (αξηζκεηηθή κεηαβιεηή) Ζ εληνιή ALF θάλεη ην ίδην, αιιά αθνξά ραξαθηήξεο (κεηαβιεηή ραξαθηήξσλ) Ζ εληνιή EQU εηζάγεη ζπκβνιηθά νλόκαηα ζηνλ ζπκβνιηθό πίλαθα θαη αληηζηνηρεί ζ' απηά θάπνηεο ηηκέο (νξηζκόο αξηζκεηηθώλ ζηαζεξώλ)

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 119 Ζ εληνιή END είλαη ε γλσζηή νξηαθή (ηειεπηαία) εληνιή θάζε πξνγξάκκαηνο. Πξηλ πξνρσξήζνπκε ζηελ αλαιπηηθή πεξηγξαθή ησλ ςεπδνεληνιώλ ζα παξνπζηάζνπκε ζε νινθιεξσκέλε κνξθή, ην πξόγξακκα πνπ γξάςακε αξρηθά ζε ζπκβνιηθή γιώζζα κεραλήο. * ΣΟ ΠΡΟΓΡΑΜΜΑ ΑΤΣΟ ΓΗΑΒΑΕΔΗ ΓΤΟ ΘΔΣΗΚΟΤ ΑΚΔΡΑΗΟΤ ΑΡΗΘΜΟΤ * ΚΑΗ ΣΤΠΧΝΔΗ ΣΟΝ ΜΔΓΑΛΤΣΔΡΟ. * CR EQU 16 ΚΧΓΗΚΟ ΑΝΑΓΝΧΣΖ ΓΔΛΣΗΧΝ LP EQU 18 ΚΧΓΗΚΟ ΔΚΣΤΠΧΣΖ * INPUT ORIG *+16 ΥΧΡΟ ΜΝΖΜΖ ΓΗΑ ΜΗΑ ΚΑΡΣΑ FIRST CON 0 ΥΧΡΟ ΜΝΖΜΖ ΓΗΑ ΣΟΝ ΠΡΧΣΟ ΑΡΗΘΜΟ OUTPUT ORΗG *+24 ΥΧΡΟ ΜΝΖΜΖ ΓΗΑ ΜΗΑ ΓΡΑΜΜΖ * ARXH IN INPUT(CR) ΑΝΑΓΝΧΣΖ ΜΗΑ ΚΑΡΣΑ JBUS *(CR) ΑΝΑΜΟΝΖ ΣΔΛΟΤ ΑΝΑΓΝΧΖ LDA ΗNPUT ΜΔΣΑΦΟΡΑ ΣΟΤ ΠΡΧΣΟΤ ΑΡΗΘΜΟΤ LDX INPUT+1 (ΥΑΡΑΚΣΖΡΔ) ΣΟΤ ra KAI rx NUM ΜΔΣΑΣΡΟΠΖ Δ ΑΡΗΘΜΖΣΗΚΖ ΜΟΡΦΖ STA FIRST Ο ΠΡΧΣΟ ΑΡΗΘΜΟ ΣΖ ΘΔΖ FIRST LDA ΗNPUT+2 ΜΔΣΑΦΟΡΑ ΣΟΤ ΓΔΤΣΔΡΟΤ ΑΡΗΘΜΟΤ LDX INPUT+3 (ΥΑΡΑΚΣΖΡΔ) ΣΟΤ ra KAI rx NUM ΜΔΣΑΣΡΟΠΖ Δ ΑΡΗΘΜΖΣΗΚΖ ΜΟΡΦΖ CMPA FIRST ΤΓΚΡΗΖ ΜΔΣΑΞΤ ra KAI FIRST JGE NEXT AN >= ΠΖΓΑΗΝΔ ΣΖ ΘΔΖ NEXT LDA FIRST ΦΟΡΣΧΔ ΣΖ ΘΔΖ FIRST ΣΟΝ ra NEXT CHAR ΜΔΣΑΣΡΟΠΖ ΣΟΤ ra Δ ΥΑΡΑΚΣΖΡΔ * * Ο ΚΑΣΑΥΧΡΖΣΖ ΑΥ ΠΔΡΗΔΥΔΗ ΣΟ ΑΠΟΣΔΛΔΜΑ * STA OUTPUT ΑΠΟΘΖΚΔΤΖ ΣΟΤ ΑΠΟΣΔΛΔΜΑΣΟ STX OUTPUT+1 ΣΖ ΜΝΖΜΖ ΜΔ ΤΜΒΟΛΗΚΖ ΓΗΔΤΘΤΝΖ * ΠΡΧΣΖ ΘΔΖ ΣΟ ΤΜΒΟΛΟ OUTPUT OUT OUTPUT(LP) ΔΚΣΤΠΧΖ ΜΗΑ ΓΡΑΜΜΖ JBUS *(LP) ΑΝΑΜΟΝΖ ΣΔΛΟΤ ΔΚΣΤΠΧΖ HLT END ΑΡXH Μεηά ην πξώην πέξαζκα ν Assembler ζα δεκηνπξγήζεη ηνλ παξαθάησ ζπκβνιηθό πίλαθα. πκβνιηθό όλνκα Σηκή ρόιηα CR 20 ηαζεξά LP 22 ηαζεξά INPUT 0000 Γηεύζπλζε FIRST 0020 Γηεύζπλζε OUTPUT 0021 Γηεύζπλζε ARXH 0051 Γηεύζπλζε NEXT 0065 Γηεύζπλζε

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 120 ην ζεκείν απηό ζα δεκηνπξγεζεί ε απνξία ζρεηηθά κε ην ζπκβνιηθό όλνκα NEXT, αθνύ όπσο θαίλεηαη ζην πξόγξακκα πξώηα ρξεζηκνπνηείηαη (JGE NEXT) θαη κεηά νξίδεηαη ε ηηκή ηνπ (NEXT CHAR). Γειαδή, όηαλ ν Assembler αλαδεηήζεη ηελ δηεύζπλζε πνπ αληηζηνηρεί ζηελ εηηθέηα ΝΔΥΣ, απηή δελ ζα ππάξρεη κέζα ζηνλ ζπκβνιηθό πίλαθα. Ζ αλαθνξά ζε κηα δηεύζπλζε πνπ δελ έρεη αθόκα νξηζζεί επηηξέπεηαη θαη νλνκάδεηαη προγελέζηερε αλαθνξά (forward reference). Σν πξόβιεκα ηεο εύξεζεο ηεο δηεύζπλζεο από ηνλ Assembler, ζε κηα πξνγελέζηεξε αλαθνξά νθείιεηαη θαη ε ύπαξμε ησλ δύν πεξαζκάησλ. Η Φεσδοεληοιή ORIG Με ηελ ςεπδνεληνιή ORIG κεηαβάιινπκε ηελ ηηκή ηνπ κεηξεηή ζέζεο. Ζ κνξθή ηεο ςεπδνεληνιήο ORIG είλαη: [εηηθέηα] ORIG πκβνιηθή έθθξαζε [ζρόιηα] ηε γξαθή ηεο εληνιήο ORIG ηεξνύληαη νη θαλόλεο ζέζεο πνπ ηζρύνπλ θαη ζηηο απιέο εληνιέο. Οη ([ ]) ζε έλα πεδίν ηεο εληνιήο ζεκαίλεη όηη ην πεδίν δελ είλαη ππνρξεσηηθό. ηε πξνθεηκέλε πεξίπησζε ε [εηηθέηα] θαη ηα [ζρόιηα] δελ είλαη ππνρξεσηηθά. Παράδεηγκα : ORIG 100 LDA P LDX Q ORIG 105 ADD W Ζ εληνιή LDA P ζα ηνπνζεηεζεί ζηελ δηεύζπλζε 0144, ε LDX Q ζηελ δηεύζπλζε 0145, ελώ ε εληνιή ADD W ζηελ 0151. Οη ζέζεηο 0146 έσο 0150 ζα παξακείλνπλ θελέο.(πξνζνρή, νη ηηκέο 0144 θ.ι.π είλαη ζην νθηαδηθό) ην νινθιεξσκέλν πξόγξακκα πνπ γξάςακε ζηελ πξνεγνύκελε παξάγξαθν, όηαλ ν assembler θηάζεη ζηελ εληνιή INPUT ORIG *+16, ν κεηξεηήο ζέζεο έρεη ηελ ηηκή 0000 (Ζ ςεπδνεληνιή EQU δελ επεξεάδεη ηελ ηηκή ηνπ κεηξεηή ζέζεο). Σν ζπκβνιηθό όλνκα ΗΝΡUT ζα ηνπνζεηεζεί ζηνλ ζπκβνιηθό πίλαθα κε ηηκή 0000. Ζ ηηκή ηεο έθθξαζεο *+16 είλαη 0000 + 16 10 =16 10 =20 8 Μελ μερλάηε όηη ην "*" ζπκβνιίδεη ηελ ηηκή ηνπ κεηξεηή ζέζεο ηελ ζηηγκή πνπ ππνινγίδνπκε ηελ έθθξαζε. Άξα ν κεηξεηήο ζέζεο ζα πάξεη ηελ ηηκή 20 8 θαη γηα ηνλ ιόγν απηό ε εηηθέηα ηεο επόκελεο ςεπδνεληνιήο (FIRST) ζα ηνπνζεηεζεί ζηνλ ζπκβνιηθό πίλαθα κε αληίζηνηρε ηηκή 20 8. Με ην ηέρλαζκα απηό δεζκεύζακε 16 ζπλερείο ζέζεηο ηεο κλήκεο κε δηεπζύλζεηο 0000, 0001, 0002,..., 0017. Σα INPUT, INPUT+1, INPUT+2, δελ είλαη ζπκβνιηθά νλόκαηα αιιά ζπκβνιηθέο εθθξάζεηο ησλ νπνίσλ νη ηηκέο είλαη 0000, 0001,..., 0017 αληίζηνηρα. (Πξνζνρή, νη δείθηεο είλαη ζην δεθαδηθό θαη νη δηεπζύλζεηο ζην νθηαδηθό ζύζηεκα). Ο ηξόπνο απηόο είλαη ηαπηόρξνλα θαη ε κέζνδνο νξηζκνύ ησλ κνλνδηάζηαησλ πηλάθσλ.

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 121 Παράδεηγκα : ORIG 15 PIN ORIG *+100 LDA P Οη δύν πξώηεο εληνιέο νξίδνπλ έλα κνλνδηάζηαην πίλαθα ΡΗΝ (όλνκα ηεο πξώηεο ζέζεο) ν νπνίνο έρεη 100 ζέζεηο θαη ζα ηνπνζεηεζεί ζηελ κλήκε από ηελ δηεύζπλζε 0017 έσο θαη ηελ 0162. Ζ εληνιή LDA P ζα ηνπνζεηεζεί ζηε δηεύζπλζε 0163. Αο ζπλνςίζνπκε ηώξα ηηο ελέξγεηεο πνπ θάλεη ν ζπκβνινκεηαθξαζηήο όηαλ ζπλαληά ηελ εληνιή ORIG (ζρήκαηα 5.2 θαη 5.3). Πρώηο πέραζκα: Β1: Αλ δελ ππάξρεη εηηθέηα πήγαηλε ζην βήκα Β3. Β2: Σνπνζέηεζε ηελ εηηθέηα ζηελ κία ζηήιε ηνπ ζπκβνιηθνύ πίλαθα θαη ζηελ άιιε βάιε ηελ ηξέρνπζα ηηκή ηνπ κεηξεηή. Β3: Τπνιόγηζε ηελ ηηκή ηεο παξάζηαζεο πνπ βξίζθεηαη ζηε ζέζε ηνπ παξάγνληα θαη βάιε ηελ ηηκή ζηνλ κεηξεηή ζέζε. Β4: Σνπνζέηεζε ηελ εληνιή ζην ελδηάκεζν αξρείν ζαλ ζρόιην Δεύηερο πέραζκα: Β1: Δθηύπσζε ηεο εληνιήο κε ηα ζπληαθηηθά ιάζε (αλ ππάξρνπλ). Η υεσδοεληοιή CON Mε ηελ ςεπδνεληνιή CON δίλνπκε ζε κηα ζέζε ηεο κλήκεο έλα ζπκβνιηθό όλνκα, θαη ηνπνζεηνύκε ζ' απηήλ(ζέζε) κηα αξρηθή ηηκή. Σελ ηηκή απηή έρνπκε δηθαίσκα λα ηελ αιιάμνπκε θαηά ηελ δηάξθεηα ηεο εθηέιεζεο ηνπ πξνγξάκκαηνο (κεηαβιεηή) ή λα ηελ δηαηεξήζνπκε ζηαζεξή. Οπζηαζηηθά κε ηελ παξαπάλσ ςεπδνεληνιή νξίδνπκε κηα κεηαβιεηή, όπσο ηελ μέξνπκε από ηνλ θιαζζηθό πξνγξακκαηηζκό. Ζ γεληθή κνξθή ηεο εληνιήο είλαη : [εηηθέηα] CON πκβνιηθή έθθξαζε [ζρόιηα] ηελ πεξίπησζε πνπ ππάξρεη εηηθέηα (ππάξρεη ζπλήζσο), ηόηε ην ζπκβνιηθό ηεο όλνκα κπαίλεη ζηνλ ζπκβνιηθό πίλαθα κε αληίζηνηρε ηηκή ηελ ηξέρνπζα ηηκή ηνπ κεηξεηή ζέζεο. Δπίζεο, θαηά ηε θόρηφζε ηοσ πξνγξάκκαηνο, ζηε ζέζε ηεο κλήκε κε δηεύζπλζε ηελ ηξέρνπζα ηηκή ηνπ κεηξεηή ζέζεο ζα ηνπνζεηεζεί ε αξηζκεηηθή ηηκή ηεο "έθθξαζεο", ε νπνία κπνξεί λα είλαη κηα αξηζκεηηθή ζηαζεξά ή κηα αξηζκεηηθή παξάζηαζε. Παράδεηγκα : ΟRIG 2000 ANT CON 10 ORIG 2010 MAX CON *+10-2000

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 122 ην παξάδεηγκα απηό νξίδνπκε κηα ζέζε κλήκεο κε ζπκβνιηθό όλνκα ΑΝΣ κε δηεύζπλζε 3720 8 θαη αξρηθή ηηκή 12 8. Oξίδνπκε επίζεο κηα άιιε ζέζε κλήκεο κε ζπκβνιηθό όλνκα ΜΑΥ, θαη δηεύζπλζε 3732 8. Ζ αξρηθή ηηκή ηεο παξαπάλσ κεηαβιεηήο ζα είλαη 24 8. ην εμήο όηαλ αλαθεξόκαζηε ζε δηεπζύλζεηο απηέο ζα είλαη ζην νθηαδηθό. ην νθηαδηθό επίζεο ζα είλαη θαη ηα πεξηερόκελα κλήκεο. Παράδεηγκα : Να γξαθεί έλα νινθιεξσκέλν πξόγξακκα ζε γιώζζα MIXAL ην νπνίν λα ελαιιάζζεη ηεο αξρηθέο ηηκέο δύν κεηαβιεηώλ Ρ θαη Q πνπ έρνπλ δηεπζύλζεηο 0004 θαη 0005 αληίζηνηρα. Δπίζεο ην πξόγξακκα λ' αξρίδεη από ηελ δηεύζπλζε 0012 8. * ΠΡΟΓΡΑΜΜΑ ΑΝΣΗΜΔΣΑΘΔΖ ΣΗΜΧΝ ΓΤΟ ΜΔΣΑΒΛΖΣΧΝ ORIG 4 P CON 7 OΡΗΜΟ ΜΔΣΑΒΛΖΣΖ P Q CON 12 ΟΡΗΜΟ ΜΔΣΑΒΛΖΣΖ Q * BEGIN ORIG 10 LDA P ra <--- MEM [P] LDX Q rx <--- MEM [Q] STA Q ra ---> MEM [Q] STX P ra ---> MEM [P] HLT END BEGIN Πξνηείλνπκε ζαλ άζθεζε λα θαηαζθεπάζεηε ηελ κεηάθξαζε ηνπ παξαπάλσ πξνγξάκκαηνο ζε γιώζζα κεραλήο ηνπ ΜΗΥ. πλνπηηθά νη ελέξγεηεο ηνπ ζπκβνινκεηαθξαζηή είλαη: (ζρήκαηα 5.2 5.3) Πρώηο πέραζκα: Β1: Αλ δελ ππάξρεη εηηθέηα πήγαηλε ζην βήκα Β3. Β2: Σνπνζέηεζε ηελ εηηθέηα ζηελ κία ζηήιε ηνπ ζπκβνιηθνύ πίλαθα θαη ζηελ άιιε βάιε ηελ ηξέρνπζα ηηκή ηνπ κεηξεηή. Β3: Αύμεζε θαηά έλα ηελ ηηκή ηνπ κεηξεηή ζέζεο Β4: Σνπνζέηεζε ηελ εληνιή καδί κε ηελ δηεύζπλζε πνπ ζα θνξησζεί ζηε κλήκε, ζην ελδηάκεζν αξρείν. Δεύηερο πέραζκα: Β1: Γεκηνύξγεζε ζην αξρείν εμόδνπ (object file) κηα εγγξαθή πνπ ζα αληηζηνηρεί ζε κηα ζέζε κλήκεο θαηά ηε θόξησζε ηνπ πξνγξάκκαηνο, κε δηεύζπλζε ηελ δηεύζπλζε πνπ αληηζηνηρήζεθε ζηελ εληνιή CON θαηά ην πξώην πέξαζκα θαη πεξηερόκελν ηελ ηηκή ηεο ζηαζεξά ή ηεο παξάζηαζεο πνπ βξίζθεηαη ζηε ζέζε ηνπ παξάγνληα. Β2: Δθηύπσζε ηεο εληνιήο κε ηα ζπληαθηηθά ιάζε (αλ ππάξρνπλ).

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 123 Η Φεσδοεληοιή ALF Ζ ςεπδνεληνιή ALF ελεξγεί όπσο αθξηβώο ε εληνιή CON κε ηε κόλε δηαθνξά όηη ζηε ζέζε ηνπ παξάγνληα κπνξνύλ λα ηνπνζεηεζνύλ 5 ραξαθηήξεο ζηηο ζηήιεο 12 έσο 21. Γειαδή ε ALF oξίδεη κηα κεηαβιεηή ραξαθηήξσλ. [εηηθέηα] ALF Υαξαθηήξεο [ζρόιηα] Παράδεηγκα 1 10 12 15 17 36 38 ----------+-+------+-+----------------+-+-------------- ORIG 100 A ALF ABCDE B ALF ΑΝ--- C ALF MIX-- D ALF 12345 E ALF -MIX- F ALF M---X Οη παξαπάλσ εληνιέο έρνπλ ζαλ απνηέιεζκα λα δεκηνπξγεζνύλ 6 ζέζεηο κλήκεο κε ζπκβνιηθά νλόκαηα A, B, C, D, E, F θαη αληίζηνηρεο δηεπζύλζεηο 0144, 0145, 0146,..., 0151. (κε ζπκβνιίδνπκε ηνλ θελό ραξαθηήξα). Σν πεξηερόκελν ησλ ζέζεσλ απηώλ ζα είλαη: 0144 + 01 02 03 04 05 0145 + 01 17 00 00 00 0146 + 16 11 33 00 00 0147 + 37 40 41 42 43 0150 + 00 16 11 33 00 0151 + 16 00 00 00 33 Γηα ηελ θαηαζθεπή ησλ πεξηερνκέλσλ ησλ κεηαβιεηώλ ζπκβνπιεπηήθακε ηνλ πίλαθα ηνπ βαζηθνύ ζπλόινπ ησλ ραξαθηήξσλ ηνπ ΜΗΥ (Πίλαθαο 4.1). Παράδεηγκα : ORIG 8 MESSAGE ALF Ο ΤΠΟ ALF ΛΟΓΗ ALF ΣΖ Μ ALF ΗΥ ην παξαπάλσ παξάδεηγκα νξίδνπκε ηέζζεξηο δηαδνρηθέο ζέζεηο κλήκεο κε δηεπζύλζεηο 10, 11, 12 θαη 13 αληίζηνηρα. Ζ πξώηε ζέζε είλαη κηα επώλπκε κεηαβιεηή κε ζπκβνιηθό όλνκα MESSAGE. Οη άιιεο ηξεηο ζέζεηο είλαη αλώλπκεο. Ζ αλαθνξά ζε απηέο γίλεηαη κέζσ ησλ εθθξάζεσλ MESSAGE+1, MESSAGE+2 kai MESSAGE+3 αληίζηνηρα. ηηο ηέζζεξηο απηέο ζέζεηο ηεο κλήκεο ηνπνζεηήζεθε ην κήλπκα " Ο ΤΠΟΛΟΓΗΣΖ ΜΗΥ" πλνπηηθά νη ελέξγεηεο ηνπ ζπκβνινκεηαθξαζηή είλαη: (ζρήκαηα 5.2, 5.3) Πρώηο πέραζκα: Β1: Αλ δελ ππάξρεη εηηθέηα πήγαηλε ζην βήκα Β3. Β2: Σνπνζέηεζε ηελ εηηθέηα ζηελ κία ζηήιε ηνπ ζπκβνιηθνύ

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 124 πίλαθα θαη ζηελ άιιε βάιε ηελ ηξέρνπζα ηηκή ηνπ κεηξεηή. Β3: Αύμεζε θαηά έλα ηελ ηηκή ηνπ κεηξεηή ζέζεο Β4: Σνπνζέηεζε ηελ εληνιή καδί κε ηελ δηεύζπλζε πνπ ζα θνξησζεί ζηε κλήκε, ζην ελδηάκεζν αξρείν. Δεύηερο πέραζκα Β1: Γεκηνύξγεζε ζην αξρείν εμόδνπ (object file) κηα εγγξαθή πνπ ζα αληηζηνηρεί ζε κηα ζέζε κλήκεο θαηά ηε θόξησζε ηνπ πξνγξάκκαηνο, κε δηεύζπλζε ηελ δηεύζπλζε πνπ αληηζηνηρήζεθε ζηελ εληνιή ALF θαηά ην πξώην πέξαζκα θαη πεξηερόκελν ηνπο ραξαθηήξεο πνπ βξίζθεηαη ζηε ζέζε ηνπ παξάγνληα. Β2: Δθηύπσζε ηεο εληνιήο κε ηα ζπληαθηηθά ιάζε (αλ ππάξρνπλ). Η Φεσδοεληοιή EQU H ςεπδνεληνιή EQU ηνπνζεηεί ζηνλ ζπκβνιηθό πίλαθα, ζπκβνιηθά νλόκαηα ησλ νπνίσλ νη ηηκέο δελ είλαη δηεπζύλζεηο, αιιά θάπνηεο ζηαζεξέο. Ζ ηηκέο απηέο ρξεζηκνπνηνύληαη ζαλ ζηαζεξέο θαηά ηελ δηάξθεηα ηεο εθηέιεζεο ηνπ πξνγξάκκαηνο. θαη ελζσκαηώλνληαη ζηνλ αξηζκεηηθό θώδηθα γιώζζαο κεραλήο θαηά ηε κεηάθξαζε. Ζ ςεπδνεληνιή EQU δελ αιιάδεη ηελ ηηκή ηοσ κεηξεηή ζέζεο θαη πξέπεη απαξαίηεηα λα θέξεη εηηθέηα. Με ηελ εληνιή απηή δίλνπκε νπζηαζηηθά έλα ζπκβνιηθό όλνκα ζε κία ζηαζεξά. Ζ ρξήζε ηεο έρεη ζαλ ζθνπό λα καο απαιιάμεη από δηαδνρηθέο δηνξζώζεηο ηνπ θώδηθα, όηαλ ε ζηαζεξά επαλαιακβάλεηαη ζπλερώο κέζα ζε απηόλ. Ζ γεληθή κνξθή ηεο ςεπδνεληνιήο είλαη: [εηηθέηα] EQU πκβνιηθή έθθξαζε [ζρόιηα] Παράδεηγκα : CR EQU 16 IN JBUS CARD(CR) *(CR) ην παξαπάλσ παξάδεηγκα, CR είλαη ην ζπκβνιηθό όλνκα ηνπ θσδηθνύ ηεο κνλάδαο εηζόδνπ. Με ηελ εληνιή EQU δώζακε ηελ ηηκή (16) 10 ζην ζπκβνιηθό όλνκα ην νπνίν κπνξνύκε λα ρξεζηκνπνηνύκε αληί ηεο ηηκήο ζηαζεξάο 16 κέζα ζην πξόγξακκα. Οη αξηζκεηηθέο ηηκέο ησλ ζηαζεξώλ ελζσκαηώλνληαη ζηηο εληνιέο πνπ ηηο ρξεζηκνπνηνύλ θαηά ηελ δηάξθεηα ηεο κεηάθξαζεο. Απηόο είλαη άιισζηε ν ιόγνο πνύ δελ κπνξνύκε λα ηηο αιιάμνπκε θαηά ηελ δηάξθεηα εθηέιεζεο ηνπ πξνγξάκκαηνο. Παράδεηγκα : N EQU 16 M EQU 3+2 P EQU M*N ην ζεκείν απηό ζα πξέπεη λα ζεκεηώζνπκε όηη ππάξρεη κηα θαηεγνξία εληνιώλ πνπ ζηε ζέζε ηνπ παξάγνληα πξέπεη λα ηνπνζεηνύληαη κόλν ζπκβνιηθά νλόκαηα ζηαζεξώλ ( ENTA, DECA, INCA, ENNA θ.ι.π) θαη κηα άιιε θαηεγνξία πνπ πξέπεη λα ηνπνζεηνύληαη κόλν ζπκβνιηθά νλόκαηα κεηαβιεηώλ (STA, LDA, CMPA, JLE,

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 125 θ.ι.π). Πξνζέμηε απηή ηε δηάθξηζε, γηαηί ν ΜΗΥ δελ αληηιακβάλεηαη ηε δηαθνξά θαη απηό ζα ζαο νδεγήζεη ζε ιογηθά ιάζε. ην παξάδεηγκα πνπ αθνινπζεί γίλεηαη εζειεκέλα απηό ην ιάζνο. Παράδεηγκα : Αο ππνζέζνπκε όηη έρνπκε ην παξαθάησ πξόγξακκα. ORIG 8 CONST EQU 3 VAR CON 13 * BEGIN LDΥ CONST ΔΝΣΑ VAR END BEGIN Πξόζεζε καο ήηαλ λα γξάςνπκε ηηο εληνιέο αληίζεηα, δειαδή : BEGIN LDΥ VAR ΔΝΣΑ CONST END BEGIN θαη λα ηνπνζεηήζνπκε ζηνλ θαηαρσξεηή Υ ηελ ηηκή 13 θαη ζηνλ θαηαρσξεηή Α ηελ ηηκή 3. εκεηώλνπκε όηη ε εληνιή LDX εξκελεύεη ηνλ παξάγνληα ζαλ ζπκβνιηθό όλνκα δηεύζπλζεο θαη ε εληνιή ENTA εξκελεύεη ηνλ παξάγνληα ζαλ ζπκβνιηθό όλνκα ζηαζεξάο. Αο δνύκε όκσο ηη ζα γίλεη ζηελ πξαγκαηηθόηεηα. Ο ΜΗΥ ινηπόλ εξκελεύνληαο ζηελ εληνιή LDX CONST ην ζύκβνιν CONST ζαλ κεηαβιεηή, ζα πξνζπαζήζεη λα θνξηώζεη ζηνλ rυ ην πεξηερόκελν ηεο δηεύζπλζεο 3, ην νπνίν είλαη αόξηζην. Δξκελεύνληαο ζηελ ENTA VAR ην ζύκβνιό VAR ζαλ ζηαζεξά, ζα θνξηώζεη ζηνλ rα ηελ ηηκή 10 8 πνπ δελ είλαη ηίπνηε άιιν παξά ε δηεύζπλζε ηεο κεηαβιεηήο VAR. Ο ΜΗΥ δειαδή ζα ππαθνύζεη ζηελ ινγηθή ησλ εληνιώλ θαη ζηνλ ζπκβνιηθό πίλαθα ν νπνίνο ζα έρεη ηε κνξθή: ύκβνιν ηηκή CONST 3 VAR 10 πλνπηηθά νη ελέξγεηεο ηνπ ζπκβνινκεηαθξαζηή είλαη: (ζρήκαηα 5.2 5.3) Πρώηο πέραζκα: Β1: Σνπνζέηεζε ηελ εηηθέηα ζηελ κία ζηήιε ηνπ ζπκβνιηθνύ πίλαθα θαη ζηελ άιιε βάιε ηελ ηηκή ηεο ζηαζεξάο ή ηεο ζπκβνιηθήο παξάζηαζεο πνπ βξίζθεηαη ζηε ζέζε ηνπ παξάγνληα. Β2: Σνπνζέηεζε ηελ εληνιή ζην ελδηάκεζν αξρείν ζαλ ζρόιην Δεύηερο πέραζκα: Β1: Δθηύπσζε ηεο εληνιήο κε ηα ζπληαθηηθά ιάζε (αλ ππάξρνπλ). Η υεσδοεληοιή END Ζ ςεπδνεληνιή απηή θάλεη δύν δνπιεηέο. Πιεξνθνξεί ηνλ Assembler όηη έρνπλ ηειεηώζεη όιεο νη ζπκβνιηθέο εληνιέο ηνπ πξνγξάκκαηνο (πξώην πέξαζκα).

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 126 Δπί πιένλ θαηά ην δεύηεξν πέξακα ελεκεξώλεη ην εθηειέζηκό αξρείν ηειεπηαία εγγξαθή) κε ηελ δηεύζπλζε έλαξμήο ηνπ πξνγξάκκαηνο, δειαδή ηελ δηεύζπλζε ηεο πξώηεο εθηειέζηκήο εληνιήο. Σελ δηεύζπλζε έλαξμεο ηελ πιεξνθνξείηαη ν ππνινγηζηήο θαη ηελ κεηαβηβάδεη ζηνλ απαξηζκεηή (programm counter) θαηά ηε θάζε ηεο θόξησζεο ηνπ πξνγξάκκαηνο. ' Έρεη γεληθή κνξθή : END [ζπκβνιηθή δηεύζπλζε] [ζρόιηα] Σν ζπκβνιηθό όλνκα πνπ ππάξρεη ζην πεδίν ηνπ παξάγνληα είλαη ε δηεύζπλζε ηεο εληνιήο από ηελ νπνία ν πξνγξακκαηηζηήο επηζπκεί λα αξρίζεη ε εθηέιεζε ηνπ πξνγξάκκαηνο. Αλ δελ ππάξρεη, ηόηε ε εθηέιεζε αξρίδεη από ηελ δηεύζπλζε 0000. Αλ ππάξρεη, ηόηε ε εθηέιεζε ζ' αξρίζεη από ηελ δηεύζπλζε ζηελ νπνία αληηζηνηρεί ην ζπκβνιηθό όλνκα. ην νινθιεξσκέλν πξόγξακκα πνπ παξνπζηάδνπκε ζε πξνεγνύκελε παξάγξαθν (εύξεζε ηνπ κεγαιπηέξνπ) ππάξρεη ε εληνιή END ARXH. Σν ζπκβνιηθό όλνκα ARXH έρεη δηεύζπλζε 0051 αθξηβώο δειαδή ηελ δηεύζπλζε ηεο πξώηεο εληνιήο ηνπ πξνγξάκκαηνο. Αθνινπζνύλ ηέζζεξα παξαδείγκαηα ζηα νπνία θαίλεηαη ε δηαδηθαζία κεηάθξαζεο ελόο ζπκβνιηθνύ θώδηθα. Παραδείγκαηα πρώηο: Q CON 10 P CON 0 Πεγαίος θώδηθας C EQU 8 BEGIN ENTA C ADD Q STA P HLT END BEGIN ΠΡΧΣΟ ΠΕΡΑΜΑ ύκβνιν Σηκή Q 0 σκβοιηθός πίλαθας P 1 C 10 BEGIN 2

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 127 0000: Q CON 10 0001: P CON 0 0002: C EQU 8 Ελδηάκεζο Αρτείο 0002: BEGIN ENTA C 0003: ADD Q 0004: STA P 0005: HLT END BEGIN ΔΕΤΣΕΡΟ ΠΕΡΑΜΑ Δθηειέζηκν αξρείν 0000: 00000000012 Δεδοκέλα 0001: 00000000000 0002: 00010000260 Εθηειέζηκος Κώδηθας 0003: 00000000501 0004: 00001000530 0005: 00000000205 0002: 00000000000 Trailer Record (πεξηέρεη ηε Starting Address) πνπ ζα κεηαθεξζεί ζηνλ Program Counter Program Counter 0000: 00000000012 Q 0001: 00000000000 P 0002: 00010000260 BEGIN Εηθόλα Μλήκες 0003: 00000000501 0004: 00001000530 0005: 00000000205 Παράδεηγκα δεύηερο ORIG 4 Q CON 10 P CON 0 Πεγαίος θώδηθας C EQU 8 BEGIN ENTA C ADD Q STA P HLT END BEGIN

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 128 ΠΡΧΣΟ ΠΕΡΑΜΑ ύκβνιν Σηκή Q 4 σκβοιηθός πίλαθας P 5 C 10 BEGIN 6 0000 ORIG 4 0004: Q CON 10 0005: P CON 0 0006: C EQU 8 Ελδηάκεζο Αρτείο 0006: BEGIN ENTA C 0007: ADD Q 0010: STA P 0011 HLT END BEGIN ΔΕΤΣΕΡΟ ΠΕΡΑΜΑ Δθηειέζηκν αξρείν 0004: 00000000012 Δεδοκέλα 0005: 00000000000 0006: 00010000260 Εθηειέζηκος Κώδηθας 0007: 00004000501 0010: 00005000530 0011: 00000000205 0006: 00000000000 Trailer Record (πεξηέρεη ηε Starting Address) πνπ ζα κεηαθεξζεί ζηνλ Program Counter Program Counter 0004: 00000000012 Q 0005: 00000000000 P 006: 00010000260 BEGIN Δηθόλα Μλήκεο 0007: 00004000501 0010: 00005000530 0011: 00000000205

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 129 Παράδεηγκα ηρίηο: ORIG 4 Q CON 10 P CON 0 Πεγαίνο θώδηθαο C EQU 8 ORIG *+3 BEGIN ENTA C ADD Q STA P HLT END BEGIN ΠΡΧΣΟ ΠΕΡΑΜΑ ύκβνιν Σηκή Q 4 σκβοιηθός πίλαθας P 5 C 10 BEGIN 11 0000 ORIG 4 0004: Q CON 10 0005: P CON 0 0006: C EQU 8 Ελδηάκεζο Αρτείο ORIG *+3 0011: BEGIN ENTA C 0012: ADD Q 0013: STA P 0014: HLT END BEGIN ΔΕΤΣΕΡΟ ΠΕΡΑΜΑ Δθηειέζηκν αξρείν 0004: 00000000012 Δεδοκέλα 0005: 00000000000 0011: 00010000260 Εθηειέζηκος Κώδηθας 0012: 00004000501 0013: 00005000530 0014: 00000000205 Program Counter 0011: 00000000000 Trailer Record (πεξηέρεη ηε Starting Address) πνπ ζα κεηαθεξζεί ζηνλ Program Counter

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 130 Γ# 0-3 Κελέο 0004: 00000000012 Q 0005: 00000000000 P Γ# 6-10 Κελέο 0011: 00010000260 BEGIN Εηθόλα Μλήκες 0012: 00004000501 0013: 00005000530 0014: 00000000205 Παράδεηγκα ηέηαρηο: ORIG 5 CR EQU 16 COUNT CON 0 ORIG *+2 PR EQU 12 ONE CON 1 DEK6 CON 15 INPUT ORIG *+16 OUTPUT ORIG *+24 BEGIN IN INPUT(CR) JBUS *(CR) LDA COUNT ENT1 0 LOOP LDX INPUT,1 ADD ONE STA COUNT STX OUTPUT,1 CMPA DEK6 INC1 1 JLE LOOP OUT OUTPUT(PR) JBUS *(PR) HLT END BEGIN ΠΗΓΑΙΟ ΚΧΔΙΚΑ ύκβνια ηηκέο CR 20 COUNT 5 PR 14 ONE 10 σκβοιηθός πίλαθας DEK6 11 INPUT 12 OUTPUT 32 BEGIN 62 LOOP 66

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 131 Ελδηάκεζο αρτείο ORIG 5 0005 CR EQU 16 0005 COUNT CON 0 0006 ORIG *+2 0010 PR EQU 12 0010 ONE CON 1 0011 DEK6 CON 15 0012 INPUT ORIG *+16 0032 OUTPUT ORIG *+24 0062 BEGIN IN INPUT(CR) 0063 JBUS *(CR) 0064 LDA COUNT 0065 ENT1 0 0066 LOOP LDX INPUT,1 0067 ADD ONE 0070 STA COUNT 0071 STX OUTPUT,1 0072 CMPA DEK6 0073 INC1 1 0074 JLE LOOP 0075 OUT OUTPUT(PR) 0076 JBUS *(PR) 0077 HLT END BEGIN ΔΕΤΣΕΡΟ ΠΕΡΑΜΑ Εθηειέζηκο αρτείο 0005: 00000000000 0010: 00000000001 Δεδοκελα 0011: 00000000017 0062: 00012002044 0063: 00063002042 0064: 00005000510 0065: 00000000261 0066: 00012010517 0067: 00010000501 0070: 00005000530 Εθηειέζηκος θώδηθας 0071: 00032010537 0072: 00011000570 0073: 00001000061 0074: 00066001147 0075: 00032001445 0076: 00076001442 0077: 00000000205 0062: 00000000000 Trailer Record (πεξηέρεη ηε Starting Address) πνπ ζα Μεηαθεξζεί ζηνλ Program Counter

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 132 Εηθόλα κλήκες 0005: 00000000000 COUNT 0010: 00000000001 ONE 0011: 00000000017 DEK6 0012: 00000000000 INPUT (buffer) Δεδοκέλα 16 ζέζεηο 0031 00000000000 0032 00000000000 OUTPUT (buffer) 24 ζέζεηο 0061 00000000000 BEGIN 0062: 00012002044 0063: 00063002042 0064: 00005000510 0065: 00000000261 0066: 00012010517 0067: 00010000501 0070: 00005000530 Εθηειέζηκος Κώδηθας 0071: 00032010537 0072: 00011000570 0073: 00001000061 0074: 00066001147 0075: 00032001445 0076: 00076001442 0077: 00000000205 0062: program counter ΑΚΗΕΙ 1) Ο ζπκβνινκεηαθξαζηήο ΜΗΥΑL κεηά ηε κεηάθξαζε ελόο πξνγξάκκαηνο παξήγαγε ηνλ παξαθάησ ζπκβνιηθό πίλαθα: ύκβνια Γηεπζύλζεηο LP 2723 8 BUT 2731 8 Α 2720 8 S 2721 8 BEGIN 2722 8 Μεηά ηε θόξησζε ηνπ πξνγξάκκαηνο ή κλήκε είρε ηελ παξαθάησ εηθόλα:

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 133 Γηεύζ. Πεξηερόκελν 0 1 2 3 4 5 Bytes 2720 0 00 00 00 00 02 2721 0 00 00 00 00 01 2722 0 00 01 00 02 61 2723 0 27 21 00 05 10 2724 0 27 20 00 05 03 2725 0 27 31 00 04 50 2726 0 00 05 00 02 06 2727 0 00 10 00 05 71 2730 0 27 23 00 11 47 2731 0 00 00 00 02 05 Γξάςηε ην πξόγξακκα ζε MIXAL πνπ πξνήιζε από ηνλ παξαπάλσ αξηζκεηηθό θώδηθα. 2) Πεξηγξάςηε ηηο ςεπδνεληνιέο ORIG, EQU θαη COM. Γξάςηε έλα κηθξό πξόγξακκα ζε ΜΗΥΑL ην νπνίν λα πεξηέρεη ηηο παξαπάλσ εληνιέο. Πνηα δηαθνξά ππάξρεη κεηαμύ ησλ εληνιώλ (1) θαη (2): ORIG 7 ERG EQU 1435 (1) ERG CON 1435 (2) 3) Γίλεηαη ην παξαθάησ πξόγξακκα ζε ΜΗΥΑL ORIG 100 CARD ORIG *+16 M CON 16 BLANK ALF BEGIN ENT2 0 ΔΝΣ1 0 L1 ENT3 5 LDA CARD,1 L2 CMPA BLANK(1:1) JNE L3 INC2 1 L3 SLA 1 J3P L2 INC1 1 CMP1 M JL L1 HLT END BEGIN Γξάςηε ην αληίζηνηρν ζε γιώζζα κεραλήο ηνπ ΜΗΥ. Γώζηε ηνλ ζπκβνιηθό πίλαθα πνπ ζα παξαρζεί. Γώζηε επίζεο θαη ηνλ ράξηε κλήκεο.

Κεθάιαην 5 H γιώζζα Assembly ηνπ ΜΗΥ 134 4) Κάληε ην ίδην κε ην πξόγξακκα. ORIG 10 CARD ORIG *+16 Κ ΔQU 1 M CON 16 Z CON 0 ZERO EQU 0 ORIG 100 BEGIN ENT2 ZERO ΔΝΣ1 ZERO L1 ENT3 5 LDA CARD,1 L2 CMPA Z JNE L3 INC2 1 L3 SLA 1 J3P L2 INC1 K CMP1 M JL L1 HLT END BEGIN 5) Πνηεο είλαη νη εληνιέο θόξησζεο θαηαρσξεηώλ θαη πώο ιεηηνπξγνύλ. Αλ ππνζέζνπκε όηη κηα ζέζε ηεο κλήκεο κε ζπκβνιηθό όλνκα MEMORY έρεη πεξηερόκελν : MEMORY 0 23 45 00 00 01 Πνην ζα είλαη ην πεξηερόκελν ησλ θαηαρσξεηώλ κεηά ηελ εθηέιεζε ησλ εληνιώλ: LDA LDX LD1 LD2 LD3 LD4N LD5N LD6N MEMORY(0:2) MEMORY(2:4) MEMORY MEMORY(0:2) MEMORY(0:0) MEMORY(0:1) MEMORY(0:2) MEMORY(4:5)