עזרה בשעורי בית באסמבלי. (רמה בסיסית) - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

עזרה בשעורי בית באסמבלי. (רמה בסיסית)


Kak

Recommended Posts

נתנו לי מערך בגודל 3 עם איברים בגודל ידוע.

אני צריך לבנות קוד שמוצא את המספר הקטן ביותר.

זאת השאלה (ניסוח של המרצה):

1. ממש באמצעות שפת אסמבלי של MIPS תכנית המוצאת את האיבר המינימלי במערך, וכותבת אותו לתוך האוגר $S3.

נתון כי n, האורך של המערך, מאוחסן ב-$S0; הכתובת של תחילת המערך מאוחסנת ב-$S1; ואורך כל איבר במערך הוא מילה אחת. בתכניתך, אין לכתוב לאוגרים $S2-$S0.

זה הקובץ לתוכו אני צריך להזין את הקוד:

(ישנו סעיף נוסף ולכן יש בקובץ לתוכו אני כותב את השאלה קטעים שעלולים להראות לא קשורים.)


#Aceessory file for HW2.


.data
n : .word 3
vec1: .word 3 1 2
vec2: .word 1 -1 1


#DO NOT CHANGE THE GIVEN CODE LINES HENCEFORTH
.text
main:
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 below
Exit:
jr $ra







.data
n : .word 3
vec1: .word 3 1 2
vec2: .word 1 -1 1


#DO NOT CHANGE THE GIVEN CODE LINES HENCEFORTH
.text
main:
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]=$s1
addi $s4 $zero 1 # i=1
lw $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 below
Exit:
jr $ra

כשאני מריץ את הקוד אני מקבל את הערך 0 ולא את הערך 1.

יש לציין שה הקוד השני שאני כותב בחיים...

אשמח למעט הכוונה איפה טעיתי. אני חושד שהתנאים של הלולאה לא נכונים אבל כשבדקתי עם עפרון וניר זה יצא נכון

תודה רבה מראש! :hi:

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...