#square.sim5 - input an integer n and output n squared. 000 8001 main: in %r1 %r1 = input() 001 5006 lda square %r0=square(%r1) 002 9008 mvrr %r0,%r8 003 9389 exch %r8,%r9 004 8100 out %r0 output(%r0) 005 0000 halt return 006 8808 square: push %r8 save return address 007 9012 mvrr %r1,%r2 %r2=%r1 008 5013 lda mult %r0=mult(%r1,%r2) 009 9008 mvrr %r0,%r8 010 9389 exch %r8,%r9 011 8908 pop %r8 restore %r8 012 9389 exch %r8,%r9 return 013 8200 mult: clr %r0 r0 = 0; 014 7201 loop: skne %r1 if (r1==0) 015 9089 mvrr %r8,%r9 return; 016 9420 add %r2,%r0 r0 = r0 + r2; 017 8401 dec %r1 r1--; 018 6014 jmp loop goto loop; 000 .end start 5