slide1
Download
Skip this Video
Download Presentation
Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

Loading in 2 Seconds...

play fullscreen
1 / 19

Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης - PowerPoint PPT Presentation


  • 98 Views
  • Uploaded on

Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης. Μάθημα Οργάνωση και Αρχιτεκτονική Υπολογιστών Κεφαλαίο Έκτο Ο προγραμματισμός στη συμβολική γλώσσα μηχανής του ΜΙΧ 1009 Μέρος πρώτο Καθηγητής: Α. Βαφειάδης 200 8. Βασικοί συντακτικοί κανόνες.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης' - elewa


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1
Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

Μάθημα

Οργάνωση και Αρχιτεκτονική Υπολογιστών

Κεφαλαίο Έκτο

Ο προγραμματισμός στη συμβολική γλώσσα μηχανής του ΜΙΧ 1009

Μέρος πρώτο

Καθηγητής: Α. Βαφειάδης

2008

slide2
Βασικοί συντακτικοί κανόνες
  • Top-down-programming
  • Προσθήκη σχολίων
  • Δεν αναμιγνύουμε στον κώδικα εκτελέσιμες εντολές με ψευδοεντολές

Λάθος

slide3
Αριθμητικές πράξεις
  • Πρόσθεση

LDA PAR1 REG[A] <-- REG[A] + MEM[PAR2]

ADD PAR2 REG[A] <-- MEM[PAR1]

STA RES MEM[RES] <-- REG[A]

  • Αφαίρεση

LDA PAR1 REG[A] <-- MEM[PAR1]

SUB PAR2 REG[A] <-- REG[A] - MEM[PAR2]

STA RES MEM[RES] <-- REG[A]

  • Πολλαπλασιασμός

LDA PAR1 REG[A] <-- MEM[PAR1]

MUL PAR2 REG[AX] <-- REG[A] x MEM[PAR2]

STX RES MEM[RES] <-- REG[X]

Οι κώδικες ισχύουν αν τα αποτελέσματα των πράξεων είναι < 230-1

slide4
Αριθμητικές πράξεις
  • Διαίρεση

* ΦΟΡΤΩΣΗ ΔΙΑΙΡΕΤΕΟΥ (A ΤΡΟΠΟΣ)

LDX PAR1 ΦΟΡΤΩΣΗ ΤΟΥ ΜΕΓΕΘΟΥΣ ΣΤΟΝ rAX

LDA PAR1(0:0) ΦΟΡΤΩΣΗ ΤΟΥ ΠΡΟΣΗΜΟΥ ΣΤΟΝ rAX

DIV PAR2 ΔΙΑΙΡΕΣΗ

* ΦΟΡΤΩΣΗ ΔΙΑΙΡΕΤΕΟΥ (Β ΤΡΟΠΟΣ)

LDA PAR1 ΦΟΡΤΩΣΗ ΤΟΥ PAR1 ΣΤΟΝ rA

SRAX 5 ΜΕΤΑΤΟΠΙΣΗ ΤΟΥ ΜΕΓΕΘΟΥΣ

DIV PAR2 ΔΙΑΙΡΕΣΗ

slide5
Σύνθετες αριθμητικές πράξεις – Παράδειγμα 1
  • Υπολογισμός της Παράστασης W = P + Κ * I

LDA K rA <----- K

MUL I rAX ΠΕΡΙΕΧΕΙ K * I

SLAX 5 rA <------ rX

ADD P rA ΠΕΡΙΕΧΕΙ P + K * I

STA W H ΘΕΣΗ W ΠΕΡΙΕΧΕΙ P + K * I

Χωρίς την εντολή SLAX

LDA K rA <----- K

MUL I rAX ΠΕΡΙΕΧΕΙ K * I

STX HELP HELP <----- rX

LDA HELP rA ΠΕΡΙΕΧΕΙτο K * I

ADD P rA ΠΕΡΙΕΧΕΙ P + K * I

STA W H ΘΕΣΗ W ΠΕΡΙΕΧΕΙ P + K * I

slide6
Σύνθετες αριθμητικές πράξεις – Παράδειγμα 2
  • Υπολογισμός της Παράστασης W = P –(k*I)/D

LDA K rA <------ K

MUL I rAX ΠΕΡΙΕΧΕΙ K*I

