Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Επισκέπτης
Δημοσ.

Θα μπορούσε κάποιος να με βοηθήσει να λύσω αυτές τις ασκήσεις ? μαθαίνω μόνος και είμαι αρχάριος ..

 

Α. Γράψτε κώδικα σε assembly mips που να κάνει τις παρακάτω πράξεις. (2/10)

i. w = x+y+z

ii. w = x-y+7

 

Β. Μετατρέψτε σε assembly του ΜIPS μηχανής (binary) τον παρακάτω κώδικα. (2/10)

lw $9 12($8)

add $8,$18, $8

sw $8,12($9)

 

Γ. Μετατρέψτε σε assembly του ΜIPS μηχανής (binary) τον παρακάτω κώδικα. To ‘mat’ είναι στην θέση μνήμης 100 (3/10)

lw $9, mat($8)

slti $11, $9, 100

beq $11, $0, end

sub $9, $9, $12

addi $8, $8, 4

end:

 

Δ. Πόσες εντολές εκτελεί ο επεξεργαστής όταν τρέχει τον παρακάτω κώδικα; Αν όλες οι εντολές κοστίζουν 4 κύκλους ρολογιού, εκτός της LW που κοστίζει 5, πόσο χρόνο κάνει ο επεξεργαστής, αν λειτουργεί στα 100MHz; (3/10)

main:

addi  $8, $0, 12

addi $9, $0, 0

addi $10, $0, 0

loop1:

la $11, mat

lw $12, 0($11)

addi $9, $9, 9

beq $8, $9, L1

addi $10, $10, 3

beq $8, $10, L2

j loop1

L1:

addi $13, $0, 1

j end

L2:

addi $13, $0, 2

end:

  • Απαντ. 36
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ.

Τι έχεις μάθει μέχρι τώρα; Είναι εύκολη η mips assembly.

Έχεις μάθει για τους καταχωρητές; Το instruction set;

Επισκέπτης
Δημοσ.

Τα addi και αυτα έχω μάθει ..

Δημοσ.

Εφόσον έφτασες εκεί, έχεις μάθει σίγουρα και καταχωρητές. Η πρώτη άσκηση είναι πολύ εύκολη.

Έχεις κατεβάσει κάποιον simulator; Ο Mars είναι από τους καλύτερους, αν όχι ο καλύτερος για

εκπαιδευτικούς σκοπούς.

 

Παρακάτω σου έλυσα την πρώτη άσκηση. Από σένα θέλω να με πείσεις πως κατάλαβες τί κάνει.

Θέλω να μου πεις τί σε δυσκόλεψε από να την πραγματοποιήσεις. Συγκεκριμένα πράγματα δηλα-

δή. Αν θες γράψε και σχόλια σε MIPS δίπλα από κάθε γραμμή για να εξηγήσεις τί καταλαβαίνεις.

 

 

Α. Γράψτε κώδικα σε assembly mips που να κάνει τις παρακάτω πράξεις:

i. w = x + y + z

ii. w = x - y + 7

i.
add  $t0, $s0, $s1
add  $t0, $t0, $s2
add  $s3, $t0, $0

ii.
sub  $t0, $s0, $s1
addi $t0, $t0, 0x7
add  $s3, $t0, $0
Επισκέπτης
Δημοσ.

Εγώ έχω το QtSpim , την πρωτη την εκανα απο την 2η και μετα δεν ξερω τι να κανω. 

Δημοσ.

Εγώ έχω το QtSpim , την πρωτη την εκανα απο την 2η και μετα δεν ξερω τι να κανω. 

Αν έκανες την πρώτη τότε και η δεύτερη είναι πολύ εύκολη.

Για δείξε τί έκανες στην πρώτη.

Επισκέπτης
Δημοσ.

i.add $8, $9, $10
  add $8
, $0, $11
  add $12
, $0, $8

ii
.sub $9, $10, $11
  addi $8
, $0, 7
  add $12, $9, $8

 

σωστά ?

Δημοσ.

Αν δεν αναφέρεις με τί είναι αρχικοποιημένος ο κάθε καταχωρητής,

τότε είναι λάθος η άσκηση. Τι περιέχει ο $9, o $10 και ο $11; Γιατί

κάνεις την τελυταία add;

Επισκέπτης
Δημοσ.

Δεν κατάλαβα... εννοείς γιατί δεν δίνω αριθμούς?

Δημοσ.

Για παράδειγμα:

 

 

Α. Γράψτε κώδικα σε assembly mips που να κάνει τις παρακάτω πράξεις:

i. w = x + y + z

ii. w = x - y + 7

# Υποθέτω πως οι $s0, $s1 & $s2 περιέχουν τις τιμές των
# μεταβλητών x, y & z αντίστοιχα. Στον καταχωρητή $s3,
# θα αποθηκευτεί το τελικό αποτέλεσμα, το οποίο αντιστοι-
# χει στην τιμή της μεταβλητής w. Συν τοις άλλοις, εφαρμόζω
# τις πράξεις ίδιας προτεραιότητας από τα αριστερά προς τα
# δεξιά και υποθέτω πως μόνο οι καταχωρητές $s0-$s7 ($16-$23)
# αντιστοιχίζονται σε μεταβλητές, ενώ οι καταχωρητές $t0-$t9
# ($8-$15, $24-$25) σε προσωρινά αποτελέσματα, όπως άλλωστε
# ορίζουν οι συμβάσεις ονοματολογίας για τις χρήσεις αυτών
# (από compiler κ.α.).
i.
add  $t0, $s0, $s1    # tmp <- x + y
add  $t0, $t0, $s2    # tmp <- tmp + z
add  $s3, $t0, $0     # w <- tmp + 0

ii.
sub  $t0, $s0, $s1    # tmp <- x - y
addi $t0, $t0, 0x7    # tmp <- tmp + 0x7
add  $s3, $t0, $0     # w <- tmp + 0
Επισκέπτης
Δημοσ.

i.
add $8, $16, $17 # tmp <- x + y
add $8, $8, $18 # tmp <- tmp + z
add $19, $8, $0 # w <- tmp + 0

ii.
sub $8, $16, $17 # tmp <- x - y
addi $8, $8, 0x7 # tmp <- tmp + (0x7 αυτο εδω τι ειναι ? )
add $18, $8, $0 # w <- tmp + 0

 

κατα τα αλλα σωστα ειναι ?

Δημοσ.

Σωστά είναι. Το 0x7 είναι το 7 αλλά σε δεκαεξαδική μορφή. Καλό είναι να τη συνηθίσεις.

Επισκέπτης
Δημοσ.

Αν το βάλω σκετο 7 θα είναι λαθος?

Δημοσ.

Αν το βάλω σκετο 7 θα είναι λαθος?

Θα είναι μια χαρά σωστό.

 

Πάμε στη δεύτερη άσκηση τώρα. Τι σου φαίνεται άγνωστο σ' αυτή;

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...