Download
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
Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

Μάθημα

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

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

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

Μέρος πρώτο

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

2008


Βασικοί συντακτικοί κανόνες Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

  • Top-down-programming

  • Προσθήκη σχολίων

  • Δεν αναμιγνύουμε στον κώδικα εκτελέσιμες εντολές με ψευδοεντολές

Λάθος


Αριθμητικές πράξεις Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

  • Πρόσθεση

    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


Αριθμητικές πράξεις Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης

  • Διαίρεση

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

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

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

    DIV PAR2 ΔΙΑΙΡΕΣΗ

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

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

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

    DIV PAR2 ΔΙΑΙΡΕΣΗ


Σύνθετες αριθμητικές πράξεις – Παράδειγμα 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


Σύνθετες αριθμητικές πράξεις – Παράδειγμα 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


Σύνθετες αριθμητικές πράξεις – Παράδειγμα 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+(Α-Β)/Ζ


Σύνθετες αριθμητικές πράξεις – Παράδειγμα 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


Υπερπλήρωση Παράδειγμα

  • Τύποι Υπερπλήρωσης

    • Υπερπλήρωση που ανιχνεύεται από το 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


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

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


Δημιουργία βρόγχων τον χρήστη (Πολλαπλασιασμός)

Μ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 ΕΠΑΝΑΛΗΨΗ ΑΝ ΜΙΚΡΟΤΕΡΟ Η ΙΣΟ


Δημιουργία βρόγχων τον χρήστη (Πολλαπλασιασμός)

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)


Δημιουργία βρόγχων –Παράδειγμα τον χρήστη (Πολλαπλασιασμός)

  • Να υπολογιστεί το άθροισμα των αριθμών από 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 ΕΠΑΝΑΛΗΨΗ ΥΠΟ ΣΥΝΘΗΚΗ


Χρήση πινάκων τον χρήστη (Πολλαπλασιασμός)

Μνήμη

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 Τελική Διευθ.


  • Δίνεται ένας πίνακας μιας διάστασης με 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 ΤΟΥ ΒΡΟΓΧΟΥ

    .....


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

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

Ν 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 πρώτη εκτελέσιμη εντολή


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

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