!************************* * * !************************* * * !* Apostolos Pantazis. * * * !* maximus@cs.unm.edu * * * !* CS 341 Spring 2002. * * * !* Dr Barak P. * * * !* TA: Leigh McGlinchey. * * * !* File: prog1.s * * * !* Created on: 2/11/02. * * * !* Updated on: 2/11/02. * * * !************************* * * !Program Description: * * * !To Implement: * * * ![(x^4)/y] - (63*y)+(y/2)* * * !************************* * * !************************* * * .data x: .word 0x1f !sample value for x y: .word 0x11 !sample value for y z: .word 0x00 !store result for z part1: .word 0x00 !store formual part_1 part2: .word 0x00 !store formual part_2 part3: .word 0x00 !store formula part_3 const1: .word 0x3f !store const 63 in Hex const2: .word 0x02 !store const 2 in Hex .text !instructions start: set x, %r1 !&x-->%r1 ld [%r1], %r1 !x --> %r1 set y, %r2 !&y-->%r2 ld [%r2], %r2 !y -->%r2 set z, %r3 !&z-->%r3 ld [%r3], %r3 !z -->%r3 set part1, %r4 !&p1-->%r4 ld [%r4], %r4 !p1 -->%r4 set part2, %r5 !&p2-->%r5 ld [%r5], %r5 !p2 -->%r5 set part3, %r6 !&p3-->%r6 ld [%r6], %r6 !p3 -->%r6 set const1, %r7 !&c1-->%r7 ld [%r7], %r7 !c1 -->%r7 set const2, %r8 !&c2-->%r8 ld [%r8] ,%r8 !c2 -->%r8 smul %r1, %r1, %r4 !%r1 * %r1 --> %r4 (x^2) smul %r4, %r4, %r4 !%r4 * %r4 --> %r4 (x^4) umul %r0, %r0, %r0 !Clear the Y register sdiv %r4, %r2, %r4 !%r4 / %r2 --> %r4 [(x^4)/y] smul %r7, %r2, %r5 !%r7 * %r2 --> %r5 (63 * y) sub %r4, %r5, %r3 !%r4 - %r5 --> %r3 [(x^4)/y]-(63*y) umul %r0, %r0, %r0 !Clear the Y register sdiv %r2, %r8, %r6 !%r2 / %r8 --> %r6 (y/2) add %r3, %r6, %r3 !%r3 + %r6 --> %r3 [(x^4)/y]-(63*y)+(y/2) end: ta 0 !The end.. ! * This is a sample of how I write programs. ! * There might be Errors in this code since I wrote it in a rush. ! * It will for sure assemble. ! * Generally my algorithm (Brief description) would be included ! * In the comments, this is a simple enought program so I did ! * not worry about it that much. ! * For use by Cs 341 Professor/TA/Students. ! * Cut/Paste this code and play with it if you wish...