Εργαστήριο Αρ. 1. Εισαγωγή στην Αρχιτεκτονική MIPS. Πώς Δημιουργείτε ένα Executable Αρχείο

Σχετικά έγγραφα
Εργαστήριο Αρ. 1. Εισαγωγή στην Αρχιτεκτονική MIPS. Πέτρος Παναγή Σελ. 1

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 2 Οργάνωση μνήμης Καταχωρητές του MIPS Εντολές του MIPS 1

Τέτοιες λειτουργίες γίνονται διαμέσου του

ΗΜΥ 213. Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών. Διδάσκων: Δρ. Γιώργος Ζάγγουλος

Διαδικασίες Ι. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 4

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

LANGUAGE OF THE MACHINE. TEI Κρήτης, Τμ. ΕΠΠ, Αρχιτεκτονική Υπολογιστών. Οργάνωση Υπολογιστή. Τυπική οργάνωση υπολογιστή

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

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

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

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

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

Data-Level Parallelism Linking & Loading

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

Συναρτήσεις-Διαδικασίες

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

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath

Παραδείγματα Assembly (Μέρος

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

Μετάφραση ενός Προγράμματος Εξαιρέσεις

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

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

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

Διαδικασίες ΙI. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 5

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Single Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση

Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη. (Διάλεξη. Πανεπιστήμιο Κύπρου

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

Εισαγωγή στην πληροφορική -4

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

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

Παραδείγματα Assembly Μέρος Γ

Σύγχρονες Αρχιτεκτονικές Υπολογιστών

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 2: Βρόχοι και Επικοινωνία Κονσόλας στον SPIM. Μανόλης Γ.Η.

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

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου

ΤΠ 2108 Αρχιτεκτονική Υπολογιστών (Εργαστήριο) ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΚΡΗΤΗΣ. Σειρά Ασκήσεων 2

6. Επιστροφή ελέγχου στο σημείο εκκίνησης

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη

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

Υποστήριξη διαδικασιών στο υλικό των υπολογιστών

MIPS functions and procedures

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

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

Εντολές του MIPS (2)

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

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

Απλός επεξεργαστής (Επανάληψη)

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

Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32. Αρχείο καταχωρητών και Χάρτης Μνήµης

ΠΛΕ- 027 Μικροεπεξεργαστές

Αρχιτεκτονικη υπολογιστων

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Διαλέξεις 6: Κάλεσμα Διαδικασιών, Χρήση και Σώσιμο Καταχωρητών. Μανόλης Γ.Η.

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

Multi Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις

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

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 3 Εντολές του MIPS (2)

Λειτουργικά Συστήματα. Εισαγωγή

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

-Επεξεργαστής: datapath (δίοδος δεδοµένων) (1) και control (2) -Μνήµη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!)

Αναδρομή. ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 6. Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Εντολές: H γλώσσα μηχανής

ΠΛΕ- 027 Μικροεπεξεργαστές 5ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση ενός κύκλου

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

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

Σειρά Ασκήσεων 3: Προσπελάσεις Μνήµης στον MIPS

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

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

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

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

Τελική Εξέταση, Απαντήσεις/Λύσεις

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Intel x86 ISA. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΗΥ

Κεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer)

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

ΠΛΕ- 027 Μικροεπεξεργαστές

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Εργαστήριο Αρ. 1. Εισαγωγή στην Αρχιτεκτονική ARMv8 Πέτρος Παναγή

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

Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης!

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

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Εργαστήριο Αρ. 2

Εντολές: H γλώσσα μηχανής

Άσκηση 1 (α) Άσκηση 1 (γ) Άσκηση 1 (β) Παραδείγματα Assembly. Άρα με έλεγχο στον $t1 αποφασίζω αν είναι 0 ή 1.

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

Κεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer)

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

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

ΤΠ 2108 Αρχιτεκτονική Υπολογιστών (Εργαστήριο) ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΚΡΗΤΗΣ. Σειρά Ασκήσεων 1

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

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

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

Εργαστήριο 2. Εαρινό Εξάμηνο Εντολές για είσοδο ακεραίων αριθμών από την κονσόλα:

-Επεξεργαστής: datapath (δίοδος δεδομένων) (1) και control (2) -Μνήμη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!)

Transcript:

