0100: MAR ADR; wait;mdr DB; SCR L DH+MDR+CY



Σχετικά έγγραφα
ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

Ποια πρόταση είναι αληθής για τον Μ/Ε 8088: Είναι Μ/Ε 16bit, LSI, 40 pins, 20 γραμμές διευθύνσεων, 8 γραμμές δεδομένων

Σημειώσεις για τον 80x86

Στοιχεία από Assembly Γιώργος Μανής

ΛΥΣΕΙΣ ΘΕΜΑΤΩΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

ΘΕΜΑΤΑ & ΕΝΔΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

Συστήματα Μικροϋπολογιστών

Καταχωρητές & τμήματα μνήμης του Ματθές Δημήτριος Καθηγητής Πληροφορικής

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ ΛΥΣΕΙΣ ΘΕΜΑΤΩΝ ΦΕΒ 2014 Καθηγητής: Νικολαΐδης Νικ. Ημ/νία εξέτασης:

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό.

ΜΑΘΗΜΑ: ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ ΘΕΜΑΤΑ ΙΟΥΝΙΟΥ 2014

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΩΝ ΕΞΕΤΑΣΕΩΝ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Αρχιτεκτονική-Ι. Ενότητα 4: Το Προγραμματιστικό Μοντέλο του 8086

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

Ο 8086 µπορεί να θεωρηθεί ότι αποτελείται από δύο τµήµατα επεξεργαστές, όπως φαίνεται και στο σχήµα 1, οι οποίοι είναι:

6.Σε μία εντολή π.χ. ADD BX,[1234], από ποιά πραγματικά διεύθυνση μνήμης θα διαβάσουμε τον αριθμό για να τον προσθέσουμε στον BX ;

Καταχωρητές γενικής χρήσης και δεδοµένων (Data Registers)

ΘΕΜΑΤΑ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ-ΙΙ

Αρχιτεκτονική Υπολογιστών

Προηγμένοι Μικροεπεξεργαστές. Φροντιστήριο 2 Addressing

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 3. Αριθµητική για υπολογιστές

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Ψηφιακή Σχεδίαση Ενότητα 11:

ΜΑΘΗΜΑ: ΜΙΚΡΟΕΛΕΓΚΤΕΣ

ΠΑΡΑ ΕΙΓΜΑ 8 ΓΕΝΝΗΤΡΙΑ ΨΕΥ ΟΤΥΧΑΙΩΝ ΑΡΙΘΜΩΝ (PSEUDORANDOM GENERATOR) 8.0 ΓΕΝΙΚΑ

ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος

Πραγµατικοί αριθµοί κινητής υποδιαστολής Floating Point Numbers. Σ. Τσιτµηδέλης ΤΕΙ ΧΑΛΚΙΔΑΣ

«ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ» ΕΣΩΤΕΡΙΚΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΠΛΗ-21

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

Αρχιτεκτονική υπολογιστών

Αναπαράσταση Δεδομένων (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

Οργάνωση Υπολογιστών (Ι)

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 5 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ. url:

74HC573 D7 D6 D5 D4 D3 D2 D1 D0 LE OE A0 A1 A2 A3 A4 A5 A6 A7 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A8 A9 A10 A11 A12 A13 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

Προηγμένοι Μικροεπεξεργαστές. Έλεγχος Ροής Προγράμματος

ΑΣΚΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ ΓΙΑ ΤΗ ΘΕΩΡΙΑ

Θέµατα Φεβρουαρίου

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από:

Επιμέλεια: ρ. Ν. Σγούρος ρ. Ι. Κονταξάκης

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

Συστήματα Μικροϋπολογιστών

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Προτεινόμενες Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213 & Αποτελέσματα

Οργάνωση Υπολογιστών (ΙI)

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης:

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

Μάθημα 7: Μικροϋπολογιστικό Σύστημα και Μνήμες

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

Κύρια μνήμη. Μοντέλο λειτουργίας μνήμης. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (ΙI)

ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

Συστήματα Μικροϋπολογιστών

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

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 2 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 3: Εντολές λογικών πράξεων και εντολές κλήσης ρουτινών

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

ΠΕΡΙΕΧΟΜΕΝΑ 1. Υπορουτίνες Μαθηµατικών Πράξεων 1.1. Προσηµασµένοι και απροσήµαστοι αριθµοί 1.2. Μετατροπές προσηµασµένων και απροσήµαστων αριθµών

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΡΑΓΚΙΑΟΥΡΗΣ ΝΙΚΟΛΑΟΣ

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

Αρχιτεκτονική Υπολογιστών

Οδηγός Εκμάθησης στην Assembly

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

Αρχιτεκτονική Μηχανής. Αποθήκευση εδοµένων

Αριθμητικά Συστήματα

ΘΕΜΑΤΑ & ΑΠΑΝΤΗΣΕΙΣ Α. ΨΗΦΙΑΚΗ ΣΧΕ ΙΑΣΗ

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Ενότητα 8 Η ΠΥΛΗ XOR ΚΑΙ ΟΙ ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΚΩΔΙΚΟΠΟΙΗΣΗ

7 η Θεµατική Ενότητα : Καταχωρητές, Μετρητές και Μονάδες Μνήµης

Αρχιτεκτονική Υπολογιστών

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

Τα µπιτ και η σηµασία τους. Σχήµα bit. ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) 1.7 Αποθήκευση κλασµάτων 1.8 Συµπίεση δεδοµένων 1.9 Σφάλµατα επικοινωνίας

Λύσεις Ασκήσεων ΣΕΙΡΑ 1 η. Πρόσημο και μέγεθος

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 7 και 8: Αναπαραστάσεις. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Υπολογιστές και Πληροφορία 1

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης:

Transcript:

Άσκηση 1η: Αναφέρατε τα στάδια εκτέλεσης της εντολής ADC [6789], DH µε εντολές µικροπρογράµµατος περιγράφοντας και εξηγώντας αναλυτικά το κάθε στάδιο καθώς και τις τιµές ψηφιακών λέξεων που εµφανίζονται στους διαύλους δεδοµένων και διευθύνσεων σε κάθε στάδιο. Υποθέστε ότι ο IP ήδη δείχνει την διεύθυνση µνήµης που είναι αποθηκευµένη η εντολή (IP=0200). Επίσης υποθέστε ότι το opcode της εντολής είναι 1 byte (36 H ), ότι στη θέση DS:6789 υπάρχει ο αριθµός 45 H και ότι ο DH πριν την εκτέλεση της εντολής έχει την τιµή 12 H. Λύση 1η: Φάση Εξωτερική Λειτουργία ΑΒ DB Εσωτερική Μικρο-λειτουργία 1 ιάβασµα opcode 0100:0200 36 MAR IP; IP IP+1(0201); wait; MDR DB; ΙR MDR 2 ιάβασµα low byte παραµέτρου διεύθυνσης 0100:0201 89 MAR IP; IP IP+1(0202); wait; MDR DB; ADR L MDR 3 ιάβασµα high byte 0100:0202 67 MAR IP; IP IP+1(0203); wait; MDR DB; ADR H MDR 4 Ανάγνωση δεδοµένων από την µνήµη και πρόσθεση 5 Εκτέλεση εντολής αποθήκευση δεδοµένων 0100:6789 45 MAR ADR; wait;mdr DB; SCR L DH+MDR+CY 0100:6789 57 MAR ADR;MDR SCR L ; wait; (εγγραφή στην µνήµη και τέλος διαδικασίας) στην µνήµη 6 Επόµενη εντολή 0100:0203 (0003) MAR IP; IP IP+1(0204); wait; MDR DB; ΙR MDR Άσκηση 2η: Σχεδιάστε και περιγράψτε την διάταξη αποκωδικοποίησης διευθύνσεων µνήµης σε ένα υπολογιστικό σύστηµα µε address bus των 20 bit, που έχει 1MB µνήµη εκ των οποίων τα 768 ΚΒ είναι RAM και τα 256 είναι ROM. Και η µνήµη RAM και η ROM υλοποιούνται µε chip µνήµης των 64 ΚΒ, και επιπλέον η µνήµη ROM χαρτογραφείται στις υψηλότερες διευθύνσεις και η RAM στις χαµηλότερες.. Λύση 2η: Chip RAM = 768Kb / 64Kb = 12 Chip ROM = 256Kb / 64Kb = 4 Σύνολο chip = 16 Άρα οι 4 πιο σηµαντικές γραµµές (υψηλότερης τάξης) του Address Bus Α16,Α17,Α18,Α19 θα οδηγηθούν στον αποκωδικοποιητή (2 4 =16). Οι 16 λιγότερες σηµαντικές γραµµές διευθύνσεων Α0..Α15 οδηγούνται σε όλα τα; chip µνήµης (2 16 =64Kb)

Άσκηση 3η: Εξηγήστε τι ακριβώς κάνει ο παρακάτω κώδικας assembly 8088 στο σύνολό του, σχολιάζοντας επεξηγηµατικά όλες τις γραµµές του κώδικα, αλλά και τις µεταβλητές [0100], [0102] και [0104] : MOV CL,[0102] MOV BL,[0100] MOV AX,1 loop1: CMP CL,00 JE telos MUL BL DEC CL JMP loop1 telos: MOV [0104],AX Λύση 3η:

Ο κώδικας υπολογίζει την δύναµη B E όπου B είναι το περιεχόµενο της [0100] και E το περιεχόµενο της [0102], Το αποτέλεσµα σώζεται στην [0104]. MOV CL,[0102] MOV BL,[0100] MOV AX,1 loop1: CMP CL,00 JE telos MUL BL DEC CL Φορτώνει τον εκθέτη στον CL Φορτώνει την Βάση στον BL Αρχικοποιεί τον ΑΧ που θα υπολογίζει την δύναµη µε το 1 που είναι το ουδέτερο στοιχείο στον πολλαπλασιασµό. Συγκρίνει το CL µε το 0 για να τερµατιστεί ο βρόχος και τότε διακλαδίζει το πρόγραµµα στο telos αλλιώς κάνει AX=AX * BL µειώνει τον CL που είναι µετρητής Άσκηση 4η: JMP loop1 και ξαναγυρνάει στο Loop1 για να εκτελέσει την επόµενη επανάληψη telos: MOV [0104],AX Αποθηκεύει το αποτέλεσµα (AX) στην [0104] Σχεδιάστε και περιγράψτε αναλυτικά την διάταξη αποκωδικοποίησης διευθύνσεων µνήµης σε ένα υπολογιστικό σύστηµα µε Μ/Ε 80286 που έχει address bus των 24 bit, το οποίο έχει 16MB µνήµη εκ των οποίων τα 12 ΜΒ είναι RAM και τα 4ΜΒ είναι ROM. Και η µνήµη RAM και η ROM υλοποιούνται µε chip µνήµης των 512 ΚΒ, και επιπλέον η µνήµη ROM χαρτογραφείται στις υψηλότερες διευθύνσεις και η RAM στις χαµηλότερες. Λύση 4η: Chip RAM = 12Μb / 512Kb = 24 Chip ROM = 4Μb / 512Kb = 8 Σύνολο chip = 32 Άρα οι 5 πιο σηµαντικές γραµµές (υψηλότερης τάξης) του Address Bus Α19, Α20, Α21, Α22, Α23 θα οδηγηθούν στον αποκωδικοποιητή (2 5 =32). Οι 19 λιγότερες σηµαντικές γραµµές διευθύνσεων Α0..Α18 οδηγούνται σε όλα τα; chip µνήµης (2 19 =512Kb)

Άσκηση 5η: ίνονται οι τιµές των καταχωρητών κατά την έναρξη ενός προγράµµατος γλώσσας µηχανής του 8088 : CS=0100, DS=0200, SS=0400, ES=0600, IP=1111, SP=1FFF, SI=0001, DI=2222 Καθώς και το ίδιο το πρόγραµµα : MOV AL,[1234] PUSH AL MOVSB Αναφέρατε αιτιολογηµένα σε δεκαεξαδικό και δεκαδικό σύστηµα την πραγµατική διεύθυνση µνήµης που: Α. Ξεκινάει το πρόγραµµα Β. Το περιεχόµενό της φορτώνεται στον AL Γ. Αποθηκεύεται ο AL στο Stack (Στοίβα). ιαβάζεται ο χαρακτήρας του string µε την MOVSB E. Αποθηκεύεται ο χαρακτήρας του string µε την MOVSB Λύση 5η: Α. Ξεκινάει το πρόγραµµα στην CS:IP = 010016:111116 = 010016*1610+111116 = 100016+111116 = 211116 = 846510 Β. Το περιεχόµενό της φορτώνεται στον AL DS:123416 = 020016:123416 = 020016*1610+123416 = 200016+123416 = 323416 = 1285210 Γ. Αποθηκεύεται ο AL στο Stack (Στοίβα) SS:SP = 040016:1FFF16 = 040016*1610+1FFF16 = 400016+1FFF16 = 5FFF16 = 2457510. ιαβάζεται ο χαρακτήρας του string µε την MOVSB DS:SI = 020016:000116 = 020016*1610+000116 = 200016+000116 = 200116 = 819310 E. Αποθηκεύεται ο χαρακτήρας του string µε την MOVSB

