Subject: Fibonacci Sequence Program Hey! I just thought I would point it out that the person here made a common mistake in the file fibonacci.s While common, it is in fact wrong. The following code segment is incorrect: # dump output li r0, 4 ; syscall number ( system write ) li r3, 1 ; first arg stdout lis r4, ha16(output) ; first half of string addi r4, r4, lo16(output) ; second half of string li r5, len ; message length sc ; call kernel ** # return fib number xor. r3, r3, r3 ; zero out register 3 mr r3, r11 The place I have marked with a (**) is incorrect due to the system call error handling mechanism. What happens, is that if an error occurs execution resumes at the next line (PC++), but if an error does not occur execution resumes at (PC+2). This means that in effect the xor. r3,r3,r3 instruction is never called, ineffectual though it is anyway. As a result, what I would do is replace the (**) with nop [which translates to ori r0,r0,0] because this program does not care about handling errors. Or it could set r3 to -1, or something similar that would indicate error. I just thought I would point this out because this error occurs quite often in assembly language programming, and I thought I would clarify this mechanism. Hope that was helpful! Martin Mroz