Εργαστήριο Αρ. 1 Εισαγωγή στην Αρχιτεκτονική MPS Πέτρος Παναγή Σελ. 1 Πώς Δημιουργείτε ένα Executable Αρχείο Source File: Ένα TEXT αρχείο με τον πυγαίο κώδικα. Assemble: Μεταφράζει τις assembly εντολές σε γλώσσα μηχανής Linker: O Linker παίρνει διάφορα objects files και program library files για να δημιουργήσει το εκτελέσιμο αρχείο (executable file) Executable File: Είναι το Binary File που αντιγράφεται στην μνήμη του υπολογιστή και εκτελείται. Πέτρος Παναγή Σελ. 2

Assembly with Labels Assembly Machine Language C ή C++ Πέτρος Παναγή Σελ. 3 Assembly Language/H Γλώσσα Μηχανής Η Συμβολική γλώσσα (Assembly) είναι η συμβολική αντιπροσώπευση της δυαδικής γλώσσας μηχανών (Machine Language). Η Assembly είναι πιο αναγνώσιμη από τη γλώσσα μηχανών επειδή χρησιμοποιεί σύμβολα. Επιπλέον, η Assembly επιτρέπει στους προγραμματιστές να χρησιμοποιούν τις ετικέτες (Labels) για να προσδιορίζουν και να ονομάσουν τις μεταβλητές και τοποθεσίες μνήμης που φυλάσσουν τις οδηγίες ή τα στοιχεία. Πλεονεκτήματα της Assembly: Tο μικρό μέγεθος και η ταχύτητα των Assembly προγραμμάτων είναι τα κύρια πλεονεκτήματα σε σχέση με τις High Level Languages όπως C++ και Java. Αυτό είναι ιδιαίτερα σημαντικά για ενσωματωμένους υπολογιστής (embedded computer) όπου η υπολογιστική ισχύς και η μνήμη είναι περιορισμένη. Μειονεκτήματα της Assembly: Ίσως το σημαντικό μειονέκτημά του είναι ότι τα προγράμματα που γράφονται στη Assembly είναι συγκεκριμένα για μια μηχανή και πρέπει να ξαναγραφούν συνολικά για να τρέξουν σε μια άλλη αρχιτεκτονική υπολογιστών. Ένα άλλο μειονέκτημα είναι ότι τα προγράμματα Assembly είναι πιο χρονοβόρα στο να γραφτούν από τα ισοδύναμα προγράμματα που γράφονται σε μια υψηλού επιπέδου γλώσσα. Πέτρος Παναγή Σελ. 4

Αρχιτεκτονική MPS Control Unit Register File Arithmetic and Logic Unit (ALU) Program Counter (PC) Memory nstruction Register (R) MPS simplified datapath diagram.* * Robert Britton, Professor Emeritus, MPS Assembly Language Programming, Prentice Hall, 2004, SBN-10:0131420445 Πέτρος Παναγή Σελ. 5 Η αρχιτεκτονική MPS έχει 32 καταχωρητές Register $0 πάντα περιέχει την τιμή 0 (hardwired value 0) Registers $at (1), $k0 (26), and $k1 (27) χρησιμοποιούνται από τον assembler και το λειτουργικό σύστημα και δεν πρέπει να χρησιμοποιηθούν από τα προγράμματα χρηστών ή τους μεταγλωττιστές. Registers $a0 $a3 (4 7) χρησιμοποιούνται για να περάσουν τις πρώτες τέσσερις παραμέτρους (arguments) στις συναρτήσεις Registers $v0 and $v1 (2, 3) χρησιμοποιούνται για να τιμές που επιστρέφουν οι συναρτήσεις. Registers $t0 $t9 (8 15, 24, 25) είναι caller-saved registers που χρησιμοποιείται για να κρατήσει τις προσωρινές ποσότητες που δεν χρειάζονται να συντηρηθούν στις κλήσεις. Registers $s0 $s7 (16 23) είναι callee-saved registers μακρόβιες τιμές που πρέπει να συντηρηθούν στις κλήσεις. Register $gp (28) είναι global pointer που κρατά το μέσο του 64K block μνήμης στο static data segment. Register $sp (29) κρατά την τιμή stack pointer, που είναι και η τελευταία θέση στο stack. Register $fp (30) είναι το frame pointer. Register $ra (31), είναι return address σε procedure call. Πέτρος Παναγή Σελ. 6

