270 likes | 401 Vues
Κ M Ε. Κυριότεροι Καταχωρητές της ΚΜΕ του υπολογιστή TRN. IR. X. I. PC. A. KME. Μορφή Εντολών. Στον υπολογιστή Τ RN οι εντολές παριστάνονται με μία λέξη υπολογιστή μήκους 20 δυαδικών ψηφίων. Πεδίο Τρόπου Προσπέ- λασης. Πεδίο Κώδικα Εντολής. Πεδίο Διεύθυνσης.
E N D
ΚMΕ • Κυριότεροι Καταχωρητές της ΚΜΕ του υπολογιστή TRN IR X I PC A KME
Μορφή Εντολών • Στον υπολογιστή ΤRN οι εντολές παριστάνονται με μία λέξη υπολογιστή μήκους 20 δυαδικών ψηφίων Πεδίο Τρόπου Προσπέ- λασης Πεδίο Κώδικα Εντολής Πεδίο Διεύθυνσης 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Ψηφίο Έμμεσης Αναφοράς Ψηφίο Δεικτοδοτημένης Αναφοράς
Τρόποι Αναφοράς στη Μνήμη • Άμεση Αναφορά στη Μνήμη • Έστω η εντολή LDA 1312 1310 1311 5 1312 1313 A 1314 1315 5 1316 1317 1318 1319 1320 1321 LDA TAG Α <- Μ[TAG]
Τρόποι Αναφοράς στη Μνήμη • Δεικτοδοτημένη Αναφορά στη Μνήμη • Έστω η εντολή LDA,Ι 1312 1310 1311 5 1312 1312 + 3 = 1315 1313 A 1314 7 1315 7 1316 1317 Ι 1318 3 1319 1320 1321 LDA,I TAG Α <- Μ[TAG+I]
Τρόποι Αναφοράς στη Μνήμη • Έμμεση Αναφορά στη Μνήμη • Έστω η εντολή LDA (1312) 1310 1311 1320 1312 1313 A 1314 1315 6 1316 1317 1318 1319 6 1320 1321 LDA (TAG) Α <- Μ[ M[TAG] ]
Τρόποι Αναφοράς στη Μνήμη • Έμμεση και Δεικτοδοτημένη Αναφορά στη Μνήμη • Έστω η εντολή LDA,Ι (1312) 1310 1311 1312 1312+3=1315 1313 A 1314 1320 1315 6 1316 1317 Ι 1318 3 1319 6 1320 1321 LDA,I (TAG) Α <- Μ[ M[TAG+I] ]
Κύκλοι Μηχανής • Η μεταφορά από τη μνήμη και η εκτέλεση μιας εντολής, λαμβάνει χώρα σε τέσσερις φάσεις ή κύκλους μηχανής : • Κύκλος Ανάκλησης της Εντολής (Instruction Fetch) • Κύκλος Δεικτοδοτημένης Αναφοράς, D=1 (Index Addressing) (σχηματισμός βοηθητικής διεύθυνσης Β) • Κύκλος Έμμεσης Αναφοράς. E=1 (Indirect Addressing) (σχηματισμός τελικής διεύθυνσης Β) • Κύκλος Εκτέλεσης
Συμβολική Γλώσσα TRN Οι εντολές και οι ψευδοεντολές της συμβολικής γλώσσας αποτελούνται εν γένει από τέσσερα τμήματα: ΕΠΙΓΡΑΦΗ: ΛΕΙΤΟΥΡΓΙΑ ΔΙΕΥΘΥΝΣΗ ΣΧΟΛΙΑ Επιγραφή: Ορισμός συμβολικών ονομάτων Λειτουργία: Συμβολικό όνομα εντολής ή ψευδοεντολής Διεύθυνση: - συμβολικό όνομα - ένας αριθμός (-4096..4095, $1310 MSB 0 ή 1) - σύμβολο * - συνδυασμός των ανωτέρω σε παραστάσεις Σχόλια: Αγνοούνται από το συμβολομεταφραστή
Συμβολική Γλώσσα TRN • Είδη εντολών του TRN (32 εντολές): • Εντολές μεταφοράς • Αριθμητικές – λογικές εντολές • Εντολές άλματος • Εντολές ολίσθησης • Εντολές εισόδου – εξόδου • Άλλες εντολές
Εντολές Μεταφοράς • LDA A M[T] • LDX X M[T] • LDI I M[T] • STA M[T] A • STX M[T] X • STI M[T] I • ENA A AP * Επέκταση προσήμου • ΕΝΙ Ι ΑP
Αριθμητικές και Λογικές • INA A A + 1 • INX X X + 1 • DCA Α Α – 1 • DCI I I – 1 • ADA A A + M[T] • SUB A A – M[T] • AND A A ^ M[T] • ORA A A v M[T] • XOR A A M[T] • CMA A A’
Εντολές Άλματος • JMP PC T • JPN PC T if A<0 • JAG PC T if A>0 • JPZ PC T if A=0 • JPO PC T if V=1 (overflow) • JSR M[T] PC • PC T + 1 • 7. JIG PC T if I > 0
Εντολές Ολίσθησης • SHA (Shift A αριστερά, if AP > 0 • else Shift A δεξιά)(*** Διόρθωση στο βιβλίο) • SHX (Ομοίως για τον καταχωρητή Χ) • SAX (Ολίσθηση Α και Χ ταυτόχρονα)
Εντολές Εισόδου - Εξόδου • ΙΝP A (δεδομένα θύρας εισόδου) • OUT (δεδομένα θύρας εξόδου) Α • Άλλες Εντολές • ΗLT Διακοπή λειτουργίας • ΝΟP Καμία λειτουργία
Ψευδοεντολές • Ψευδοεντολή NAM • Έναρξη και ονομασία προγράμματος. • 2. Ψευδοεντολές ENT και ΕΧΤ • Εάν ένα πρόγραμμα P1 αναφέρεται σε διευθύνσεις ΑDD1, ADD2 ενός προγράμματος P2, τότε αυτό πρέπει να δηλωθεί στο P1 ως: • EXT ΑDD1, ADD2 • και στο πρόγραμμα P2 ως: • ΕΝΤ ADD1, ADD2
Ψευδοεντολές 3. Ψευδοεντολή CON Μορφή LOC: CON e1, e2, … Αποθηκεύει e1 στη διεύθυνση LOC e2 στη διεύθυνση LOC+1 4. Ψευδοεντολές RES Μορφή LOC: RES n Με την ψευδοεντολή RES n θέσεις μνήμης από τη διεύθυνση LOC και μετά παραμένουν κενές προς χρήση από το πρόγραμμα
Ψευδοεντολές 5. Ψευδοεντολή ORG Moρφή ORG C όπου C αριθμητική διεύθυνση που προσδιορίζει το αρχικό σημείο των εντολών που ακολουθούν στη μνήμη 6. Ψευδοεντολή END Δηλώνει τέλος του προγράμματος
Ένα απλό πρόγραμμα I Υλοποίηση του κώδικα result = 0; if ( input == 5) result = 10; else result = 20; στη συμβολική γλώσσα του TRN
Ένα απλό πρόγραμμα II NAM TEST ORG 0 INPUT: CON 3 (Τιμή μεταβλητής INPUT) FIVE: CON 5 (Σταθερά FIVE για σύγκριση) RESULT: RES 1 (Δέσμευση θέσης για RESULT) LDA INPUT ( A = 3) SUB FIVE JPZ EQUAL ENA 20 ( INPUT ! = 5) STA RESULT ( RESULT = 20) JMP STOP EQUAL: ENA 10 ( INPUT == 5) STA RESULT (RESULT = 10) STOP: HLT END
Ένα απλό πρόγραμμα II Υλοποίηση του βρόχου A = 0; for( i = n; i > 0; i --) A = A + i ; στη συμβολική γλώσσα του TRN
Ένα απλό πρόγραμμα II NAM VROXOS ORG 0 N: CON 5 (Τιμή μεταβλητής n) INDX: RES 1 (Δέσμευση θέσης για το i) SUM: RES 1 (Δέσμευση θέσης για αποτελ) LDI N ( Ι = n) STI INDX ( i = n) ENA 0 (A = 0) LOOP: ADA INDX ( A = A + i) DCI ( Ι = Ι – 1) STI INDX ( i = Ι ) JIG LOOP(if i>0 επανάληψη) STA SUM ( SUM = A) HLT END
Υποπρογράμματα Κυρίως πρόγραμμα Υποπρόγραμμα EXT TAG ENT TAG . TAG: RES 1 . . AD:JSR ΤΑG . ENA NUM JMP (TAG) . . . Με την εντολή JSR TAG : [TAG] AD+1 PC TAG + 1
Ένα απλό πρόγραμμα III Υλοποίηση του κώδικα x = 5; y = 2* x; z = 2 * y; στη συμβολική γλώσσα του TRN, με χρήση υπορρουτίνας που υπολογίζει το διπλάσιο ενός αριθμού, δηλαδή x = 5; y = double(x); z = double(y);
Υποπρογράμματα ΙΙΙ Κυρίως πρόγραμμα Υποπρόγραμμα ΝΑΜ ΜΑΙΝ ΝΑΜ DOUBLE EXT TAG ENT TAG ORG 0 ORG 20 X: CON 5TAG: RES 1 Y: RES 1SHA 1 (ολίσθ. του Α αριστ) Z: RES 1 JMP (TAG) LDA X END JSR ΤΑG STA Y JSR TAG STA Z HLT END
Απεικόνιση της μνήμης Συμβ.Διευθ. Περιεχόμενο Διευθ Συμβ.Διευθ. Περιεχόμενο Διευθ Χ Υ Ζ 0 1 2 3 4 5 6 7 8 9 ΤΑG 20 21 22 23 24 25 26 27 28 29
Απεικόνιση της μνήμης Συμβ.Διευθ. Περιεχόμενο Διευθ Συμβ.Διευθ. Περιεχόμενο Διευθ Χ Υ Ζ 0 1 2 3 4 5 6 7 8 9 ΤΑG 5 20 21 22 23 24 25 26 27 28 29
Απεικόνιση της μνήμης Συμβ.Διευθ. Περιεχόμενο Διευθ Συμβ.Διευθ. Περιεχόμενο Διευθ Χ Υ Ζ 0 1 2 3 4 5 6 7 8 9 ΤΑG 7 20 21 22 23 24 25 26 27 28 29