Write a WinMIPS64 code to determine whether a given number is an Armstrong numbe
ID: 3796284 • Letter: W
Question
Write a WinMIPS64 code to determine whether a given number is an Armstrong number. The n-digit numbers equal to sum of nth powers of their digits (a finite sequence), called Armstrong numbers. They first few are given by l, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407, 1634, 8208, 9474, 54748, ...... For example, consider 371, 371 3 = 3^3 + 7^3 + 1^3 = 27 + 343 + 1 = 371. A sample C code for your assistance is given below: #include #include int main() {int num, I; int digit, num, capture; sum = 0.0; capture = 0.0; printf{"Enter the total number of digits/n"}; scanf("%d", #); for (i = 0; IExplanation / Answer
The Error come because you store a double word(multiple of 8) in line 2:
sd $ra, 0($sp)
But you are not passing an address that is double-word aligned (a multiple of 8).Because you are storing double words, they should each be 8 bytes apart, and you should be allocating 40 bytes in the stack for 5 registers instead of just 20:
You change your code line 2 with this :
addi.d $sp, $sp, -40
Related Questions
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.