a:
  push #8  / Allocate i and b.  i is [fp-4] and b is [fp]

  ld [fp+16] -> %r0    / i = *y
  ld [r0] -> %r0
  st %r0 -> [fp-4]

  ld [fp+12] -> %r0    / b = *x
  ld [r0] -> %r0
  st %r0 -> [fp]

  ld [fp-4] -> %r0
  mov #4 -> %r1
  mul %r0, %r1 -> %r0
  ld [fp] -> %r1
  add %r0, %r1 -> %r0
  ld [r0] -> %r0
  ret

b:
  mov #12 -> %r0             
                            
  add %r0, %fp -> %r0
  st %r0 -> [sp]--

  mov #16 -> %r0           
                             
  add %r0, %fp -> %r0
  st %r0 -> [sp]--
  jsr a
  pop #8
  ret

main:
  push #28

  mov #170 -> %r0
  st %r0 -> [fp-24]
  mov #187 -> %r0
  st %r0 -> [fp-20]
  mov #204 -> %r0
  st %r0 -> [fp-16]
  mov #-20 -> %r0
  add %fp, %r0 -> %r0
  st %r0 -> [fp-8]
  mov #-16 -> %r0
  add %fp, %r0 -> %r0
  st %r0 -> [fp-4]
  mov #-24 -> %r0
  add %fp, %r0 -> %r0
  st %r0 -> [fp]
  mov #-8 -> %r0
  add %fp, %r0 -> %r0
  st %r0 -> [sp]--
  mov #2 -> %r0
  st %r0 -> [sp]--
  jsr b
  pop #8
  st %r0 -> [fp-24]
  ret