Δομή ενός προγράμματος σε Assembly #Program Name : Basic program to print "The Answer = " and a number #Programmer : Petros Panayi Stud. D:000000 #Date Last Modif.: 10 Sep 2006 # Comments: A simple program that prints a string message and the results # Two syscall one for the string and the other for the integer.data # data segment str:.asciiz "the answer = ".text.globl main main: li $v0, 4 la $a0, str syscall # text segment # 4 = print str syscall # load address of string # execute the system call li $v0, 1 # 1 = print int syscall li $a0, 5 # load int value 5 syscall # execute the system call Πέτρος Παναγή Σελ. 7 Σύνταξη για τις οδηγίες Συμβολικής γλώσσας MPS [label:] Op-Code [operand], [operand], [operand] [#comment] Το Πεδίο label: όπως και τα [operand], [operand], [operand] [#comment] είναι προαιρετικά. Τα κόμματα είναι επίσης προαιρετικά. Ο διαχωρισμός των πεδίων γίνεται με SPACES ή TABS Στη Συμβολική γλώσσα (Assembly) MPS, οτιδήποτε σε μια γραμμή μετά από το σημάδι (#) είναι σχόλιο. S.O.S. Όταν εκτυπώνουμε τα reports οκώδικαςκαιτασχόλιαδεν πρέπει να ξεπερνούν την μία γραμμή. Πέτρος Παναγή Σελ. 8

nstructions Format Όλες οι MPS εντολές έχουν 32bit μέγεθος. Έχουμε τρία είδε εντολών. R-Type (Register Type) Op-Code: η λειτουργία της εντολής (operation of the instruction) Rs: ο πρώτος καταχωρητής εισόδου (the first register, source operand) Rt: ο δεύτερος καταχωρητής εισόδου (the second register, source operand) Rd: o καταχωρητής που θα πάρει το αποτέλεσμα (the register destination operand) shamt: ποσότητα μετακίνησης Function Code: συνάρτηση (function). Αυτό το πεδίο αποτελεί διαφοροποίηση της εντολής από το πεδίο Op-Code. -Type (mmediate Type) J-Type (Jump Type) Πέτρος Παναγή Σελ. 9 Βασικές Εντολές (Παράδειγμα) Assembly instruction nstr. Format op / funct Meaning Comments add $rd, $rs, $rt R 0/32 $rd = $rs + $rt Add contents of two registers sub $rd, $rs, $rt R 0/34 $rd = $rs - $rt Subtract contents of two registers addi $rt, $rs, imm 8 $rt = $rs + imm Add signed constant addu $rd, $rs, $rt R 0/33 $rd = $rs + $rt Unsigned, no overflow subu $rd, $rs, $rt R 0/35 $rd = $rs - $rt Unsigned, no overflow addiu $rt, $rs, imm 9 $rt = $rs + imm Unsigned, no overflow Πέτρος Παναγή Σελ. 10

Βασικές Εντολές (Παράδειγμα) lw $rt, imm($rs) 35 $rt = M[$rs + imm] Load word from memory sw $rt, imm($rs) 43 M[$rs + imm] = $rt Store word in memory beq $rs, $rt, imm 4 if($rs==$rt) PC = PC + imm (PC always points to next instruction) bne $rs, $rt, imm 5 if($rs!=$rt) PC = PC + imm (PC always points to next instruction) Πέτρος Παναγή Σελ. 11 Διευθυνσιοδότηση/Αddressing 1. mmediate addressing op rs rt mmediate 2. Register addressing op rs rt rd... funct Registers Register 3. Base addressing op rs rt Address Memory Register + Byte Halfword Word 4. PC-relative addressing op rs rt Address Memory PC + Word 5. Pseudodirect addressing op Address Memory PC Word Πέτρος Παναγή Σελ. 12

Ένα Απλό Πρόγραμμα #Program Name : Basic program to print "The Answer = " and a number #Programmer : Petros Panayi Stud. D:000000 #Date Last Modif.: 10 Sep 2006 # Comments: A simple program that prints a string message and the results # Two syscall one for the string and the other for the integer.data # data segment str:.asciiz "the answer = ".text.globl main main: li $v0, 4 la $a0, str syscall # text segment # 4 = print str syscall # load address of string # execute the system call li $v0, 1 # 1 = print int syscall li $a0, 5 # load int value 5 syscall # execute the system call Πέτρος Παναγή Σελ. 13 MPS assembler directives SPM supports a subset of the MPS assembler directives:.data <addr> Subsequent items are stored in the data segment. f the optional argument addr is present, subsequent items are stored starting at address addr..text <addr> Subsequent items are put in the user text segment. n SPM, these items may only be instructions or words (see the.word directive below). f the optional argument addr is present, subsequent items are stored starting at address addr..ascii str Store the string str in memory, but do not nullterminate it..asciiz str Store the string str in memory and null-terminate it..align n Align the next datum on a 2n byte boundary. For example,.align 2 aligns the next value on a word boundary..align 0 turns off automatic alignment of.half,.word,.float, and.double directives until the next.data or.kdata directive..globl sym Declare that label sym is global and can be referenced from other files. Πέτρος Παναγή Σελ. 14

