Submitting your answers by the due date.
1^4 + 2^4 + 3^4 + 4^4 + ... + n^4 - ((1 + n)n(1 + 2n)(-1 + 3n + 3n^2))/30 = 0,but for general value n. You may use any registers from $8 to $25, but code should be short and clearfully commented. Your program should work for any integer 0 <= n < N_max. Test for few values, e.g., n=0, 2, 5, 10, 100, 1000, -1, -7. You program will not work properly if n is sufficiently large. Why? Find the upper limit N_max if you can. What happens if n is negative? Submit your assembly program and report your findings and explanations with script.
lb $3, 0($4) # Read byte from source sb $3, 0($5) # Write byte to destinationcopies a byte. Characters are normally combined into strings, which have a variable number of characters. C uses the convention that a string is terminated by a byte with the value 0.
(3.31) [20] Write a program in MIPS assembly language that copy and count a string. The program takes a pointer to a null-terminated source string in register $4 and a pointer to the destination string in register $5. It copies the byte contents starting from memory location given in $4 to the destination starting from the address given in $5, until a null character (a byte of value zero) is reached. It stores a count of the total number of non-null characters in the string in register $2. Hint: Look at the program copy in Exercise 3.8 for ideas. You test your program with the following template to set up the string.
# Template for the bcopy.s (string copy) program .data str: .asciiz "a string--end\n" # the source string str2: .asciiz "test, more space?\n" # destination string .text main: la $4, str # load in source string address la $5, str2 # load destination address # Your code here ... ... # Your code end move $4, $2 li $2, 1 syscall # print out count li $2, 4 la $4, str # print source string syscall li $2, 4 la $4, str2 # print destination string syscall j $31If your code is correct, you should see a number (the length of the string) followed by two identical source strings when the program is run.
Here are some translations of C terminology and our machine language: The words `pointer to a string' means: the starting address of the array of characters. String is nothing but an array of bytes representing characters. `Pointer to the third character' means: the address of the third character.