ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΙΙ Εργαστήριο 2 ο ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ- ΨΕΥΔΟΕΝΤΟΛΕΣ ΜΑΚΡΟΕΝΤΟΛΕΣ- ΔΙΑΔΙΚΑΣΙΕΣ (ΕΙΣΑΓΩΓΗ)

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

Υποπρογράμματα (Subroutines)

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

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

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

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

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

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

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

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

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 1 Hello World

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

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

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

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

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

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

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

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

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

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

Αρχιτεκτονική-ΙΙ Μέρος 2 ο

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

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

Data-Level Parallelism Linking & Loading

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

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

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

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

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

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

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

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

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

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

ΑΣΚΗΣΗ 1 ΑΣΚΗΣΗ 1. Συγγραφή. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

Μεταγλωττιστής. Μεταφραστές. Γλώσσες. Είδη Μεταγλωττιστών. Μεταγλωττιστής Τελικό πρόγραµµα (object program) Εισαγωγή Αρχικό πρόγραµµα (source program)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

ΧΡΗΣΗ ΠΛΗΚΤΡΟΛΟΓΙΟΥ, ΟΘΟΝΗΣ ΚΑΙ INTERRUPTS ΣΤΟΝ EMULATOR

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

Εικονική Μνήμη (1/2)

Προεπεξεργαστής C. Προγραμματισμός Ι 1

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86

Ανάπτυξη και Σχεδίαση Λογισμικού

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΗΜΥ Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

Δομημένος Προγραμματισμός (ΤΛ1006)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Περιεχόµενα. I Βασικές Γνώσεις 1

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

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

Διαδικασιακός Προγραμματισμός

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

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

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

Προηγμένοι Μικροεπεξεργαστές. Φροντιστήριο 4 Real Mode Interrupts

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

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

Προγραμματισμός Η/Υ (ΤΛ2007 )

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

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

Προγραμματισμός Ι (ΗΥ120)

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

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

Εργαστήριο 4. Εαρινό Εξάμηνο ΠΡΟΣΟΧΗ: Αρχίστε νωρίς το Εργαστήριο 4. Οι ασκήσεις είναι πιο απαιτητικές από τα προηγούμενα εργαστήρια.

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

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Αρχιτεκτονική x86(-64) 32-bit και 64-bit λειτουργία. Αρχιτεκτονική x86(-64) Αρχιτεκτονική επεξεργαστών x86(-64) Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Είναι μια αλληλουχία κατάλληλων οδηγιών(εντολών) που εκτελεί ο υπολογιστής για την επίλυση ενός προβλήματος.

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Οργάνωση και Σχεδίαση Υπολογιστών Η Διασύνδεση Υλικού και Λογισμικού, 4 η έκδοση. Σύντομη Εισαγωγή στη χρήση του προσομοιωτή και συμβολομεταφραστή

Δομημένος Προγραμματισμός

ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ. Διεύθυνση μεταβλητής. Δείκτης

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

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

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τα επιμέρους τμήματα Η ΟΜΗ TOY ΥΠΟΛΟΓΙΣΤΗ. Αναπαράσταση μεγεθών. Αναλογική αναπαράσταση ΚΕΝΤΡΙΚΗ ΜΝΗΜΗ ΜΟΝΑ Α ΕΛΕΓΧΟΥ

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Ανάπτυξη και Σχεδίαση Λογισμικού

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

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην εξοικείωση με τη διαδικασία κατασκευής ενός Λεξικού Αναλυτή κάνοντας χρήση του lex.

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

Transcript:

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΙΙ Εργαστήριο 2 ο ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ- ΨΕΥΔΟΕΝΤΟΛΕΣ ΜΑΚΡΟΕΝΤΟΛΕΣ- ΔΙΑΔΙΚΑΣΙΕΣ (ΕΙΣΑΓΩΓΗ)

ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ Ι Τρία κύρια τμήματα Ορισμός μοντέλου τμημάτων μνήμης και σωρού Ορισμός και αρχικοποίηση τιμών μεταβλητών Τμήμα κώδικα Καθορίζονται με ένα σύνολο οδηγιών προς τον συμβολομεταφραστή οι οποίες ξεκινούν με το πρόθεμα τελεία (.) και δεν μεταφράζονται σε κώδικα μηχανής αλλά επηρεάζουν τον κώδικα που παράγει ο συμβολομεταφραστής.

ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΙΙ.model [είδος].stack [μέγεθος].data.code

ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΙΙ.model [είδος].stack [μέγεθος].data.code

