You will create a function file that produces the Fibonacci

You will create a function file that produces the Fibonacci spiral to n iterations. The Fibonacci spiral: an approximation of the golden spiral created by drawing circular arcs connecting the opposite corners of squares in the Fibonacci tiling; this one uses squares of sizes 1, 1, 2, 3, 5, 8, 13, 21, and 34. The following deliverable due dates are: (Friday 3/3 4pm) Create a well-commented function that produces x and y arrays describing coordinates of a 90 degree circular arc with R = 1, in the first quadrant (where x > 0, y > 0), centered at (0, 0). Create a well-commented sub-function that scales, rotates, any 2 times n matrix representing a set of coordinates and shifts it to a desired location. Here the array, scaling factor, rotation angle, shifting amount are input values in the function call. we will use this sub-function to rotate the arc f (Friday 3/10 4pm) The entire project is due. Draw the Fibonacci spiral to n iterations. Name your function: lostnom_firstinitial_project1.m Full credit will only be given to code with adequate commenting. The function must first create the coordinate array for the arc, then repeatedly transform it (scales rotate and move the array to the specific location) using the sub-function. What the result will look like: This plot command has a title that says \"the Fibonacci Spiral\". The spiral should have a with line width of 2. The function shall not produce any data in the command window nor produce any variables in the workspace.

Solution

.text
main:
j mm

mm:
la $a3, array_A # base address for array_A loaded into $a3
la $a1, array_B # base address for array_B loaded into $a1
la $a2, array_C # base address for array_C loaded into $a2

li $t1, four # $t1 = four (row-size and loop end)
li $s0, zero # i = 0; initialize first for loop
loop1:
li $s1, zero # j = 0; restart 2d for loop
loop2:
li $s2, zero # k = 0; restart third for loop
sll $t2, $s0, two # $t2 = i * four (size of row of c)
addu $t2, $t2, $s1 # $t2 = i * size(row) + j
sll $t2, $t2, two # $t2 = computer memory unit offset of [i][j]
addu $t2, $a2, $t2 # $t2 = computer memory unit offset of [i][j]
lw $t4, 0($t2) # $t4 = two bytes of c[i][j]
loop3:
sll $t0, $s2, two # $t0 = k * four (size of row of b)
addu $t0, $t0, $s1 # $t0 = k * size(row) + j
sll $t0, $t0, two # $t0 = computer memory unit offset off [k][j]
addu $t0, $a1, $t0 # $t0 = computer memory unit address of b[k][j]
lw $t5, 0($t0) # $t5 = two bytes of b[k][j]
sll $t0, $s0, two # $t0 = i * four (size of row of a)
addu $t0, $t0, $s2 # $t0 = i * size(row) + k
sll $t0, $t0, two # $t0 = computer memory unit offset of [i][k]
addu $t0, $a3, $t0 # $t0 = computer memory unit address of a[i][k]
lw $t6, 0($t0) # $t6 = two bytes of a[i][k]
mul $t5, $t6, $t5 # $t5 = a[i][k] * b[k][j]
add $t4, $t4, $t5 # $t4 = c[i][j] + a[i][k] * b[k][j]
addiu $s2, $s2, one # $k = k + one
bne $s2, $t1, loop3 #if (k != 4) attend loop3
sw $t4, 0($a2) # c[i][j] = $t4
#----------TEST-------------
li $v0, 1
lw $a0, ($a2)
syscall
li $v0, 4
la $a0, new_row
syscall
#----------TEST-------------

addiu $s1, $s1, one # $j = j + one
addi $a2, $a2, 4
bne $s1, $t1, loop2 # if (j != 4) attend loop2

addiu $s0, $s0, one # $i = i + one
bne $s0, $t1, loop1 # if (i != 32) attend L1

Exit:
li $v0, 10 #exits
syscall

.data
array_A: .word 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
array_B: .word 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
array_C: .word 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
output_row_string_C: .asciiz \"Matrix C Output Row \"
colon_string: .asciiz \":
space_string: .asciiz \" \"
new_row: .asciiz \"\ \"
char_space: .space 2

 You will create a function file that produces the Fibonacci spiral to n iterations. The Fibonacci spiral: an approximation of the golden spiral created by draw
 You will create a function file that produces the Fibonacci spiral to n iterations. The Fibonacci spiral: an approximation of the golden spiral created by draw

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site