ece213-lab1-2018 [Λειτουργία συμβατότητας] · Κατανόηση τρόπου...

12
ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: [email protected] www.ece.ucy.ac.cy/courses/ECE213 Youtube Channel: ece labs ucy Εργαστήριο 1

Upload: others

Post on 20-Jan-2020

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ECE213-Lab1-2018 [Λειτουργία συμβατότητας] · Κατανόηση τρόπου μελέτης για το ΗΜΥ213 Εγκατάσταση και βασική

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

Διδάσκων: Δρ. Γιώργος Ζάγγουλος

Email: [email protected]

www.ece.ucy.ac.cy/courses/ECE213Youtube Channel: ece labs ucy

Εργαστήριο 1

Page 2: ECE213-Lab1-2018 [Λειτουργία συμβατότητας] · Κατανόηση τρόπου μελέτης για το ΗΜΥ213 Εγκατάσταση και βασική

Εγκατάσταση και Λειτουργία QtSpim 9.1.17

Κατεβάστε το πρόγραμμα QtSpim 9.1.17 από τον σύνδεσμο που υπάρχει στην ιστοσελίδα: http://spimsimulator.sourceforge.net/

Εγκαταστήστε το και στη συνέχεια ελέγξτε την ορθή του λειτουργία τρέχοντας το αρχείο hello word και ως αποτέλεσμα δείτε αυτή τη φράση στο παράθυρο Console.

15-Jan-182

Βοήθεια: File/load file (επιλέξτε το αρχείο) και μετά Simulator/Run-Continue (τρέξτε το αρχείο). Αν δεν βλέπετε το hello word επιλέξτε Window/Console.

Τρέξτε επίσης τα 2 αρχεία add2numbers.s αρχικά με το Run και μετά με Single Steps παρατηρώντας τις τιμές των καταχωρητών PC, v0, a0, t1, t2 και t3.

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

Page 3: ECE213-Lab1-2018 [Λειτουργία συμβατότητας] · Κατανόηση τρόπου μελέτης για το ΗΜΥ213 Εγκατάσταση και βασική

QtSpim 9.1.17 (for windows)

15-Jan-183 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Page 4: ECE213-Lab1-2018 [Λειτουργία συμβατότητας] · Κατανόηση τρόπου μελέτης για το ΗΜΥ213 Εγκατάσταση και βασική

Από το Πρόβλημα…στη Λύση!

Κατά την επίλυση οποιουδήποτε προβλήματος, συνειδητά ή όχι, πάντοτε ακολουθούμε κάποια στάδια μέχρι που να φτάσουμε στην επιθυμητή λύση.

Σε προβλήματα προγραμματισμού, συνήθως ακολουθούνται τα εξής στάδια:

1. Κατανόηση του προβλήματος

15-Jan-184

1. Κατανόηση του προβλήματος2. Ανάλυση προβλήματος (είσοδοι, έξοδοι, σταθερές,

μεταβλητές)3. Βήματα προς επίλυση του προβλήματος4. Συγγραφή κώδικα για το κάθε βήμα5. Έλεγχος κώδικα βήμα προς βήμα6. Τελικός έλεγχος κώδικα

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

Page 5: ECE213-Lab1-2018 [Λειτουργία συμβατότητας] · Κατανόηση τρόπου μελέτης για το ΗΜΥ213 Εγκατάσταση και βασική

Διάγραμμα Ροής Προγράμματος

Flow - Chart

Το διάγραμμα ροής είναι πολύ βοηθητικό στην επίλυση ενός προβλήματος αφού μας βοηθά να δούμε και οπτικά την πορεία επίλυσης του προβλήματος και να κατανοήσουμε καλύτερα τον κώδικα που πρέπει να γράψουμε για το κάθε ένα από τα βήματα που πρέπει να ακολουθήσουμε.

Η επιλογή του αριθμού των βημάτων εξαρτάται από το ίδιο το πρόβλημα αλλά και από το πόσο αναλυτικό επιθυμούμε εμείς να

15-Jan-185

πρόβλημα αλλά και από το πόσο αναλυτικό επιθυμούμε εμείς να το σχεδιάσουμε.

Πρέπει τουλάχιστο να περιέχει όλους τους ελέγχους (beq/bne/bhi) όπως και τυχόν αλληλεπίδραση με τον χρήστη.

Ας σχεδιάσουμε το πρώτο μας Διάγραμμα Ροής βάσει του παραδείγματος “add2numbers.s”

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

Page 6: ECE213-Lab1-2018 [Λειτουργία συμβατότητας] · Κατανόηση τρόπου μελέτης για το ΗΜΥ213 Εγκατάσταση και βασική

Παραδείγματα εντολών

