Μετάβαση στο περιεχόμενο

Βασικά Θέματα Αρχιτεκτονικής Υπολογιστών — Ιανουάριος 2021

Μεταγραφή από τα αρχεία της συνεδρίας (χωρίς λύσεις). Όπου το κείμενο δεν διαβάζεται, σημειώνεται [δυσανάγνωστο].

139863430_227893592149860_7274870433779430993_n.jpg

Άσκηση 1

Ερώτηση 1 / 1 (Συμπλήρωση Κενών (Χαλαρή Ταυτοποίηση) — 0 βαθμοί)

Υποθέστε ότι οι καταχωρητές R1, R2 και R3 είναι 8 bit και υποθέστε ότι εκτελούνται οι κάτωθι εντολές:

MOV R1, 0x80
MOV R2, 0xFB
@ Πρόσθεση 8bit
ADD R3, R1, R2

Συμπληρώστε κατάλληλα τα κενά στις παρακάτω ερωτήσεις (κεφαλαία λατινικά)

Ποιο είναι το αποτέλεσμα σε δεκαεξαδική μορφή (κεφαλαία λατινικά) στον R3 ______

Ποιο είναι το αποτέλεσμα σε μη προσημασμένη δεκαδική μορφή στον R3 ______

Ποιο είναι το αποτέλεσμα σε προσημασμένη δεκαδική μορφή στον R3 ______

Ποιο θα είναι το περιεχόμενο του Carry Bit ______

Ποιο θα είναι το περιεχόμενο του Overflow Bit ______

139519434_773410100197433_8047201480328964705_n.jpg

Το κάτωθι πρόγραμμα υπολογίζει 4 τιμές μια συνάρτησης (ενός word η κάθεμία) και τις αποθηκεύει διαδοχικά στην θέση μνήμης η διεύθυνση της οποίας σηματοδοτείται από ετικέτα Results (όλες οι αρχικές τιμές των καταχωρητών είναι μηδενικές). Απαντήστε στις κάτωθι ερωτήσεις (συμπληρώστε τα κενά στο δεκαεξαδικό σύστημα):