PCSPM http://www.cs.wisc.edu/~larus/spim.html spim is a self-contained simulator that will run MPS32 assembly language programs. Τοπρώτοπαράθυροπαρουσιάζειτις τιμές όλων των Registers στο MPS CPU και FPU. Ενημερώνεται όποτε το πρόγραμμά σας σταματά. Το δεύτερο παράθυρο παρουσιάζει τις εντολές από το πρόγραμμα σάς καθώς και εντολές από το σύστημα που αυτόματα έχει φορτωθεί όταν ξεκίνησε η εκτέλεση του προγράμματος σας. ** Το τρίτο παράθυρο παρουσιάζει τα δεδομένα στην μνήμη και το Stack. Το τέταρτο παράθυρο παρουσιάζει διάφορα μηνύματα. Πέτρος Παναγή Σελ. 15 1 2 3 4 ** 1. Ο πρώτος αριθμός στη γραμμή, στα τετραγωνικά υποστηρίγματα, είναι η δεκαεξαδική διεύθυνση μνήμης της οδηγίας. 2. Ο δεύτερος αριθμός είναι η αριθμητική κωδικοποίηση της οδηγίας, πάλι επιδειγμένος ως δεκαεξαδικός αριθμός. 3. Το τρίτο στοιχείο είναι η μνημονική περιγραφή της οδηγίας. Όλα μετά από την άνω τελεία είναι η πραγματική γραμμή από το αρχείο σας που παρήγαγε την οδηγία. 4. Ο αριθμός 89 είναι ο αριθμός γραμμών σε εκείνο το αρχείο. Μερικές φορές τίποτα δεν είναι στη γραμμή μετά από την άνω τελεία. Αυτό σημαίνει ότι η οδηγία παρήχθη από SPM ως τμήμα της μετάφρασης ενός pseudoinstruction σε περισσότερους από ένα πραγματικό MPS οδηγίας. Πέτρος Παναγή Σελ. 16

Σχεδιάγραμμα της μνήμης/memory Layout Η οργάνωση της μνήμης στα συστήματα MPS είναι συμβατική. Το διάστημα διευθύνσεων ενός προγράμματος αποτελείται από τρία μέρη. Στο κατώτατο σημείο των διευθύνσεων του χρήστη (user address space) (0x400000) είναι το τμήμα κειμένων (text segment,), όποιος κρατά τις οδηγίες για ένα πρόγραμμα. Επάνω από το text segment είναι το τμήμα στοιχείων (data segment) που αρχίζει από 0x10000000 και το όποιο διαιρείται σε δύο μέρη. Η στατική μερίδα στοιχείων (static data portion) περιέχει τα αντικείμενα το των οποίων μέγεθος και η διεύθυνση είναι γνωστή στο compiler και Linker. Αμέσως επάνω από αυτά τα αντικείμενα είναι δυναμικό στοιχείο (dynamic data). Δεδομένου ότι ένα πρόγραμμα διαθέτει το διάστημα δυναμικά (π.χ. από το malloc), η κλήση συστημάτων sbrk (sbrk system call) κινεί την κορυφή του τμήματος στοιχείων επάνω. To program stack είναι στην κορυφή του διαστήματος διευθύνσεων (0x7fffffff). Αυξάνεται κάτω, προς το τμήμα στοιχείων. Πέτρος Παναγή Σελ. 17 Εντολές PCSPM Open: Επιλογή του πηγαίου κώδικα ενός προγράμματος Go (F5): Εκτέλεση του προγράμματος Single Step (F10): Breakpoints (Ctrl-B) Reload Πέτρος Παναγή Σελ. 18

PCSPM System Calls = Operating-System-like services $v0 Πέτρος Παναγή Σελ. 19 Άσκηση #1 (Προαιρετικά) Κατεβάστε το homework1.s από την ιστοσελίδα του μαθήματος και τρέξετε το στο περιβάλλον PCSPM. Να ετοιμάσετε ένα report βάση του παραδείγματος που υπάρχει στην ιστοσελίδα του μαθήματος που να εξηγά την λειτουργία του προγράμματος. Πέτρος Παναγή Σελ. 20