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

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

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

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

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

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

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

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

Data-Level Parallelism Linking & Loading

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MIPS functions and procedures

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Κεφ. 4: Ο επεξεργαστής 1. Διάδρομος δεδομένων και μονάδα ελέγχου 2.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Υλοποίηση Mικροεπεξεργαστή MIPS -16

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

με έμφαση στο MIPS R2000

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

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

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

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

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

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

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

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

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

Transcript:

Εργαστήριο Αρ. 1 Εισαγωγή στην Αρχιτεκτονική MIPS Πέτρος Παναγή Σελ. 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

Αρχιτεκτονική MIPS Control Unit Register File Arithmetic and Logic Unit (ALU) Program Counter (PC) Memory Instruction Register (IR) MIPS simplified datapath diagram.* * Robert Britton, Professor Emeritus, MIPS Assembly Language Programming, Prentice Hall, 2004, ISBN-10:0131420445 Πέτρος Παναγή Σελ. 5

Η αρχιτεκτονική MIPS έχει 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. ID: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

Σύνταξη για τις οδηγίες Συμβολικής γλώσσας MIPS [label:] Op-Code [operand], [operand], [operand] [#comment] Το Πεδίο label: όπως και τα [operand], [operand], [operand] [#comment] είναι προαιρετικά. Τα κόμματα είναι επίσης προαιρετικά. Ο διαχωρισμός των πεδίων γίνεται με SPACES ή TABS Στη Συμβολική γλώσσα (Assembly) MIPS, οτιδήποτε σε μια γραμμή μετά από το σημάδι (#) είναι σχόλιο. S.O.S. Όταν εκτυπώνουμε τα reports οκώδικαςκαιτασχόλιαδεν πρέπει να ξεπερνούν την μία γραμμή. Πέτρος Παναγή Σελ. 8

Instructions Format Όλες οι MIPS εντολές έχουν 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. I-Type (Immediate Type) J-Type (Jump Type) Πέτρος Παναγή Σελ. 9

Βασικές Εντολές (Παράδειγμα) Assembly instruction Instr. 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 I 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 I 9 $rt = $rs + imm Unsigned, no overflow Πέτρος Παναγή Σελ. 10

Βασικές Εντολές (Παράδειγμα) lw $rt, imm($rs) I 35 $rt = M[$rs + imm] Load word from memory sw $rt, imm($rs) I 43 M[$rs + imm] = $rt Store word in memory beq $rs, $rt, imm I 4 if($rs==$rt) PC = PC + imm (PC always points to next instruction) bne $rs, $rt, imm I 5 if($rs!=$rt) PC = PC + imm (PC always points to next instruction) Πέτρος Παναγή Σελ. 11

Διευθυνσιοδότηση/Αddressing 1. Immediate addressing op rs rt Immediate 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. ID: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

PCSPIM http://www.cs.wisc.edu/~larus/spim.html spim is a self-contained simulator that will run MIPS32 assembly language programs. Τοπρώτοπαράθυροπαρουσιάζειτις τιμές όλων των Registers στο MIPS CPU και FPU. Ενημερώνεται όποτε το πρόγραμμά σας σταματά. Το δεύτερο παράθυρο παρουσιάζει τις εντολές από το πρόγραμμα σάς καθώς και εντολές από το σύστημα που αυτόματα έχει φορτωθεί όταν ξεκίνησε η εκτέλεση του προγράμματος σας. ** Το τρίτο παράθυρο παρουσιάζει τα δεδομένα στην μνήμη και το Stack. Το τέταρτο παράθυρο παρουσιάζει διάφορα μηνύματα. Πέτρος Παναγή Σελ. 14

1 2 3 4 ** 1. Ο πρώτος αριθμός στη γραμμή, στα τετραγωνικά υποστηρίγματα, είναι η δεκαεξαδική διεύθυνση μνήμης της οδηγίας. 2. Ο δεύτερος αριθμός είναι η αριθμητική κωδικοποίηση της οδηγίας, πάλι επιδειγμένος ως δεκαεξαδικός αριθμός. 3. Το τρίτο στοιχείο είναι η μνημονική περιγραφή της οδηγίας. Όλα μετά από την άνω τελεία είναι η πραγματική γραμμή από το αρχείο σας που παρήγαγε την οδηγία. 4. Ο αριθμός 89 είναι ο αριθμός γραμμών σε εκείνο το αρχείο. Μερικές φορές τίποτα δεν είναι στη γραμμή μετά από την άνω τελεία. Αυτό σημαίνει ότι η οδηγία παρήχθη από SPIM ως τμήμα της μετάφρασης ενός pseudoinstruction σε περισσότερους από ένα πραγματικό MIPS οδηγίας. Πέτρος Παναγή Σελ. 15

Σχεδιάγραμμα της μνήμης/memory Layout Η οργάνωση της μνήμης στα συστήματα MIPS είναι συμβατική. Το διάστημα διευθύνσεων ενός προγράμματος αποτελείται από τρία μέρη. Στο κατώτατο σημείο των διευθύνσεων του χρήστη (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). Αυξάνεται κάτω, προς το τμήμα στοιχείων. Πέτρος Παναγή Σελ. 16

Εντολές PCSPIM Open: Επιλογή του πηγαίου κώδικα ενός προγράμματος Go (F5): Εκτέλεση του προγράμματος Single Step (F10): Breakpoints (Ctrl-B) Reload Πέτρος Παναγή Σελ. 17

PCSPIM System Calls = Operating-System-like services $v0 Πέτρος Παναγή Σελ. 18

Άσκηση #1 Κατεβάστε το homework.s από την ιστοσελίδα του μαθήματος και τρέξετε το στο περιβάλλον PCSPIM. Να ετοιμάσετε ένα report βάση του παραδείγματος που υπάρχει στην ιστοσελίδα του μαθήματος που να εξηγά την λειτουργία του προγράμματος. Πέτρος Παναγή Σελ. 19