ES:DI = 060016:222216 = 060016*1610+222216 = 600016+222216 = 822216 = 3331410 Άσκηση 6η: Εξηγήστε τι ακριβώς κάνει ο παρακάτω κώδικας assembly 8088 στο σύνολό του, σχολιάζοντας επεξηγηµατικά όλες τις γραµµές του κώδικα, αλλά και την µεταβλητή [0200] και τον πίνακα που αρχίζει στην διεύθυνση [0208] : 0100:0000 MOV AL, 80 0100:0002 MOV SI, 00 0100:0005 TEST AL, [0200] 0100:0008 JNZ 0012 0100:000Α MOV BY[0208+SI], 00 0100:000F JMP 0017 0100:0012 MOV BY[0208+SI], 01 0100:0017 SHR AL,1 0100:0019 INC SI 0100:001A CMP SI,08 0100:001D JNE 0005 0100:001F INT 3 Λύση 6η: Ο κώδικας µετατρέπει έναν αριθµό του 1 ος byte που βρίσκεται στην διεύθυνση µνήµης 0200 σε «δυαδικό» νούµερο, βάζοντας τα αντίστοιχα 0 και 1 σε ένα πίνακα που αρχίζει στην διεύθυνση µνήµης 208 και τελειώνει στην 020F. 0100:0000 MOV AL, 80 Βάζει στον AL την µάσκα 10000000 0100:0002 MOV SI, 00 Αρχικοποιεί τον µετρητή/δείκτη SI σε 0 0100:0005 TEST AL, [0200] Κάνει λογικό AND µεταξύ µάσκας και αριθµού 0100:0008 JNZ 0012 Αν βρέθηκε «1» στην αντίστοιχη θέση του αριθµού, τότε πήγαινε στην 0012 0100:000Α MOV BY[0208+SI], 00 αλλιώς («0») βάλε στον πίνακα και στην θέση «SI» την τιµή 0 0100:000F JMP 0017 πήγαινε στο κοινό σηµείο συνέχειας 0100:0012 MOV BY[0208+SI], 01 βάλε στον πίνακα και στην θέση SI την τιµή 1 0100:0017 SHR AL,1 Ολίσθησε την µάσκα δεξιά µία θέση, για να ελέγξεις το επόµενο bit (10000000 01000000) 0100:0019 INC SI Αύξησε τον SI κατά 1 0100:001A CMP SI,08 Σύγκρινέ τον µε το 8 0100:001D JNE 0005 Αν δεν έφτασε στο 8 ξανα-πήγαινε στην 001D 0100:001F INT 3 Τέλος Προγράµµατος Άσκηση 7η: Αναφέρατε τα στάδια εκτέλεσης της εντολής ΧΟR CX, [ABCD] µε εντολές µικροπρογράµµατος περιγράφοντας και εξηγώντας αναλυτικά το κάθε στάδιο καθώς και τις τιµές ψηφιακών λέξεων που εµφανίζονται στους διαύλους δεδοµένων και διευθύνσεων σε κάθε στάδιο. Υποθέστε ότι ο IP ήδη δείχνει την διεύθυνση µνήµης που είναι αποθηκευµένη η εντολή (IP=0200). Επίσης υποθέστε ότι το opcode της εντολής είναι 1 byte (33 H ), ότι στη θέση DS:ABCD υπάρχει ο αριθµός 54 H και στην επόµενη θέση µνήµης ο 76 H. Υπόδειξη : πρέπει να χρησιµοποιηθεί ο ScratchPad register.

Λύση 7η: Φάση Εξωτερική Λειτουργία ΑΒ DB Εσωτερική Μικρο-λειτουργία 1 ιάβασµα opcode 0100:0200 33 MAR IP; IP IP+1; wait; MDR DB; ΙR L MDR 2 ιάβασµα low byte παραµέτρου διεύθυνσης 0100:0201 CD MAR IP; IP IP+1; wait; MDR DB; ADR L MDR 3 ιάβασµα high byte 0100:0202 AB MAR IP; IP IP+1; wait; MDR DB; ADR H MDR 4 ιάβασµα τελικών δεδοµένων 1o byte 0100:ABCD 54 MAR ADR; wait; MDR DB; SCR L MDR 5 ιάβασµα τελικών δεδοµένων 2o byte 0100:ABCE 76 EAR ADR+1; MAR EAR; wait; MDR DB; SCR H MDR 6 Εκτέλεση εντολής - τοποθέτηση στον CX - - CX CΧ XOR SCR 7 Επόµενη εντολή 0100:0203 (0203) MAR IP; IP IP+1; wait; MDR DB; ΙR MDR Άσκηση 8η: Με το δεδοµένο ότι οι συνηθισµένοι ακροδέκτες σε chip µνήµης RAM είναι οι παρακάτω: 1. Ακροδέκτες ιεύθυνσης (Α0, Α1,..., Αn) : 2. Ακροδέκτες εδοµένων (D0, D1,, Dκ) 3. CS (Chip Select) 4. WE (Write Enable) 5. RE (Read Enable) να περιγράψετε αιτιολογηµένα τις τιµές που θα πάρουν οι σχετικοί ακροδέκτες του chip RAM που θα εµπλακεί στην διαδικασία εκτέλεσης της εντολής MOV AL,[1234h]. Υποθέστε ότι στην διεύθυνση [1234h] υπάρχει ο αριθµός FFh. Υποθέστε ότι οι ακροδέκτες ενεργοποιούνται µε την τιµή 1 και απενεργοποιούνται µε την τιµή 0 (positive logic). (h=hex/δεκαεξαδικό, d=decimal/δεκαδικό, b=binary/δυαδικό) Λύση 8η: 1. Ακροδέκτες ιεύθυνσης (Α0, Α1,..., Αn) : Θα πάρουν την τιµή της διεύθυνσης DS:1234. Αν υποθέσουµε ότι ο DS έχει την τιµή 0100 (εξ ορισµού τιµή για τον BGC-8088) τότε η διεύθυνση θα είναι (h=hex/δεκαεξαδικό, d=decimal/δεκαδικό, b=binary/δυαδικό) : DS:1234h = 0100h:1234h = 0100h X 16d + 1234h = 0100h X 10h + 1234h = 1000h + 1234h = 2234h = 8756d = 10001000110100b 2. Ακροδέκτες εδοµένων (D0, D1,, Dκ) :