ΜΟΝΤΕΛΑ ΜΝΗΜΗΣ (.MODEL [ΕΙΔΟΣ]) Είδος Δεδομένα Κώδικας Tiny Ενιαίο 64KB Ενιαίο τμήμα δεδομένων και κώδικα Small 64KB 64KB 1 Τμήμα δεδομένων,, 1 Τμήμα κώδικα Medium 64KB 64KB/Τμήμα 1 Τμήμα δεδομένων, >1 Τμήματα κώδικα Compact 64KB/Τμήμα 64KB >1 Τμήματα δεδομένων, 1 Τμήμα κώδικα Large* οποιοδήποτε οποιοδήποτε >1 Τμήματα δεδομένων, >1 Τμήματα κώδικα Huge* οποιοδήποτε οποιοδήποτε >1 Τμήματα δεδομένων, >1 Τμήματα κώδικα * Στο μοντέλο Large το μεγαλύτερο μέγεθος μεταβλητής πρέπει να είναι 64KB ενώ στο μοντέλο Huge δεν υπάρχει ο παραπάνω περιορισμός

ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΙΙ.model small.stack [μέγεθος].data.code

ΜΟΝΤΕΛΑ ΣΩΡΟΥ (.STACK) Το μέγεθος του σωρού καθορίζεται με απευθείας θί τιμή. Εξ ορισμού το μέγεθος του σωρού είναι 1024 ξ ρ μ μγ ς ρ Bytes (δεν αναφέρεται καθόλου το μέγεθος)

ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΙΙ.model small.stack (ισοδυναμεί με.stack 1024).data.code

ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ (.DATA) Ορισμός σταθερών και μεταβλητών εντός αυτού του τμήματος Για τις μεταβλητές εκτός από τον ορισμό του τύπου ορίζεται το μέγεθος (π.χ. για πίνακες) και οι ενδεχόμενες αρχικές τιμές Για τις σταθερές ορίζεται η τιμή αντικατάστασης

ΣΤΑΘΕΡΕΣ Για τον ορισμό μιας σταθεράς χρησιμοποιείται το πρόθεμα equ (equal)

ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ - ΜΕΤΑΒΛΗΤΩΝ Τύπος db (define byte) dw (define word) dd (define doubleword) Λειτουργία Ορίζεται τύπος μεταβλητής με μέγεθος κάθε στοιχείου της μεταβλητής ένα byte Ορίζεται τύπος μεταβλητής με μέγεθος κάθε στοιχείου της μεταβλητής δύο bytes Ορίζεται τύπος μεταβλητής με μέγεθος κάθε στοιχείου της μεταβλητής τέσσερα bytes Οδηγία Λειτουργία dup (duplicate) Καθορισμός πλήθους στοιχείων μεταβλητής dup (?) Ητιμή στην παρένθεση καθορίζει την αρχική τιμή των στοιχείων της μεταβλητής. Όταν η παρένθεση περιέχει το? Η αρχική τιμή των στοιχείων της μεταβλητής είναι αδιάφορη.

ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΙΙ.model small.stack.data len equ 20 var1 db 50 dup (30).code

ΤΜΗΜΑ ΚΩΔΙΚΑ (.CODE) Το Τμήμα αυτό περιέχει τις εντολές του προγράμματος και κλήσεις προς μακροεντολές και διαδικασίες Στην αρχή του κώδικα πραγματοποιείται αρχικοποίηση τμημάτων δεδομένων δ με αρχικοποίηση του καταχωρητή DS (Διαδικασία δύο βημάτων για αποφυγή λάθους!!!) mov AX, @data mov DS,AX ή mov AX, seg [ον. μεταβλ.] mov DS, AX

ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΙΙ.model small.stack.data len equ 20 var1 db 50 dup (30).code mov AX, seg var1 mov DS, AX

