Hey there,
I am writing MIPS assembly for computing the gcd of two given numbers (recursively), but am struggling!
I vaguely understand changing the frame point counter, stack pointer etc. but I'm really at sea with how to implement the algorithm recursively (e.g. how to check if each number is even or odd, then somehow call the code again and again until input1=input2)
Any assistance will be very appreciated!
Thanks
nikki_2000b@hot
0
Newbie Poster
Recommended Answers
Jump to PostThe stack is just a piece of memory where you can push values on the end or pop values from the end. The $sp register always points to the next available spot.
Visually:[ ] [ ] [ ] <-- $sp [-7] [12]
If we push 42 …
Jump to PostYour teacher is having you implement the Binary GCD Algorithm in assembly? Yoinks.
Well, you can test any positive number for even or odd by looking at the LSB of the number.
# $s0 : number to check for odd/even # $t0 : result: 1 = …
Jump to Post# CSIT 311: MIPS - Euclidean Iterative # #int gcd_recursive(int a, int b) #{ # if ( b == 0 ) # return a; # # else # return gcd_recursive(b, a % b); #} .text .globl main main: # Prompt for user input la $a0, prompt # …
All 10 Replies
Duoas
1,025
Postaholic
Featured Poster
nikki_2000b@hot
0
Newbie Poster
Duoas
1,025
Postaholic
Featured Poster
Striker9
0
Newbie Poster
Duoas
1,025
Postaholic
Featured Poster
nikki_2000b@hot
0
Newbie Poster
Duoas
1,025
Postaholic
Featured Poster
nikki_2000b@hot
0
Newbie Poster
bStiffler582
0
Newbie Poster
Duoas
1,025
Postaholic
Featured Poster
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.