Θα πάρουν την τιµή FFh = 255d = 11111111b που είναι και το περιεχόµενο της [1234] που θα διαβαστεί. 3. CS (Chip Select) Θα πάρει την τιµή 1 εφόσον το chip θα ενεργοποιηθεί για την ανάγνωση µνήµης 4. WE (Write Enable) Θα πάρει την τιµή 0 εφόσον δεν πρόκειται για εγγραφή µνήµης αλλά για ανάγνωση. 5. RE (Read Enable) Θα πάρει την τιµή 1 εφόσον πρόκειται για ανάγνωση µνήµης. Άσκηση 9η: Με το δεδοµένο ότι οι συνηθισµένοι ακροδέκτες σε chip µνήµης RAM είναι οι παρακάτω: 6. Ακροδέκτες ιεύθυνσης (Α0, Α1,..., Αn) : 7. Ακροδέκτες εδοµένων (D0, D1,, Dκ) 8. CS (Chip Select) 9. WE (Write Enable) 10. RE (Read Enable) να περιγράψετε αιτιολογηµένα τις τιµές που θα πάρουν οι σχετικοί ακροδέκτες του chip RAM που θα εµπλακεί στην διαδικασία εκτέλεσης της εντολής MOV [5678h], DH. Υποθέστε ότι στον καταχωρητή DH υπάρχει ο αριθµός 12h. Υποθέστε ότι οι ακροδέκτες ενεργοποιούνται µε την τιµή 1 και απενεργοποιούνται µε την τιµή 0 (positive logic). (h=hex/δεκαεξαδικό, d=decimal/δεκαδικό, b=binary/δυαδικό) Λύση 9η: 6. Ακροδέκτες ιεύθυνσης (Α0, Α1,..., Αn) : Θα πάρουν την τιµή της διεύθυνσης DS:5678. Αν υποθέσουµε ότι ο DS έχει την τιµή 0100 (εξ ορισµού τιµή για τον BGC-8088) τότε η διεύθυνση θα είναι (h=hex/δεκαεξαδικό, d=decimal/δεκαδικό, b=binary/δυαδικό) : DS:5678h = 0100h:5678h = 0100h X 16d + 5678h = 0100h X 10h + 5678h = 1000h + 5678h = 6678h = 26232d = 110011001111000b 7. Ακροδέκτες εδοµένων (D0, D1,, Dκ) : Θα πάρουν την τιµή 12h = 18d = 00010010b που είναι και το περιεχόµενο του DH που θα εγγραφεί στην µνήµη. 8. CS (Chip Select) Θα πάρει την τιµή 1 εφόσον το chip θα ενεργοποιηθεί για την εγγραφή µνήµης 9. WE (Write Enable)

Θα πάρει την τιµή 1 εφόσον πρόκειται για εγγραφή µνήµης. 10. RE (Read Enable) Θα πάρει την τιµή 0 εφόσον δεν πρόκειται για ανάγνωση µνήµης αλλά για εγγραφή. Άσκηση 10η: Με πόσους τρόπους µπορεί να αναπαρασταθεί (ως segment:offset) η απόλυτη διεύθυνση µνήµης 33d=0021h. Λύση 10η: Segment Offset (hex) Απόλυτη ιεύθυνση (dec) 0002 0001 0000 000F 000E. 0001 0000 000F 000E. 0001 0000 000F 000E. 0001 0000 47 46 33 32 31 30 17 16 15 14 1 0 Άρα 0021h = 33d = Α) 0002 : 0001 Β) 0001 : 0011

Γ) 0000 : 0021 Άσκηση 11η: Με πόσους τρόπους µπορεί να αναπαρασταθεί (ως segment:offset) η απόλυτη διεύθυνση µνήµης 62d=003Εh. Λύση 11η: Segment Offset (hex) Απόλυτη ιεύθυνση (dec) 0003 0002 0001 0000 000F 000E. 0001 0000 000F 000E. 0001 0000 000F 000E. 0001 0000 000F 000E. 0001 0000 63 62 49 48 47 46 33 32 31 30 17 16 15 14 1 0 Άρα 003Εh = 62d =

Α) 0003 : 000Ε Β) 0002 : 001Ε Γ) 0001 : 002Ε ) 0000 : 003 Ε Άσκηση 12η: είξτε τον τρόπο µε τον οποίο θα κωδικοποιηθεί η λέξη δεδοµένων : 10110101 µε εφαρµογή του κώδικα Hamming. Επίσης δείξτε τις τιµές που θα πάρουν τα control bits H0, H1, H2 και H3. Λύση 12η: Είδος Bit A/A Θέσης υαδική Α/Α D7 = 1 12 1 1 0 0 D6 = 0 11 1 0 1 1 D5 = 1 10 1 0 1 0 D4 = 0 9 1 0 0 1 H3 = 0 8 1 0 0 0 D3 = 1 7 0 1 1 1 D2 = 1 6 0 1 1 0 D1 = 0 5 0 1 0 1 H2 = 1 4 0 1 0 0 D0 = 1 3 0 0 1 1 H1 = 0 2 0 0 1 0 H0 = 0 1 0 0 0 1 P3 P2 P1 P0 µορφή P0 = D6 D4 D3 D1 D0 H0 = 0 0 1 0 1 H0 άρα H0=0 P1 = D6 D5 D3 D2 D0 H1 = 0 1 1 1 1 H1 άρα H1=0 P2 = D7 D3 D2 D1 H2 = 1 1 1 0 H2 άρα H2=1 P3 = D7 D6 D5 D4 H3 = 1 0 1 0 H3 άρα H3=0

Άσκηση 13η: ίνεται η λέξη των 12 bit: 010110000100 Η οποία είναι κωδικοποιηµένη µε τον κώδικα Hamming και διαβάστηκε από µία Περιφερειακή Συσκευή. είξτε αν η λέξη διαβάστηκε σωστά ή αν περιέχει σφάλµα και που βρίσκεται αυτό. Λύση 13η: Είδος Bit A/A Θέσης υαδική Α/Α D7 = 0 12 1 1 0 0 D6 = 0 11 1 0 1 1 D5 = 1 10 1 0 1 0 D4 = 0 9 1 0 0 1 H3 = 0 8 1 0 0 0 D3 = 0 7 0 1 1 1 D2 = 0 6 0 1 1 0 D1 = 1 5 0 1 0 1 H2 = 1 4 0 1 0 0 D0 = 0 3 0 0 1 1 H1 = 1 2 0 0 1 0 H0 = 0 1 0 0 0 1 P3 P2 P1 P0 µορφή P0 = D6 D4 D3 D1 D0 H0 = 0 0 0 0 1 0 = περιττή ισοτιµία (1) P1 = D6 D5 D3 D2 D0 H1 = 0 1 0 0 0 1 = άρτια ισοτιµία (0) P2 = D7 D3 D2 D1 H2 = 0 0 0 1 1 = άρτια ισοτιµία (0) P3 = D7 D6 D5 D4 H3 = 0 0 1 0 0 = περιττή ισοτιµία (1) Άρα P3 P2 P1 P0 = 1 0 0 1 Άρα υπάρχει σφάλµα στη θέση 1001b = 9d Εποµένως το bit D4 έχει σφάλµα και πρέπει να γίνει 1