ΕΞΟΔΟΣ ΣΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ(.ΕΧΙΤ) Η συγκεκριμένη οδηγία προς το συμβολομεταφραστή ισοδυναμεί με το τμήμα εντολών: mov AX,4C00h Int 21h δηλαδή με την κλήση της διακοπής λογισμικού που δηλαδή με την κλήση της διακοπής λογισμικού που επιστρέφει τον έλεγχο στο Λ.Σ.

ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΙΙ.model small.stack.data len equ 20 var1 db 50 dup (30).code mov AX, seg var1 mov DS, AX

ΑΛΛΕΣ ΨΕΥΔΟΕΝΤΟΛΕΣ I Οδηγία assume end macro endm proc endp public Λειτουργία Συνδέει ένα τμήμα με έναν καταχωρητή τμήματος Τέλος προγράμματος. Εάν συνοδεύεται από κάποιο όνομα, είναι ένδειξη εκκίνησης της εκτέλεσής του. Έναρξη μακροεντολής Τέλος μακροεντολής (macro) Έναρξη διαδικασίας Τέλος διαδικασίας Επιτρέπει τη χρήση σταθερών ή μεταβλητών από άλλα προγράμματα, τα οποία πρόκειται να ενσωματωθούν με τον συνδέτη.

ΑΛΛΕΣ ΨΕΥΔΟΕΝΤΟΛΕΣ II Οδηγία Λειτουργία extrn Χρήση σταθερών ή μεταβλητών άλλου προγράμματος, στο οποίο έχουν δηλωθεί με την εντολή public include Ενσωμάτωση στο πηγαίο αρχείο άλλου αρχείου offset org ptr segment ends Υπολογισμός της σχετικής διεύθυνσης από τη φυσική διεύθυνση Ορισμός διεύθυνσης εντός του τμήματος, από την οποία θα τοποθετεί ο συμβολομεταφραστής τον κώδικα και τα δεδομένα που ακολουθούν Δείκτης μνήμης ο οποίος μαζί με το πρόθεμα byte ή word καθορίζει το μήκος του δεδομένου δ που θα διακινηθεί. Ορισμός τμήματος Τέλος τμήματος

ΜΑΚΡΟΕΝΤΟΛΕΣ Ι Ο κώδικας μιας μακροεντολής αντικαθίσταται στα σημεία εμφάνισης εντός του προγράμματος κατά αά τη μετάφραση! εάφραση! Δομή μακροεντολής [Όνομα μ μακροεντολής] macro [Παράμετροι] ρ μ ρ εντολές [Όνομα μακροεντολής] endm

ΜΑΚΡΟΕΝΤΟΛΕΣ ΙΙ.model small.stack.data msg1 db arxitektoniki II$ msg2 db earino 2010$ prtnmsg macro text mov dx, offset text mov ah, 09h Int 21h prtnmsg endm.code mov AX, seg var1 mov DS, AX mov ES, AX prtnmsg msg1 prtnmsg msg2

ΜΑΚΡΟΕΝΤΟΛΕΣ ΙIΙ.code mov AX, seg var1 mov DS, AX mov ES, AX mov dx, offset msg1 mov ah, 09h Int 21h mov dx, offset msg2 mov ah, 09h Int 21h.code mov AX, seg var1 mov DS, AX mov ES, AX prtnmsg msg1 prtnmsg msg2

ΔΙΑΔΙΚΑΣΙΕΣ I Οι διαδικασίες δ αποτελούν αυτόνομα τμήματα κώδικα που καλούνται μέσα από άλλα τμήματα κώδικα. Δομή Διαδικασιας [Όνομα μ Διαδικασίας] proc near ή far εντολές ret [Όνομα Διαδικασίας] endp

ΔΙΑΔΙΚΑΣΙΕΣ ΙΙ model small.stack.data msg db arxitektoniki II$.code mov AX, seg var1 mov DS, AX mov ES, AX call prtnmsg prtnmsg proc near mov dx, offset msg mov ah, 09h Int 21h ret prtnmsg endp