Lab 3 Εξοικείωση με μετάφραση C σε Assembly Πρώτη γνωριμία με εντολές Assembly.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Εισαγωγή στις Τεχνολογίες της Πληροφορικής και των Επικοινωνιών
Advertisements

1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.
Βήματα στην εκτέλεση μιας διαδικασίας (procedure) 1.Τοποθέτηση παραμέτρων 2.Μεταβίβαση ελέγχου στη διαδικασία 3.Λήψη πόρων αποθήκευσης.
Πινακες (Arrays) Σημασια Συνταξη Αρχικοποιηση Προσβαση Παραμετροι
Εισαγωγή στο AT91 Νίκος Πετρέλλης, ΠΔ407/80. Αρχιτεκτονική του ARM926EJ-S.
Μάθημα : Βασικά Στοιχεία της Γλώσσας Java
ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Η Αρχιτεκτονική των Επεξεργαστών Ψ.Ε.Σ Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών.
Συναρτήσεις Κληση/Επιστροφη Παραμετροι
Λύση: Multicycle υλοποίηση Single-cyle υλοποίηση: Διάρκεια κύκλου ίση με τη μεγαλύτερη εντολή-worst case delay (εδώ η lw) = χαμηλή.
Εισαγωγή στο AT91 Νίκος Πετρέλλης, ΠΔ407/80.
ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Βελτιστοποίηση κώδικα σε επεξεργαστές ΨΕΣ Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών.
Η ΕΚΤΕΛΕΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΧΡΗΣΤΗ ΑΠ’ ΤΟΝ Η/Υ ΤΟΜΕΑΣ ΤΕΧΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Δ.ΙΕΚ ΠΑΤΡΑΣ.
ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑ 1.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων. Πίνακας Συμβόλων (Symbol Table) (Ι)  Είναι μια δομή στην οποία αποθηκεύονται τα ονόματα ενός προγράμματος και.
Διαχείριση μνήμης Υπόβαθρο Εναλλαγή Συνεχής κατανομή Σελιδοποίηση
ΣΥΝΑΡΤΗΣΕΙΣ.
ΠΙΝΑΚΑΣ ΕΝΤΟΛΩΝ ΨΕΥΔΟΚΩΔΙΚΑ
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων Φροντιστήριο - 30/04/2009.
Άσκηση 1. Θεωρούμε το ακόλουθο κομμάτι κώδικα int i,j; double result, a[110][4]; for(i=0; i
Τα χαρακτηριστικά των επεξεργαστών By ΔΙΟΝΥΣΗ ΣΚΕΓΙΑ ΕΠΑ-Λ ΚΡΕΣΤΕΝΩΝ!
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Κεφάλαιο 10 – Υποπρογράμματα
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
Προγραμματισμός Γιατι γραφουμε προγραμματα (προηγ. διαλεξη)
ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Συνολική αρχιτεκτονική του Επεξεργαστή TMS320C6713 και προγραμματισμός σε ASSEMBLY Τμήμα.
ΗΥ-340 – Γλώσσες και Μεταφραστές Φροντιστήριο Παραγωγή τελικού κώδικα.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Πίνακες.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
Spring 2007 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας 1 ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Virtual Machine.
ΘΠ06 - Μεταγλωττιστές Ενδιάμεσος Κώδικας – Μεταφραστικά Σχήματα.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.
ΗΥ150 – ΠρογραμματισμόςΞενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις (μέρος δεύτερο) και Μεταβλητές.
Cortex-A Πλήρη λειτουργικά Yψηλή επίδοση Cortex-A Πλήρη λειτουργικά Yψηλή επίδοση Cortex-R Αυστηρές διορίες Διαχείριση λαθών Cortex-R Αυστηρές διορίες.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
Lab 2 Γνωριμία με το περιβάλλον Βασικές δυναότητες/λειτουργίες.
Η Κεντρική Μονάδα Συστήματος Εισαγωγή στην Πληροφορκή 1 Η κεντρική μονάδα του συστήματος (base unit ή system unit) αποτελεί τον πυρήνα ενός υπολογιστή.
ΠΑΡΑΔΕΙΓΜΑ: ΤΑ ΕΠΙΠΕΔΑ ΥΛΙΚΟΥ – ΛΟΓΙΣΜΙΚΟΥ ΣΕ ΕΝΑΝ ΥΠΟΛΟΓΙΣΤΗ.
Β' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΕΞΙΣΩΣΗ ΕΥΘΕΙΑΣ ΣΤΟ ΕΠΙΠΕΔΟ Mπανανής Νικόλαος Στρούβαλη Παρασκευή.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πίνακας Συμβόλων Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Αρχιτεκτονική Υπολογιστών DATAPATH & CONTROL. Αρχιτεκτονική Υπολογιστών DATAPATH & CONTROL Για κάθε εντολή υπάρχουν δυο βήματα που πρέπει να γίνουν: –Προσκόμιση.
Καταχωρητές (Registers) (1/3) Εισαγωγή στην Πληροφορκή1 Οι Καταχωρητές (Registers) είναι ειδικές θέσεις μνήμης υψηλής ταχύτητας που χρησιμοποιούνται για.
Lab 6. Άσκηση: Πράξεις σε πίνακες Κατεβάστε από το eclass την άσκηση Lab_example_maxmin από τον κατάλογο Lecture_Keramidas Γεμίζει 12 θέσεις μνήμης (ξεκινώντας.
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΠΙΝΑΚΑΣ ΕΝΤΟΛΩΝ ΨΕΥΔΟΚΩΔΙΚΑ
ΙΕΚ Γαλατσίου Στατιστική Ι Μάθημα 4
Single-cyle υλοποίηση:
MIPS: Σύνολο εντολών, γλώσσα μηχανής & μεθοδολογία σχεδίασης
Γνωριμία με το περιβάλλον Βασικές δυνατότητες/λειτουργίες
ΕΚΡΕΜΜΕΣ.
Πίνακας Συμβόλων Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής.
Πληροφοριακά Συστήματα στα Τουριστικά Επαγγέλματα
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Μανασσάκης Βασίλης Καθηγητής Πληροφορικής
Εισαγωγή στον Προγ/μό Υπολογιστών
Επαναληπτικές ασκήσεις
Υποστήριξη διαδικασιών στο υλικό των υπολογιστών
ΜΑΘΗΜΑΤΙΚΑ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Β΄ ΛΥΚΕΙΟΥ
Single-cyle υλοποίηση:
Υποστήριξη διαδικασιών στο υλικό των υπολογιστών
ΗΥ-150 Προγραμματισμός Αναδρομή (1/2).
Εθνικό Καποδιστριακό Πανεπιστήμιο Αθηνών
Ο ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΗΣ MIPS R10000
Single-cyle υλοποίηση:
Βασικές έννοιες (Μάθημα 2) Τίτλος: Η Συσκευή
Single-cyle υλοποίηση:
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Μεταγράφημα παρουσίασης:

Lab 3 Εξοικείωση με μετάφραση C σε Assembly Πρώτη γνωριμία με εντολές Assembly

Κώδικας Άσκησης Κατεβάστε το project  Lecture 3 από το eclass Περιγράψτε συνοπτικά την λειτουργία του Διαμορφώστε το περιβάλλον ώστε να χρησιμοποιήσετε τον Simulator του περιβάλλοντος

Μέτρηση ταχύτητας κώδικα Ορίστε εξωτερική συχνότητα ρολογιού 12ΜΗz Ορίστε breakpoints όπως φαίνεται Μέσω των Ενδείξεων States και Sec μπορούμε να γνωρίζουμε πόσοι κύκλοι ρολογιού έχουν περάσει και πόσα sec  Με βάση τα breakpoints επαληθεύσατε ότι όντως το ρολόι είναι 12MHz  Αυξήστε το ρολόι σε 24ΜΗz και πραγματοποιήστε την ίδια επαλήθευση

Αποθήκευση μεταβλητών Μέσω του debug περιβάλλοντος εντοπίστε και σημειώστε Που αποθηκεύονται οι μεταβλητές result, z1, z2, x, y Με ποιες εντολές Assembly γίνεται η αποθήκευση MOVS Reg, #Value Ορίστε άλλες δύο int μεταβλητές (π.χ. y1,y2) Που αποθηκεύονται οι νέες μεταβλητές; Ορίστε έναν πίνακα και αποδώστε τιμές με τις ακόλουθες εντολές int pinax[5]; pinax[0] = 0; pinax[1] = 1; pinax[2] = 2; pinax[3] = 3; pinax[4] = 4; Σε ποιες διευθύνσεις αποθηκεύονται τα στοιχεία του πίνακα;

Κλήση συναρτήσεων Η κλήση της συνάρτησης func1 αντιστοιχίζεται στις εντολές από διεύθυνση 0x21A – 0x222 Ποια η λειτουργία των εντολών MOV και LDR MOV  Μεταφορά LDR  Φόρτωση τιμής από μνήμη Γιατί προηγούνται της κλήσης; BL  Βranch Link.W  32bit instruction Που βρίσκεται η πρώτη εντολή της func1; Επαληθεύστε το με step-by-step execution Ποια θα είναι η τιμή του R14 μετά την εκτέλεση της BL.w func1; Επαληθεύστε το

Ανάλυση Συνάρτησης – Επιστροφή από συνάρτηση Ποιες εντολές Assembly αποτελούν το σώμα της συνάρτησης func1; Με ποια εντολή Assembly γυρνάμε από μια συνάρτηση; Καταγράψτε όλες τις Assembly εντολές της func2

Ανάλυση Συνάρτησης – Επιστροφή από συνάρτηση Ποιες εντολές Assembly αποτελούν το σώμα της συνάρτησης func1; Με ποια εντολή Assembly γυρνάμε από μια συνάρτηση; Καταγράψτε όλες τις Assembly εντολές της func2

Ορισμός νέας συνάρτησης – Αντιστοίχηση σε εντολές Assembly Ορίστε νέα συνάρτηση η οποία να πραγματοποιεί πολλαπλασιασμό Καλέστε την συνάρτηση πολλαπλασιάσου με ορίσματα τα z1 και z2 Σε ποια διεύθυνση αποθηκεύεται η νέα συνάρτηση; Καταγράψτε όλες τις εντολές που απαρτίζουν την συνάρτηση που ορίσατε  Υποστηρίζει η ALU του CortexM0 πολλαπλασιασμό;  Κάντε τα ίδια για διαίρεση  Υποστηρίζει η ALU του CortexM0 διαίρεση;