Author: Anonymous Language: text
Description: No description Timestamp: 2008-11-20 10:14:06 -0400
View raw paste Reply
  1. infix           sw      -4(r14), r30            ; save old fp
  2.                 add     r30, r14, r0            ; fp = sp
  3.                 subi    r14, r14, 20            ; frame size
  4.                 sw      0(r14), r31             ; saving registers
  5.                 sw      4(r14), r3
  6.                 sw      8(r14), r4
  7.                 sw      12(r14), r5
  8.  
  9. infixLoop       lw      r3, (r30)               ; load curr node
  10.                 seq     r5, r4, r0              ; curr node null?
  11.                 bt      r5, infixReturn         ; returns to previous node
  12.  
  13.                 lw      r1, 4(r3)               ; r1 -> left
  14.                 sw      -4(r14), r1             ; ->left = '-24(r14)'
  15.                 subui   r14, r14, 4             ; create space for it
  16.                 jal     infix                   ; save r31 and go to next node
  17.         ; from return (last line)
  18.                 addui   r14, r14, 4            
  19.  
  20.                 jal     strPut                  ; print node
  21.                 addui   r1, r0, "\r"
  22.                 jal     strPut
  23.                 addui   r1, r0, "\n"
  24.                 jal     strPut
  25.                 addi    r30, r30, 4             ; next node    
  26.  
  27. infixReturn     lw      r31, 0(r14)             ; restoring registers
  28.                 lw      r3, 4(r14)
  29.                 lw      r4, 8(r14)
  30.                 lw      r5, 12(r14)
  31.                 addu    r14, r30, r0            ; release stack space
  32.                 lw      r30, -4(r14)
  33.  
  34.                 jr      r31                     ; return
  35.  
View raw paste Reply