Άσκηση 14η: Σχεδιάστε την υλοποίηση µίας πύλης NOT µε πύλες NAND, µίας πύλης OR µε πύλες NOR και µίας πύλης OR µε πύλες NAND. Λύση 14η: Πύλη ΝΟΤ µε πύλη NAND : Πύλη OR µε πύλες NOR : Πύλη OR µε πύλες NAND : Άσκηση 15η: Συµπληρώστε τα αποτελέσµατα µετά την εκτέλεση της πράξης για τις διάφορες περιπτώσεις. ADD AL,BL α/α AL BL AL=AL+BL CY ZF SF OF PF AF 1 8F 83 2 2E 41 3 7F 03 4 FF 01 5 FF 02

Λύση 15η: α/α AL BL AL=AL+BL CY ZF SF OF PF AF 1 8F 83 12 1 0 0 1 1 1 2 2E 41 6F 0 0 0 0 1 0 3 7F 03 82 0 0 1 1 1 1 4 FF 01 00 1 1 0 0 1 1 5 FF 02 01 1 0 0 0 0 1 Άσκηση 16η: Συµπληρώστε τα αποτελέσµατα µετά την εκτέλεση της πράξης για τις διάφορες περιπτώσεις. SUB CH,DH α/α CH DH CH=CH-DH CY ZF SF OF PF AF 1 6F 70 2 FF 02 3 80 01 4 01 02 5 01 FF Λύση 16η: α/α CH DH CH=CH-DH CY ZF SF OF PF AF 1 6F 70 FF 1 0 1 0 1 0 2 FF 02 FD 0 0 1 0 0 0 3 80 01 7F 0 0 0 1 0 1 4 01 02 FF 1 0 1 0 1 1 5 01 FF 02 1 0 0 0 0 1 Άσκηση 17η: Μετατρέψτε τους παρακάτω δεκαδικούς αριθµούς σε κωδικοποιηµένη µορφή αριθµών κινητής υποδιαστολής (Sign-Exponent-Mantissa) σύµφωνα µε το ισχύον πρότυπο IEEE754: A/A Αριθµός Sign Exponent Mantissa 1 143,83984375 2-0,044921875 3 1744619.75 4-498586546601984.0 5 0,000000476837158203125 Τα τµήµατα Exponent και Mantissa να είναι σε ακέραια και δυαδική µορφή. Υποθέστε ότι ο τύπος των κωδικοποιούµενων αριθµών θα είναι «απλής ακρίβειας» (single precision) δηλαδή των 32 bit.

Λύση 17η: α/α Αριθµός Sign Exponent Mantissa 1 143,83984375 0 10000110=(127+7) 000111111010111 = 4055 2-0,044921875 1 1111010 = (127-5) 0111 = 7 3 1744619.75 0 10010011=(127+20) 1010100111101110101111=2784175 4-498586546601984.0 1 10101111=(127+48) 11000101011101100011101 = 6470429 5 0,000000476837158203125 0 1101010 = (127-21) 0 Εξήγηση: 1. 143,83984375 = 143 215/256 = 10001111.11010111b = 1.000111111010111b x 2^7 άρα M=000111111010111b (το 1.xxxx δεν αποθηκεύεται), Ε=7 αλλά µε το +127 offset γίνεται E=127+7=134 = 10000110b. Το πρόσηµο είναι θετικό άρα S=0 2. -0,044921875 = -23/512 = 0.000010111b = 1.0111b x 2^-5 άρα M=0111 (το 1.xxxx δεν αποθηκεύεται), E=-5 αλλά µε το +127 offset γίνεται Ε=127-5=122 = 1111010b. Το πρόσηµο είναι αρνητικό άρα S=1. 3. 1744619.75 = 1744619 ¾ = 110101001111011101011.11b = 1.1010100111101110101111b x 2^20 άρα Μ=1010100111101110101111b (το 1.xxxx δεν αποθηκεύεται), Ε=20 αλλά µε το +127 offset γίνεται E=127+20=147 = 10010011b. Το πρόσηµο είναι θετικό άρα S=0 4. -498586546601984.0 = 1110001010111011000111010000000000000000000000000b = 1.110001010111011000111010000000000000000000000000 x 2^48 άρα Μ=11000101011101100011101b (23 ψηφία), E=48 αλλά µε το +127 offset γίνεται Ε=127+48=175 = 10101111b. Το πρόσηµο είναι αρνητικό άρα S=1. 5. 0,000000476837158203125 = 524288 / 1099511627776 = 0.0000000000000000000010000000000000000000 = 1.00 x 2^-21 άρα Μ=0 (το 1.xxxx δεν αποθηκεύεται), Ε=-21 αλλά µε το +127 offset γίνεται E=127-21=106 = 1101010b. Το πρόσηµο είναι θετικό άρα S=0 Άσκηση 18η: Πόσους «κύκλους µηχανής» χρειάζεται για να εκτελεστεί η εντολή : ADD [1234],DX µε το δεδοµένο ότι το Opcode της αποτελείται από 2 bytes. Λύση 18η: Η εντολή ADD [1234],DX χρειάζεται 8 «κύκλους µηχανής» για την εκτέλεσή της που είναι : 1. 1 κύκλος για διάβασµα του 1 ου opcode 2. 1 κύκλος για διάβασµα του 2 ου opcode 3. 1 κύκλος για διάβασµα του 1 ου byte της παραµέτρου διεύθυνσης (34) 4. 1 κύκλος για διάβασµα του 2 ου byte της παραµέτρου διεύθυνσης (12) 5. 1 κύκλος για προσπέλαση της διεύθυνσης [1234] και προσκόµισης του 1 ου byte των δεδοµένων

