Βασικά Θέματα Αρχιτεκτονικής Υπολογιστών — Ιανουάριος 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)
Προσοχή μην αφήσετε την υποβολή για την τελευταία στιγμή γιατί η πλατφόρμα μπορεί να την απορρίψει.