li $t1, 0x10 # Register $t1 = 16 = 10hex

lb $t2, 0x12345678 # Reg. $t2=περιεχόμενα μνήμης (0Χ12345678)

lw $t2, 0x12345678 # $t2=περιεχόμενα μνήμης (0Χ12345678/9/a/b)

la $a0, welcome # Register $a0 = address of welcome message

move $t4, $v0 # Register $t4 = Register $v0

15-Jan-186

move $t4, $v0 # Register $t4 = Register $v0

add $t3, $zero, $t2 # Register $t3 = Register $t2 + 0

addi $t3, $t4, 1 # Register $t3 = Register $t4 + 1

ori $t3, $t4, 0x12 # Register $t3 = Reg. $t4 OR 0001 0010

andi $t5, $t6, 255 # Register $t5 = Reg. $t6 AND 1111 1111

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

Page 7: ECE213-Lab1-2018 [Λειτουργία συμβατότητας] · Κατανόηση τρόπου μελέτης για το ΗΜΥ213 Εγκατάσταση και βασική

Παραδείγματα εντολών

xor $t6, $t6, $t6 # Register $t6 = Reg. $t6 XOR Reg. $t6 = 0

sll $t7, $t6, 3 # Register $t7 = Reg. $t6 <<< 3 = $t6 * 8

srl $t5, $t3, 5 # Register $t5 = Reg. $t3 >>> 5 = $t3 / 32

beq $t6, $t5, finals # If Reg $t6 = $t5, PC = address “finals”

bne $t7, $t6, again # If Reg $t7 ≠ $t6, PC = address “again”

15-Jan-187

bne $t7, $t6, again # If Reg $t7 ≠ $t6, PC = address “again”

beqz $t8, exit_now # If Reg $t8 = 0, PC = address “exit_now”

bgt $t6, $t5, loop1 # If Reg $t6 > $t5, PC = address “loop1”

b step2 # PC = address “step2” (πιο γρήγορη εντολή)

j step2 # PC = address “step2” (χωρίς περιορισμό)

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

Page 8: ECE213-Lab1-2018 [Λειτουργία συμβατότητας] · Κατανόηση τρόπου μελέτης για το ΗΜΥ213 Εγκατάσταση και βασική

Δημιουργία αρχείου “add2numbers.s” (Πρόσθεση 2 αριθμών και εκτύπωση αποτελέσματος)

# your details with a description of the code

.dataresult_is: .asciiz “The result is:\n”

15-Jan-188

result_is: .asciiz “The result is:\n”.textmain:

li $t1, 10 # load t1 with 10li $t2, 7 # load t2 with 7add $t3, $t1, $t2 # add t1 and t2 ->t3

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

Page 9: ECE213-Lab1-2018 [Λειτουργία συμβατότητας] · Κατανόηση τρόπου μελέτης για το ΗΜΥ213 Εγκατάσταση και βασική

Πρόσθεση 2 αριθμών και εκτύπωση αποτελέσματος

(συνέχεια….)

li $v0, 4la $a0, result_is # syscall to print stringsyscall

li $v0, 1 move $a0, $t3 # syscall to print an integer

15-Jan-189

move $a0, $t3 # syscall to print an integersyscall

li $v0, 10 syscall # syscall to exit programme

# press enter to keep SPIM HAPPY!

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

Page 10: ECE213-Lab1-2018 [Λειτουργία συμβατότητας] · Κατανόηση τρόπου μελέτης για το ΗΜΥ213 Εγκατάσταση και βασική

Εκτέλεση Κώδικα

15-Jan-1810 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Page 11: ECE213-Lab1-2018 [Λειτουργία συμβατότητας] · Κατανόηση τρόπου μελέτης για το ΗΜΥ213 Εγκατάσταση και βασική

Εκτέλεση Κώδικα

15-Jan-1811 Εργαστήριο Οργάνωσης Η.Υ. και Μικροεπεξεργαστών Γ. Ζ.

Page 12: ECE213-Lab1-2018 [Λειτουργία συμβατότητας] · Κατανόηση τρόπου μελέτης για το ΗΜΥ213 Εγκατάσταση και βασική

Μαθησιακοί Στόχοι 1ου Εργαστηρίου

Κατανόηση τρόπου μελέτης για το ΗΜΥ213

Εγκατάσταση και βασική χρήση του προσομοιωτή QtSpim 9.1.17 στον υπολογιστή σας.

Δομή προγράμματος (.s file )

15-Jan-1812

Κλήσεις συστήματος: 1, 4, 5, 10

Εντολές: li, la, add και move (σύνταξη και

αποτέλεσμα εκτέλεσης της κάθε εντολής)

Εντολές λογικών πράξεων και διακλάδωσης

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