6. 1 κύκλος για προσπέλαση της διεύθυνσης [1235] και προσκόµισης του 2 ου byte των δεδοµένων 7. Μετά την πρόσθεση 1 κύκλος για προσπέλαση της διεύθυνσης [1234] και αποθήκευσης του 1 ου byte του αποτελέσµατος 8. Και τελικά 1 κύκλος για προσπέλαση της διεύθυνσης [1235] και αποθήκευσης του 2 ου byte του αποτελέσµατος Άσκηση 19η: Πόσους «κύκλους µηχανής» χρειάζεται για να εκτελεστεί η εντολή : AND WO[5678],ABCD µε το δεδοµένο ότι το Opcode της αποτελείται από 2 bytes. Λύση 19η: Η εντολή AND WO[5678],ABCD χρειάζεται 10 «κύκλους µηχανής» για την εκτέλεσή της που είναι : 1. 1 κύκλος για διάβασµα του 1 ου opcode 2. 1 κύκλος για διάβασµα του 2 ου opcode 3. 1 κύκλος για διάβασµα του 1 ου byte της παραµέτρου διεύθυνσης (78) 4. 1 κύκλος για διάβασµα του 2 ου byte της παραµέτρου διεύθυνσης (56) 5. 1 κύκλος για διάβασµα του 1 ου byte της παραµέτρου δεδοµένων (CD) 6. 1 κύκλος για διάβασµα του 2 ου byte της παραµέτρου δεδοµένων (AB) 7. 1 κύκλος για προσπέλαση της διεύθυνσης [5678] και προσκόµισης του 1 ου byte των δεδοµένων 8. 1 κύκλος για προσπέλαση της διεύθυνσης [5679] και προσκόµισης του 2 ου byte των δεδοµένων 9. Μετά την AND 1 κύκλος για προσπέλαση της διεύθυνσης [5678] και αποθήκευσης του 1 ου byte του αποτελέσµατος 10. Και τελικά 1 κύκλος για προσπέλαση της διεύθυνσης [5679] και αποθήκευσης του 2 ου byte του αποτελέσµατος Άσκηση 20η: Χρειάζεται να σχηµατίσουµε µια µνήµη χωρητικότητας 8 Giga διευθύνσεων, όπου κάθε διεύθυνση αντιστοιχεί σε κελί µεγέθους 32 Bit, µε chip µνήµης διάταξης 512Μ Χ 1. Πόσα τέτοια chip θα χρειαστούµε και γιατί. Λύση 20η: Για µια µνήµη χωρητικότητας 8 Giga διευθύνσεων, όπου κάθε διεύθυνση αντιστοιχεί σε κελί µεγέθους 32 Bit, µε chip µνήµης διάταξης 512Μ Χ 1 θα χρειαστούµε: 32 chip για να σχηµατίσουµε µνήµη 512Μ λέξεων των 32 Bit καθώς 512Μ Χ 32 = (512Μ Χ 1) Χ 32 και, προφανώς 16Χ32 chip για να σχηµατίσουµε µνήµη 8 G λέξεων των 32 Bit καθώς 8 G Χ32 = (512Μ Χ32) Χ 16 Άρα θα χρειαστούν συνολικά 16Χ32 = 512 τέτοια chip

Άσκηση 21η: ίνεται ο παρακάτω κώδικας ανίχνευσης σφαλµάτων : Αριθµός Κωδικοποίηση 0 000000 1 000011 2 001100 3 001111 4 110000 5 110011 6 111100 7 111111 Ποια είναι η απόσταση Hamming του κώδικα? Λύση 21η: Η απόσταση Hamming του κώδικα είναι 2 γιατί αν πάρουµε δύο οποιουσδήποτε αποδεκτούς συνδυασµούς η ελάχιστη απόσταση Hamming µεταξύ τους είναι 2. Άσκηση 22η: Σε µία cache µνήµη Άµεσης Χαρτογράφησης µε µέγεθος 1Κ byte είναι οργανωµένη σε 32 γραµµές όπου κάθε γραµµή έχει χωρητικότητα 32 bytes. Η µνήµη αυτή χρησιµοποιείται ως ενδιάµεση µνήµη για προσπέλαση αργής RAM συνολικού µεγέθους 4 Kbyte Αν η CPU προσπελάσει διαδοχικά τις µνήµες 28 515 2583 3781 1000 3045 233 1250 4000 να επισηµάνεται σε ποιες περιπτώσεις συµβαίνει σύγκρουση κρυφής µνήµης (cache collision). Λύση 22η: Η µνήµη cache θα είναι ως εξής : Εγγραφή Valid Tag Data 31 30 29 28 27 26 25 2016-992 - 1023 2047 1984-960 - 991 2015 1952-928 - 959 1983 1920-896 - 927 1951 1888-864 - 895 1919 1856-832 - 863 1887 1824-800 - 831 1855 Αντίστοιχες ιευθύνσεις RAM 3040-3071 3008-3039 2976-3007 2944-2975 2912-2943 2880-2911 2848-2879 4064-4095 4032-4063 4000-4031 3968-3999 3936-3967 3904-3935 3872-3903

24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 768-799 736-767 704-735 672-703 640-671 608-639 576-607 544-575 512-543 480-511 448-479 416-447 384-415 352-383 320-351 288-319 256-287 224-255 192-223 160-191 128-159 96-127 64-95 32-63 0-31 1792-1823 1760-1791 1728-1759 1696-1727 1664-1695 1632-1663 1600-1631 1568-1599 1536-1567 1504-1535 1472-1503 1440-1471 1408-1439 1376-1407 1344-1375 1312-1343 1280-1311 1248-1279 1216-1247 1184-1215 1152-1183 1120-1151 1088-1119 1056-1087 1024-1055 2816-2847 2784-2815 2752-2783 2720-2751 2688-2719 2656-2687 2624-2655 2592-2623 2560-2591 2528-2559 2496-2527 2464-2495 2432-2463 2400-2431 2368-2399 2336-2367 2304-2335 2272-2303 2240-2271 2208-2239 2176-2207 2144-2175 2112-2143 2080-2111 2048-2079 3840-3871 3808-3839 3776-3807 3744-3775 3712-3743 3680-3711 3648-3679 3616-3647 3584-3615 3552-3583 3520-3551 3488-3519 3456-3487 3424-3455 3392-3423 3360-3391 3328-3359 3296-3327 3264-3295 3232-3263 3200-3231 3168-3199 3136-3167 3104-3135 3072-3103