001 .arm
002 .text
003 .global main
004
005 main:
006 LDR R13 ,=Stack
007 STMDB R13!, {R0-R12, R14}
008 LDR R0 ,=Values
009 LDR R1 ,=Const
010 LDR R6 ,=Results
011 BL SubR
012 ADD R0, R0, #0x03
013 ADD R6, R6, #0x04
014 BL SubR
015 ADD R0, R0, #0x03
016 ADD R6, R6, #0x04
017 BL SubR
018 ADD R0, R0, #0x03
019 ADD R6, R6, #0x04
020 BL SubR
021 LDMIA R13!, {R0-R12, R14}
022 @end of main
023
024 SubR:
025 STMDB R13!, {R0-R5}
026 LDRB R3, [R0]
027 LDRB R4, [R1]
028 B CALC1
029 Done:
030 MUL R2, R3, R4
031 LDRB R3, [R0, #1]
032 LDRB R4, [R1, #1]
033 MLA R2, R3, R4, R2
034 MOV R0, R2, LSR #2
035 STR R0, [R6]
036 LDMIA R13!, {R0-R5}
037 MOV PC, LR
038
039 CALC1:
040 MUL R2, R3, R4
041 ADD R2, R2, #0x01
042 B Done
043
044 .data
045 Results:
046 .word 0x00, 0x00, 0x00, 0x00
047
048
049 Values:
050 .byte 0x02, 0x01, 0xE3
051 .byte 0x11, 0x02, 0x02
052 .byte 0x05, 0x01, 0x07
053 .byte 0x06, 0x07, 0x02
054
055 Const:
056 .byte 0x02, 0x06, 0x08, 0x00

Η υπολογιζόμενη τιμή της συνάρτησης κατά την 2η κλήση της της SubR στο δεκαεξαδικό σύστημα που αποθηκεύεται στην 2η θέση του Πίνακα Results (Ο Πίνακας Results βρίσκεται στην θέση μνήμης η διεύθυνση της οποίας σηματοδοτείται από ετικέτα Results) είναι (2 ψηφία στο δεκαεξαδικό σύστημα-λατινικοί χαρακτήρες): ________

137236153_741896436708342_6232510662412859244_n.jpg

[Σχήμα: στιγμιότυπο οθόνης ηλεκτρονικής εξέτασης με πρόγραμμα σε συμβολική γλώσσα ARM σε δύο στήλες και πεδίο απάντησης στο κάτω μέρος]

Κώδικας, αριστερή στήλη:

[συμπληρώθηκε από 139519434_773410100197433_8047201480328964705_n.jpg]: γραμμές 001–004 (η φωτογραφία κόβεται στο πάνω άκρο· το ίδιο φύλλο)

001 .arm
002 .text
003 .global main
004
005 main:
006 LDR R13 ,=Stack
007 STMDB R13!, {R0-R12, R14}
008 LDR R0 ,=Values
009 LDR R1 ,=Const
010 LDR R6 ,=Results
011 BL SubR
012 ADD R0, R0, #0x03
013 ADD R6, R6, #0x04
014 BL SubR
015 ADD R0, R0, #0x03
016 ADD R6, R6, #0x04
017 BL SubR
018 ADD R0, R0, #0x03
019 ADD R6, R6, #0x04
020 BL SubR
021 LDMIA R13!, {R0-R12, R14}
022 @end of main
023

Κώδικας, δεξιά στήλη:

[συμπληρώθηκε από 139519434_773410100197433_8047201480328964705_n.jpg]: γραμμές 024–027 (η φωτογραφία κόβεται στο πάνω άκρο· το ίδιο φύλλο)

024 SubR:
025 STMDB R13!, {R0-R5}
026 LDRB R3, [R0]
027 LDRB R4, [R1]
028 B CALC1
029 Done:
030 MUL R2, R3, R4
031 LDRB R3, [R0, #1]
032 LDRB R4, [R1, #1]
033 MLA R2, R3, R4, R2
034 MOV R0, R2, LSR #2
035 STR R0, [R6]
036 LDMIA R13!, {R0-R5}
037 MOV PC, LR
038
039 CALC1:
040 MUL R2, R3, R4
041 ADD R2, R2, #0x01
042 B Done
043
044 .data
045 Results:
046 .word 0x00, 0x00, 0x00, 0x00
047
048
049 Values:
050 .byte 0x02, 0x01, 0xE3
051 .byte 0x11, 0x08, 0x02
052 .byte 0x05, 0x01, 0x07
053 .byte 0x06, 0x07, 0x02
054
055 Const:
056 .byte 0x02, 0x08, 0x08, 0x00

Η υπολογιζόμενη τιμή της συνάρτησης κατά την 2η κλήση της της SubR στο δεκαεξαδικό σύστημα που αποθηκεύεται στην 2η θέση του Πίνακα Results (Ο Πίνακας Results βρίσκεται στην θέση μνήμης η διεύθυνση της οποίας σηματοδοτείται από ετικέτα Results) είναι (2 ψηφία στο δεκαεξαδικό σύστημα-λατινικοί χαρακτήρες):

[πεδίο απάντησης]

20200827_103638.jpg

Ερώτηση 1 / 1 (Ελεύθερου Κειμένου — 8 βαθμοί)

Υποθέστε ότι στη διεύθυνση 2X (hex) (όπου X το τελευταίο ψηφίο του ΑΜ σας όπως έχει δηλωθεί στο eclass π.χ. 21) της κύριας μνήμης βρίσκεται ο αριθμός A και στη θέση 2X+1 (hex) ο αριθμός B ενώ στη θέση 2X+2 (hex) βρίσκεται ένας αριθμός από 0-15 - 8-bit). Να υλοποιηθεί ένα μικροπρόγραμμα που να υπολογίζει την διαφορά A-B-1 και το αποτέλεσμα να αποθηκευτεί σε καταχωρητή του οποίου η διεύθυνση στο register file είναι το περιεχόμενο της διεύθυνσης 2X+2 (hex) της κύριας μνήμης. Θα πρέπει να συμπεριλάβετε και τον αντίστοιχο ψευδοκώδικα των εντολών.

Ισχύουν τα κάτωθι:

  • Δεν σας απασχολεί το bootstrap και θεωρείται δεδομένο
  • Δεν μπορείτε να χρησιμοποιήσετε τα β DIP Switches της πλακέτας (PCE~)
  • Δεν σας απασχολεί η προηγούμενη/επόμενη εντολή

Η λύση σας θα πρέπει να γραφτεί στο αρχείο excel των 40δων και να υποβληθεί ως εργασία στην πλατφόρμα EXAMS (ενότητα Εργασίες).

(https://exams.eclass.upatras.gr/modules/work/?course=CEID147)

Προσοχή μην αφήσετε την υποβολή για την τελευταία στιγμή γιατί η πλατφόρμα μπορεί να την απορρίψει.


✖ Βρήκα λάθος στη μεταγραφή