#Square2.sim5 - input an integer n and output n squared. 000 8001 main: in %r1 %r1 = input() 001 5005 lda square %r0=square(%r1) 002 9600 call %r0 003 8100 out %r0 output(%r0) 004 0000 halt return 005 9012 square: mvrr %r1,%r2 %r2=%r1 006 5009 lda mult %r0=mult(%r1,%r2) 007 9600 call %r0 008 8909 ret return 009 8200 mult: clr %r0 r0 = 0; 010 7201 loop: skne %r1 if (r1==0) 011 8909 ret return; 012 9420 addr %r2,%r0 r0 = r0 + r2; 013 8401 dec %r1 r1--; 014 6010 jmp loop goto loop; 000 .end start 5