ιεύθυνση RAM Αντίστοιχη Γραµµή cache Cache Collision? 28 0 OXI 515 16 OXI 2583 16 NAI 3781 22 OXI 1000 31 OXI 3045 31 NAI 233 7 OXI 1250 7 NAI 4000 29 OXI Άσκηση 23η: ίνονται οι τιµές των καταχωρητών κατά την έναρξη ενός προγράµµατος γλώσσας µηχανής του 8088 : CS=0400, DS=0600, SS=0800, ES=1000, IP=1234, SP=2FED, SI=5566, DI=9876 Καθώς και το ίδιο το πρόγραµµα : MOV [4567],BL POP CX ADD AL,[5000+DI] CALL 0500 Αναφέρατε αιτιολογηµένα σε δεκαεξαδικό και δεκαδικό σύστηµα την πραγµατική διεύθυνση µνήµης που: Α. Ξεκινάει το πρόγραµµα Β. Θα αποθηκευτεί το περιεχόµενο του BL Γ. Ανακαλείται από το Stack (Στοίβα) η τιµή του CX. Το περιεχόµενό της προστίθεται στον AL E. Ξεκινάει η υπορουτίνα µε την CALL Λύση 23η: Α. Ξεκινάει το πρόγραµµα στην CS:IP = 040016:123416 = 040016*1610+123416 = 400016+123416 = 523416 = 2104410 Β. Θα αποθηκευτεί το περιεχόµενο του BL DS:456716 = 060016:456716 = 060016*1610+456716 = 600016+456716 = A56716 = 4234310 Γ. Ανακαλείται από το Stack (Στοίβα) η τιµή του CX SS:SP = 080016:2FED16 = 080016*1610+2FED16 = 800016+2FED16 = AFED16 = 4503710. Το περιεχόµενό της προστίθεται στον AL DS:5000+DI = 060016:5000+987616 = 060016*1610+E87616 = 600016+E87616 = 1487616 = 8408610 E. Ξεκινάει η υπορουτίνα µε την CALL CS:0500 = 040016:050016 = 040016*1610+050016 = 400016+050016 = 450016 = 1766410

Άσκηση 24η: Αναφέρατε τα στάδια εκτέλεσης της εντολής CMP [2345], 6677 µε εντολές µικροπρογράµµατος περιγράφοντας και εξηγώντας αναλυτικά το κάθε στάδιο καθώς και τις τιµές ψηφιακών λέξεων που εµφανίζονται στους διαύλους δεδοµένων και διευθύνσεων σε κάθε στάδιο. Υποθέστε ότι ο IP ήδη δείχνει την διεύθυνση µνήµης που είναι αποθηκευµένη η εντολή (IP=0000). Επίσης υποθέστε ότι το opcode της εντολής είναι 2 byte (81h kαι 06h), ότι στη θέση DS:2345 υπάρχει ο αριθµός AA και στην επόµενη θέση µνήµης ο BB. Υπόδειξη : πρέπει να χρησιµοποιηθεί ο ScratchPad register αλλά και δεύτερος ScratchPad SCR2. Λύση 24η: Φάση Εξωτερική Λειτουργία ΑΒ DB Εσωτερική Μικρο-λειτουργία 1 ιάβασµα opcode 0100:0000 81 MAR IP; IP IP+1; wait; MDR DB; ΙR L MDR 2 ιάβασµα 2 ου opcode 0100:0001 06 MAR IP; IP IP+1; wait; MDR DB; ΙR Η MDR 3 ιάβασµα low byte παραµέτρου διεύθυνσης 0100:0002 45 MAR IP; IP IP+1; wait; MDR DB; ADR L MDR 4 ιάβασµα high byte 0100:0003 23 MAR IP; IP IP+1; wait; MDR DB; ADR H MDR 5 ιάβασµα low byte 0100:0004 77 MAR IP; IP IP+1; wait; MDR DB; παραµέτρου αριθµού SCR L MDR 6 ιάβασµα high byte 0100:0005 66 MAR IP; IP IP+1; wait; MDR DB; 7 ιάβασµα τελικών δεδοµένων 1o byte 8 ιάβασµα τελικών δεδοµένων 2o byte 9 Εκτέλεση εντολής CMP SCR H MDR 0100:2345 (2345)=AA MAR ADR; wait; MDR DB; SCR2 L MDR 0100:2346 (2346)=BB EAR ADR+1; MAR EAR; wait; MDR DB; SCR2 H MDR - - Flags SCR ~ SCR2 12 Επόµενη εντολή 0100:0006 (0006) MAR IP; IP IP+1; wait; MDR DB; ΙR MDR Άσκηση 25η: Χρειάζεται να σχηµατίσουµε µια µνήµη χωρητικότητας 4 Giga διευθύνσεων, όπου κάθε διεύθυνση αντιστοιχεί σε κελί µεγέθους 16 Bit, µε chip µνήµης διάταξης 256Μ Χ 8. Πόσα τέτοια chip θα χρειαστούµε και γιατί. Λύση 25η: Για µια µνήµη χωρητικότητας 4 Giga διευθύνσεων, όπου κάθε διεύθυνση αντιστοιχεί σε κελί µεγέθους 16 Bit, µε chip µνήµης διάταξης 256Μ Χ 8 θα χρειαστούµε: 2 chip για να σχηµατίσουµε µνήµη 256Μ λέξεων των 16 Bit καθώς 256Μ Χ 16 = (256Μ Χ 8) Χ 2 και, προφανώς 16Χ2 chip για να σχηµατίσουµε µνήµη 4 G λέξεων των 16 Bit καθώς 4 G Χ 16 = (256Μ Χ 16) Χ 16 Άρα θα χρειαστούν συνολικά 16Χ2 = 32 τέτοια chip

Άσκηση 26η: Εξηγήστε τι ακριβώς κάνει ο παρακάτω κώδικας assembly 8088 στο σύνολό του, σχολιάζοντας επεξηγηµατικά όλες τις γραµµές του κώδικα, αλλά και και τον πίνακα που αρχίζει στην διεύθυνση [0200] : 0100:0000 MOV BL,00 0100:0002 MOV SI,0000 0100:0005 MOV AL,[0200+SI] 0100:0009 INC SI 0100:000A CMP AL,[0200+SI] 0100:000E JBE 001A 0100:0010 XCHG AL,[0200+SI] 0100:0014 XCHG AL,[01FF+SI] 0100:0018 INC BL 0100:001A CMP SI,9 0100:001D JNE 0005 0100:001F CMP BL,00 0100:0022 JNE 0000 0100:0024 INT 3 Λύση 26η: Ο κώδικας ταξινοµεί τον πίνακα 9 θέσεων του 1ος byte που ξεκινάει στην διεύθυνση µνήµης 0200 µε την µέθοδο BubbleSort 0100:0000 MOV BL,00 Μηδενισµός του µετρητή swap 0100:0002 MOV SI,0000 Μηδενισµός του δείκτη προσπέλασης του πίνακα 0100:0005 MOV AL,[0200+SI] Φόρτωση ενός στοιχείου του πίνακα στον AL 0100:0009 INC SI Αύξηση του δείκτη για προσπέλαση του επόµενου στοιχείου 0100:000A CMP AL,[0200+SI] Σύγκριση µε το επόµενο στοιχείο 0100:000E JBE 001A Αν είναι µικρότερο φύγε 0100:0010 XCHG AL,[0200+SI] Αλλιώς ενάλλαξε AL και 2ο 0100:0014 XCHG AL,[01FF+SI] Και ενάλλαξε AL και 1ο 0100:0018 INC BL Κατέγραψε το Swap στον BL 0100:001A CMP SI,9 Έλεγξε για τέλος του πίνακα 0100:001D JNE 0005 Αν όχι ξανα-πήγαινε στην 0005 0100:001F CMP BL,00 Έλεγξε αν έγιναν swap 0100:0022 JNE 0000 Αν ναι πήγαινε ξανά από την αρχή 0100:0024 INT 3 Αν όχι τέλος του προγράµµατος