DIV D rA ΠΕΡΙΕΧΕΙ (K*I)/D

SUB P rA ΠΕΡΙΕΧΕΙ (k*I)/D-P

STA W W <------ (K*I)/D-P

LDAN W rA ΠΕΡΙΕΧΕΙ P-(K*I)/D

STA W W <------ P-(K*I)/D

slide7
Σύνθετες αριθμητικές πράξεις – Παράδειγμα 3
  • Υπολογισμός της Παράστασης W = (A+B)*(L-M)+2+(A-b)/Z

* ΔΕΝ ΥΠΑΡΧΕΙ ΠΕΡΙΠΤΩΣΗ OVERFLOW

* ΠΡΟΣΗΜΟ ΤΟΥ rA = ΠΡΟΣΗΜΟ ΤΟΥ rX ΜΕΤΑ ΤΟΝ ΠΟΛ/ΜΟ

*

LDA A ΣΤΗ ΒΟΗΘΗΤΙΚΗ ΘΕΣΗ ΤΗΣ ΜΝΗΜΗΣ Η

ADD B ΑΠΟΘΗΚΕΥΟΥΜΕ ΤΗΝ ΠΑΡΑΣΤΑΣΗ (Α+Β)

STA H ΓΙΑ ΝΑ ΤΗΝ ΧΡΗΣΙΜΟΠΟΙΗΣΟΥΜΕ ΣΤΟΝ

LDA L ΠΟΛΛΑΠΛΑΣΙΑΣΜΟ ΜΕ ΤΗΝ (L-M)

SUB M

MUL H rAX ΠΕΡΙΕΧΕΙ (A+B)*(L-M)

INCX 2 rA ΠΕΡΙΕΧΕΙ (Α+Β)*(L-M)+2

STX H ΑΠΟΘΗΚΕΥΣΗ ΣΕ ΒΟΗΘΗΤΙΚΗ ΜΕΤΑΒΛΗΤΗ

LDA A rΑ <------ Α

SUB Β rΑ ΠΕΡΙΕΧΕΙ Α-Β

SRAX 5 rΧ ΠΕΡΙΕΧΕΙ Α-Β

* (ΤΟ ΠΡΟΣΗΜΟ ΕΜΕΙΝΕ ΣΤΟΝ rA)

DIV Z rΑ ΠΕΡΙΕΧΕΙ (Α-Β)/Ζ

ADD H rΑ ΠΕΡΙΕΧΕΙ (Α+Β)*(L-Μ)+2+(Α-Β)/Ζ

STA W W ΠΕΡΙΕΧΕΙ (Α+Β)*(L-Μ)+2+(Α-Β)/Ζ

slide8
Σύνθετες αριθμητικές πράξεις – Παράδειγμα 4
  • Υπολογισμός της Παράστασης W = (M-L)*(L/Z) Ζ # 0

LDAMrA <---------- M

SUBLrA ΠΕΡΙΕΧΕΙ M-L

STA H ΒΟΗΘΗΤΙΚΗ ΜΕΤΑΒΛΗΤΗ ΜΕ M-L

LDAKrA <---------- K

SRAX 5 rAX <---------- K

DIV Z rA <---------- K/Z

MUL H rAX ΠΕΡΙΕΧΕΙ (M-L)*(K/Z)

STX W W <---------- (M-L)*(K/Z)

Εναλλακτικός κώδικας στηριζόμενος στη παρατήρηση ότι (M-L)*(K/Z) = ((M-L)*K)/Z).

LDA M rA <-------- M

SUB L rA ΠΕΡΙΕΧΕΙ M-L

MUL K rAX ΠΕΡΙΕΧΕΙ (M-L)*K

DIV Z rAX ΠΕΡΙΕΧΕΙ ((M-L)*K)/Z

