פורסם 2013 באפריל 2212 שנים נתנו לי מערך בגודל 3 עם איברים בגודל ידוע. אני צריך לבנות קוד שמוצא את המספר הקטן ביותר. זאת השאלה (ניסוח של המרצה): 1. ממש באמצעות שפת אסמבלי של MIPS תכנית המוצאת את האיבר המינימלי במערך, וכותבת אותו לתוך האוגר $S3. נתון כי n, האורך של המערך, מאוחסן ב-$S0; הכתובת של תחילת המערך מאוחסנת ב-$S1; ואורך כל איבר במערך הוא מילה אחת. בתכניתך, אין לכתוב לאוגרים $S2-$S0. זה הקובץ לתוכו אני צריך להזין את הקוד: (ישנו סעיף נוסף ולכן יש בקובץ לתוכו אני כותב את השאלה קטעים שעלולים להראות לא קשורים.) #Aceessory file for HW2. .datan : .word 3vec1: .word 3 1 2vec2: .word 1 -1 1#DO NOT CHANGE THE GIVEN CODE LINES HENCEFORTH.textmain: la $s0 n lw $s0 0($s0) #s0=n la $s1 vec1 #s1=*vec1 la $s2 vec2 #s2=*vec2################################################# Question 1: Find the minimum in vec1, and put the results in $S3# PASTE YOUR CODE FOR QUESTION 1 HERE################################################# Question 2: calculate the scalar product vec1*vec2 and put the result in $S4# PASTE YOUR CODE FOR QUESTION 2 HERE# Do not delete the code lines belowExit: jr $ra .datan : .word 3vec1: .word 3 1 2vec2: .word 1 -1 1#DO NOT CHANGE THE GIVEN CODE LINES HENCEFORTH.textmain: la $s0 n lw $s0 0($s0) #s0=n la $s1 vec1 #s1=*vec1 la $s2 vec2 #s2=*vec2################################################# Question 1: Find the minimum in vec1, and put the results in $S3# PASTE YOUR CODE FOR QUESTION 1 HERE # int arry[4]= 3 4 2 1 5; # int small; #small=arry[0]# for (i=1; i<5; i++) #{ # if (small>arry[i]) #small=arry[i]; #}# Assume i=$S4, n=$s0, arry[0]=$s1addi $s4 $zero 1 # i=1lw $s3 0($s1) # small=arry[0]add $t0 $s1 $zero # $t0=arry[0]Loop: addi $s4 $s4 1 # i=i+1 slt $t1 $s4 $s0 # i<n t1=1 beq $t1 $zero Exit # if i=n go to Exit addi $t0 $t0 4 lw $t2 0($t0) slt $t1 $s3 $t2 #$t2>$s3 $t1=1 bne $t1 $zero Loop add $s3 $t2 $zero j Loop################################################# Question 2: calculate the scalar product vec1*vec2 and put the result in $S4# PASTE YOUR CODE FOR QUESTION 2 HERE# Do not delete the code lines belowExit: jr $ra כשאני מריץ את הקוד אני מקבל את הערך 0 ולא את הערך 1. יש לציין שה הקוד השני שאני כותב בחיים... אשמח למעט הכוונה איפה טעיתי. אני חושד שהתנאים של הלולאה לא נכונים אבל כשבדקתי עם עפרון וניר זה יצא נכון תודה רבה מראש!
פורסם 2013 באפריל 2212 שנים מחבר עידכון: מסתבר שכשמריצים את הסימולטור, אכן צריך גם להריץ אותו ולא רק לטעון לתוכו את הקובץ תודה למי שטרח וקרא את השאלה בכל מקרה.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.