Άσκηση 27η: Από τις παρακάτω λέξεις των 8 bit στις οποίες χρησιµοποιείται η µέθοδος της ισοτιµίας για έλεγχο σφάλµατος, δείξτε ποιες έχουν διαβαστεί σωστά και ποιες λάθος, µε το σκεπτικό ότι χρησιµοποιείται άρτια ισοτιµία : Α/Α Λέξη Parity Bit Σωστή ή Λάθος 1 00111011 1 2 10110100 1 3 11111110 0 4 10110010 0 5 10011100 1 Λύση 27η: Α/Α Λέξη Parity Bit Σωστή ή Λάθος 1 00111011 1 Σωστή 2 10110100 1 Λάθος 3 11111110 0 Λάθος 4 10110010 0 Σωστή 5 10011100 1 Λάθος Άσκηση 28η: Σε µία cache µνήµη Άµεσης Χαρτογράφησης µε µέγεθος 512 bytes είναι οργανωµένη σε 16 γραµµές όπου κάθε γραµµή έχει χωρητικότητα 32 bytes. Η µνήµη αυτή χρησιµοποιείται ως ενδιάµεση µνήµη για προσπέλαση αργής RAM συνολικού µεγέθους 2 Kbyte Αν η CPU προσπελάσει διαδοχικά τις µνήµες 72 1090 680 1925 410 900 1420 608 1024 να επισηµάνεται σε ποιες περιπτώσεις συµβαίνει σύγκρουση κρυφής µνήµης (cache collision).

Λύση 28η: Η µνήµη cache θα είναι ως εξής : Εγγραφή Valid Tag Data 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Αντίστοιχες ιευθύνσεις RAM 1504-480 - 511 992-1023 1535 1472-448 - 479 960-991 1503 1440-416 - 447 928-959 1471 1408-384 - 415 896-927 1439 1376-352 - 383 864-895 1407 1344-320 - 351 832-863 1375 1312-288 - 319 800-831 1343 1280-256 - 287 768-799 1311 1248-224 - 255 736-767 1279 1216-192 - 223 704-735 1247 1184-160 - 191 672-703 1215 1152-128 - 159 640-671 1183 1120-96 - 127 608-639 1151 1088-64 - 95 576-607 1119 1056-32 - 63 544-575 1087 1024-0 - 31 512-543 1055 2016-2047 1984-2015 1952-1983 1920-1951 1888-1919 1856-1887 1824-1855 1792-1823 1760-1791 1728-1759 1696-1727 1664-1695 1632-1663 1600-1631 1568-1599 1536-1567 ιεύθυνση RAM Αντίστοιχη Γραµµή cache Cache Collision? 72 2 ΟΧΙ 1090 2 ΝΑΙ 680 5 ΟΧΙ 1925 12 ΟΧΙ 410 12 ΝΑΙ 900 12 ΝΑΙ 1420 12 ΝΑΙ 608 3 ΟΧΙ 1024 0 ΟΧΙ

Άσκηση 29η: ίνεται ο παρακάτω κώδικας ανίχνευσης σφαλµάτων : Αριθµός Κωδικοποίηση 0 111111111111 1 000111111111 2 111000111111 3 000000111111 4 111111000111 5 000111000111 6 111000000111 7 000000000111 8 111111111000 9 000111111000 Α 111000111000 B 000000111000 C 111111000000 D 000111000000 E 111000000000 F 000000000000 Ποια είναι η απόσταση Hamming του κώδικα? Λύση 29η: Η απόσταση Hamming του κώδικα είναι 3 γιατί αν πάρουµε δύο οποιουσδήποτε αποδεκτούς συνδυασµούς η ελάχιστη απόσταση Hamming µεταξύ τους είναι 3. Άσκηση 30η: Αναφέρατε τα στάδια εκτέλεσης της εντολής JMP [6789] µε εντολές µικροπρογράµµατος περιγράφοντας και εξηγώντας αναλυτικά το κάθε στάδιο καθώς και τις τιµές ψηφιακών λέξεων που εµφανίζονται στους διαύλους δεδοµένων και διευθύνσεων σε κάθε στάδιο. Υποθέστε ότι ο IP ήδη δείχνει την διεύθυνση µνήµης που είναι αποθηκευµένη η εντολή (IP=0000). Επίσης υποθέστε ότι το opcode της εντολής είναι 2 byte (FFh kαι 26h). Λύση 30η: Φάση Εξωτερική Λειτουργία ΑΒ DB Εσωτερική Μικρο-λειτουργία 1 ιάβασµα opcode 0100:0000 FF MAR IP; IP IP+1; wait; MDR DB; ΙR L MDR 2 ιάβασµα 2 ου opcode 0100:0001 26 MAR IP; IP IP+1; wait; MDR DB; ΙR Η MDR 3 ιάβασµα low byte παραµέτρου διεύθυνσης 0100:0002 89 MAR IP; IP IP+1; wait; MDR DB; ADR L MDR 4 ιάβασµα high byte 0100:0003 67 MAR IP; IP IP+1; wait; MDR DB; ADR H MDR

5 ιάβασµα τελικής διεύθυνσης 1o byte 6 ιάβασµα τελικής διεύθυνσης 2o byte 7 Εκτέλεση εντολής - τοποθέτηση της τελικής 0100:6789 (6789) MAR ADR; wait; MDR DB; SCR L MDR 0100:678Α (678Α) EAR ADR+1; MAR EAR; wait; MDR DB; SCR H MDR - - IP SCR διεύθυνσης στον IP 8 Επόµενη εντολή 0100:0004 (0004) MAR IP; IP IP+1; wait; MDR DB; ΙR MDR