STA W W <-------- ((M-L)*K

slide9
Υπερπλήρωση
  • Τύποι Υπερπλήρωσης
    • Υπερπλήρωση που ανιχνεύεται από το Hardware
      • Πρόσθεση
      • Αφαίρεση
      • Διαίρεση
    • Υπερπλήρωση που ανιχνεύεται από τον προγραμματιστή
      • Πολλαπλασιασμός
hardware
Υπερπλήρωση που ανιχνεύεται από το Hardware
  • Εντολή JOV

ΑΝ ΣΥ = "ΟΝ" ΤΟΤΕ

ο ΣΥ παίρνει την τιμή "ΟFF"

ο καταχωρητής J παίρνει την τρέχουσα τιμή του PC

ο PC παίρνει την τελική διεύθυνση του παράγοντα της εντολής JOV

ΔΙΑΦΟΡΕΤΙΚΑ

το πρόγραμμα πηγαίνει στην επόμενη εντολή

  • Εντολή JNOV

ΑΝ ΣΥ = "ΟFF" ΤΟΤΕ

ο καταχωρητής J παίρνει την τρέχουσα τιμή του PC

ο PC παίρνει την τελική διεύθυνση του παράγοντα της εντολής JOV

ΔΙΑΦΟΡΕΤΙΚΑ

ο ΣΥ παίρνει την τιμή "ΟFF"

το πρόγραμμα πηγαίνει στην επόμενη εντολή

hardware 1
Υπερπλήρωση που ανιχνεύεται από το Hardware – Παράδειγμα 1

LDAMrA <-------- M

SUBLrA ΠΕΡΙΕΧΕΙ M-L

MULKrAX ΠΕΡΙΕΧΕΙ (M-L)*K

DIVZ rAX ΠΕΡΙΕΧΕΙ ((M-L)*K)/Z

JOV OFLOWΕΛΕΓΧΟΣΥΠΕΡΠΛΗΡΩΣΗΣ

STA W W <-------- ((M-L)*K

.....

OFLOW ΕΝΤΟΛΗ ΣΤΟ ΤΕΛΟΣ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ

ΗLT

Μια άλλη αντιμετώπιση είναι και η παρακάτω (JNOV):

LDAMrA <-------- M

SUB L rA ΠΕΡΙΕΧΕΙ M-L

MUL K rAX ΠΕΡΙΕΧΕΙ (M-L)*K

DIV Z rAX ΠΕΡΙΕΧΕΙ ((M-L)*K)/Z

JNOV NFLOW ΕΛΕΓΧΟΣ ΥΠΕΡΠΛΗΡΩΣΗΣ

…... MΗΜΥΜΑ ΟΤΙ Η ΤΙΜΗ ΤΗΣ ΠΑΡΑΣΤΑΣΗΣ

....... ΔΕΝ ΕΙΝΑΙ ΑΞΙΟΠΙΣΤΗ (ΥΠΕΡΠΛΗΡΩΣΗ)

ΗLT

NFLOW STA W W <-------- ((M-L)*K

slide12
Υπερχείλιση που ανιχνεύεται από τον χρήστη (Πολλαπλασιασμός)

OUTPUT ORIG *+24 ΟΡΙΣΜΟΣ OUTPUT BUFFER

MESSAGE ALF ΥΠΕΡΧ ΤΟΠΟΘΕΤΗΣΗ ΜΗΝΥΜΑΤΟΣ

ALF ΕΙΛΗΣ ΣΤΗΝ ΠΕΡΙΟΧΗ MESSAGE

ALF Η 3 ΘΕΣΕΙΣ ΜΝΗΜΗΣ

. . . . . . . .

LDA PAR1 REG[A] <-- MEM[PAR1]

MUL PAR2 REG[AX] <-- REG[A] x MEM[PAR2]

JANZ OFLOWΑν rA <> 0 πήγαινεστο OFLOW

STX RES MEM[RES] <-- REG[X]

. . . . . . . .

ΟFLOW NOP ΜΗΝ ΚΑΝΕΙΣ ΤΙΠΟΤΕ

* MΕΤΑΦΟΡΑ ΤΟΥ ΜΗΝΥΜΑΤΟΣ ΑΠΟ MESSAGE ΣΕ OUTPUT

LDA MESSAGE

STA OUTPUT

LDA MESSAGE+1

STA OUTPUT+1

LDA MESAGE+2

STA OUTPUT+2

* ΕΚΤΥΠΩΣΗ

OUT OUTPUT(LP)

JBUS *(LP)

HLT

END BEGIN

slide13
Δημιουργία βρόγχων

Μ1 ΕQU 1 ΑΡΧΙΚΗ ΤΙΜΗ

Μ2 CON 10 ΤΕΛΙΚΗ ΤΙΜΗ

Μ3 EQU 1 ΒΗΜΑ ΒΡΟΓΧΟΥ

.....

ΕΝΤ1 Μ1 rI1 <----- M1

LOOP NOP ΑΝΩ ΟΡΙΟ ΒΡΟΓΧΟΥ

.....

εντολές βρόγχου

.....

INC1 Μ3 rI1 <--- rI1 + Μ3

CMP1 M2 ΣΥΓΚΡΙΣΗ ΜΕ Μ2

JLE LOOP ΕΠΑΝΑΛΗΨΗ ΑΝ ΜΙΚΡΟΤΕΡΟ Η ΙΣΟ

slide14
Δημιουργία βρόγχων

ENT1 0,5 rΙ1 <----- rI5

LOOP NOP ΑΝΩ ΟΡΙΟ ΒΡΟΓΧΟΥ

.....

εντολές βρόγχου

.....

INC1 0,6 rI1 <----- rI1 + rI6

CMP1 Μ2 ΣΥΓΚΡΙΣΗ ΜΕ Μ2

JLE LOOP ΕΠΑΝΑΛΗΨΗ ΥΠΟ ΣΥΝΘΗΚΗ

Ανταλλαγή τιμών καταχωρητών δεικτών

Πραγματική σταθερά = αρχική σταθερά + REG(Ι)

REG(1) = 0 + REG(5) --- REG(1) = REG(5)

slide15
Δημιουργία βρόγχων –Παράδειγμα
  • Να υπολογιστεί το άθροισμα των αριθμών από 1 ως 10.

Ν CON 10 ΟΡΙΣΜΟΣ ΣΤΑΘΕΡΑΣ Ν

.....

ENT1 1 rΙ1 <---- 1 (ΑΡΧΙΚΗ ΤΙΜΗ ΜΕΤΡΗΤΗ)

ENTA 0 ΜΗΔΕΝΙΣΜΟΣ ΑΘΡΟΙΣΤΗ

LOOP INCΑ 0,1 rA <---- rA + rI1

ΙΝC1 1 rI1 <---- rI1 + 1

CMP1 Ν ΣΥΓΚΡΙΣΗ ΜΕ ΤΟ Ν

JLE LOOP ΕΠΑΝΑΛΗΨΗ ΥΠΟ ΣΥΝΘΗΚΗ

slide16
Χρήση πινάκων

Μνήμη

0

1

2

3

4

5

6

7

10

11

12

13

1 PIN

2

3

4

5

6

Ορισμός πίνακα

ORIG 3

PIN ORIG *+6

Τυχόν στοιχείο του πίνακα

PIN-1,I

Όπου Ι ο καταχωρητής που παίζει τον ρόλο του δείκτη

LDA PIN-1,4

Υπολογισμός της τελικής διεύθυνσης τουπέμπτου στοιχείου του πίνακα. (ο rI4 θα είναι ο δείκτης)

REG(4)  5 Σχετική διεύθυνση

V= m +REG(4)=PIN-1+REG(4)= 3-1+5= 7 Τελική Διευθ.

slide17
Δίνεται ένας πίνακας μιας διάστασης με 100 θέσεις. Να γραφεί ένα πρόγραμμα το οποίο να υπολογίζει τα αθροίσματα των περιττών και αρτίων αριθμών που περιέχονται στον πίνακα.

N CON 100 ΜΗΚΟΣ ΠΙΝΑΚΑ

TWO CON 2 ΜΙΑ ΒΟΗΘΗΤΙΚΗ ΜΕΤΑΒΛΗΤΗ

SUMM CON 0 ΑΘΡΟΙΣΤΗΣ ΜΟΝΩΝ ΑΡΙΘΜΩΝ

SUMZ CON 0 ΑΘΡΟΙΣΤΗΣ ΖΥΓΩΝ ΑΡΙΘΜΩΝ

PIN ORIG *+100 ΠΙΝΑΚΑΣ

*

BEGIN ..... ΕΝΤΟΛΕΣ ΑΝΑΓΝΩΣΗΣ ΤΩΝ

..... ΣΤΟΙΧΕΙΩΝ ΤΟΥ ΠΙΝΑΚΑ

ENT1 1 ΔΕΙΚΤΗΣ ΤΩΝ ΣΤΟΙΧΕΙΩΝ ΤΟΥ ΠΙΝΑΚΑ

LP2 LDA PIN-1,1 ΦΟΡΤΩΣΗ ΣΤΟΙΧΕΙΟΥ ΤΟΥ ΠΙΝΑΚΑ

SRAX 5 ΚΑΙ ΔΙΑΙΡΕΣΗ ΤΟΥ

DIV TWO ΜΕ ΤΟ 2

JXZ LP1 ΕΛΕΓΧΟΣ ΤΟΥ ΥΠΟΛΟΙΠΟΥ

LDA SUMM ΒΡΕΘΗΚΕ ΜΟΝΟΣ ΑΡΙΘΜΟΣ ΚΑΙ

ADD PIN-1,1 ΠΡΟΣΤΙΘΕΤΑΙ

STA SUMM ΣΤΟΝ ΑΘΡΟΙΣΤΗ SUMM

JMP LP3

LP1 LDA SUMZ ΒΡΕΘΗΚΕ ΖΥΓΟΣ ΑΡΙΘΜΟΣ ΚΑΙ

ADD PIN-1,1 ΚΑΙ ΠΡΟΣΤΙΘΕΤΑΙ

STA SUMZ ΣΤΟΝ ΑΘΡΟΙΣΤΗ SUMZ

LP3 INC1 1 ΜΗΧΑΝΙΣΜΟΣ

CMP1 N ΕΛΕΓΧΟΥ

JLE LP2 ΤΟΥ ΒΡΟΓΧΟΥ

.....

slide18
Συμβολικό πίνακας:

Σύμβολα τιμές

Ν 0000

TWO 0001

SUMM 0002

SUMZ 0003

PIN 0004

BEGIN 0150

Κ.Λ.Π

Εικόνα μνήμης:

00000 00 00 00 01 44 N

0001 0 00 00 00 00 02 TWO

0002 0 00 00 00 00 00 SUMM

0003 0 00 00 00 00 00 SUMZ

0004 0 00 00 00 00 00 PIN θέση 1

0005 0 00 00 00 00 00 θέση 2

0006 0 00 00 00 00 00 θέση 3

...........................................................

0147 0 00 00 00 00 00 θέση 100

0150 πρώτη εκτελέσιμη εντολή

slide19
Εντολές αλλαγής ροής – Μια άλλη άποψη

BEGIN ..... ΕΝΤΟΛΕΣ ΑΝΑΓΝΩΣΗΣ ΤΩΝ

..... ΣΤΟΙΧΕΙΩΝ ΤΟΥ ΠΙΝΑΚΑ

……

ENT1 1 ΔΕΙΚΤΗΣ ΤΩΝ ΣΤΟΙΧΕΙΩΝ ΤΟΥ ΠΙΝΑΚΑ

LDA PIN-1,1 ΦΟΡΤΩΣΗ ΣΤΟΙΧΕΙΟΥ ΤΟΥ ΠΙΝΑΚΑ

SRAX 5 ΚΑΙ ΔΙΑΙΡΕΣΗ ΤΟΥ

DIV TWO ΜΕ ΤΟ 2

JXZ *+5 ΕΛΕΓΧΟΣ ΤΟΥ ΥΠΟΛΟΙΠΟΥ

LDA SUMM ΒΡΕΘΗΚΕ ΜΟΝΟΣ ΑΡΙΘΜΟΣ ΚΑΙ

ADD PIN-1,1 ΠΡΟΣΤΙΘΕΤΑΙ

STA SUMM ΣΤΟΝ ΑΘΡΟΙΣΤΗ SUMM

JMP *+4

LDA SUMZ ΒΡΕΘΗΚΕ ΖΥΓΟΣ ΑΡΙΘΜΟΣ ΚΑΙ

ADD PIN-1,1 ΚΑΙ ΠΡΟΣΤΙΘΕΤΑΙ

STA SUMZ ΣΤΟΝ ΑΘΡΟΙΣΤΗ SUMZ

INC1 1 ΜΗΧΑΝΙΣΜΟΣ

CMP1 N ΕΛΕΓΧΟΥ

JLE *-13 ΤΟΥ ΒΡΟΓΧΟΥ

.....

ad