92 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| .sp 1.5i
 | |
| .ft B
 | |
| Appendix C: An example
 | |
| .ft R
 | |
| .nh
 | |
| .nf
 | |
| 
 | |
| 
 | |
| \h'+10u' 1	\fBprogram\fR factorials(input, output);
 | |
| \h'+10u' 2	{ This program prints factorials }
 | |
| \h'+10u' 3
 | |
| \h'+10u' 4	\fBconst\fR
 | |
| \h'+10u' 5	        FAC1 = 1;
 | |
| \h'+10u' 6	\fBvar\fR
 | |
| \h'+10u' 7	        i : integer;
 | |
| \h'+10u' 8
 | |
| \h'+10u' 9	\fBfunction\fR factorial(n : integer) : integer;
 | |
| 10	\fBbegin\fR
 | |
| 11	        \fBif\fR n = FAC1 \fBthen\fR
 | |
| 12	                factorial := FAC1
 | |
| 13	        \fBelse\fR
 | |
| 14	                factorial := n * factorial(n-1);
 | |
| 15	\fBend\fR;
 | |
| 16
 | |
| 17	\fBbegin\fR
 | |
| 18	        write('Give a number : ');
 | |
| 19	        readln(i);
 | |
| 20	        \fBif\fR i < 1 \fBthen\fR
 | |
| 21	                writeln('No factorial')
 | |
| 22	        \fBelse\fR
 | |
| 23	                writeln(factorial(i):1);
 | |
| 24	\fBend\fR.
 | |
| .bp
 | |
| .po
 | |
| .DS
 | |
|  mes 2,4,4					     loc 16
 | |
| \&.1						     cal $_wrs
 | |
|  rom 'factorials.p\(rs000'				     asp 12
 | |
| i						     lin 19
 | |
|  bss 4,0,0					     lae input
 | |
| output						     cal $_rdi
 | |
|  bss 540,0,0					     asp 4
 | |
| input						     lfr 4
 | |
|  bss 540,0,0					     ste i
 | |
|  exp $factorial					     lae input
 | |
|  pro $factorial, ?					     cal $_rln
 | |
|  mes 9,4					     asp 4
 | |
|  lin 11						     lin 20
 | |
|  lol 0						     loe i
 | |
|  loc 1						     loc 1
 | |
|  cmi 4						     cmi 4
 | |
|  teq						     tlt
 | |
|  zeq *1						     zeq *1
 | |
|  lin 12						     lin 21
 | |
|  loc 1						    .4
 | |
|  stl -4						     rom 'No factorial'
 | |
|  bra *2						     lae output
 | |
| 1						     lae .4
 | |
|  lin 14						     loc 12
 | |
|  lol 0						     cal $_wrs
 | |
|  lol 0						     asp 12
 | |
|  loc 1						     lae output
 | |
|  sbi 4						     cal $_wln
 | |
|  cal $factorial					     asp 4
 | |
|  asp 4						     bra *2
 | |
|  lfr 4						    1
 | |
|  mli 4						     lin 23
 | |
|  stl -4						     lae output
 | |
| 2						     loe i
 | |
|  lin 15						     cal $factorial
 | |
|  mes 3,0,4,0,0					     asp 4
 | |
|  lol -4						     lfr 4
 | |
|  ret 4						     loc 1
 | |
|  end 4						     cal $_wsi
 | |
|  exp $m_a_i_n				     asp 12
 | |
|  pro $m_a_i_n, ?				     lae output
 | |
|  mes 9,0					     cal $_wln
 | |
|  fil .1						     asp 4
 | |
| \&.2						    2
 | |
|  con input, output				     lin 24
 | |
|  lxl 0						     loc 0
 | |
|  lae .2						     cal $_hlt
 | |
|  loc 2						     end 0
 | |
|  lxa 0						     mes 4,24,'factorials.p\(rs000'
 | |
|  cal $_ini
 | |
|  asp 16
 | |
|  lin 18
 | |
| \&.3
 | |
|  rom 'Give a number : '
 | |
|  lae output
 | |
|  lae .3
 | |
| .DE
 |