Home » Archimedes archive » Acorn User » AU 1995-11.adf » !Regulars » Regulars/StarInfo/Radford/number_e/fctrial
Regulars/StarInfo/Radford/number_e/fctrial
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Acorn User » AU 1995-11.adf » !Regulars |
Filename: | Regulars/StarInfo/Radford/number_e/fctrial |
Read OK: | ✔ |
File size: | 1554 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10ON ERROR REPORT:PRINT;ERL:END 20DIM code% 400000 30carry=8 40aba=13 50INPUT "PLEASE ENTER THE NUMBER",it% 60 70accuracy%=1<<(aba) 80accuracy2%=1<<(aba-1) 90acc2%=100 100FOR pass%=0 TO 2 STEP 2 110P%=code% 120[ 130OPT pass% 140 150.SVIT 160EQUD 0 170 180.Factoriallify 190STMFD R13!,{R14} 200: 210BL get_addresses 220BL fill_e 230MOV R3,#0 \factorial 240.main_for_loopifys1 250 260 MOV R14,#0 270 STRB R14,[R0] 280 STRB R14,[R1] 290 CMP R3,#1 300 MOVLE R14,#1 310 STRLEB R14,[R0,#1] 320 STRLEB R14,[R1,#1] 330 MOVLE R14,#10 340 STRLEB R14,[R0,#2] 350 STRLEB R14,[R1,#2] 360 CMP R3,#1 370 ADRGT R4,adollar 380 MOVGT R0,R4 390 BLGT numbertosamstringfactorial 400 BL begin_multiplication 410 \RESULT IS RETURNED IN answer 420 \copy to adollar 430 MOV R5,#0 440 ADR R7,adollar 450 MOV R14,#0 460 STRB R14,[R7],#1 470 BL address_ans 480 .main_for_loopifys2 490 LDRB R6,[R8,R5] 500 STRB R6,[R7,R5] 510 CMP R6,#10 520 ADD R5,R5,#1 530 BNE main_for_loopifys2 540 550 BL get_addresses 560 MOV R14,#0 570 STRB R14,[R0] 580 MOV R14,#1 590 STRB R14,[R0,#1] 600 MOV R14,#0 610 MOV R5,#2 620 .main_for_loopifysc1 630 STRB R14,[R0,R5] 640 ADD R5,R5,#1 650 CMP R5,#acc2% 660 BNE main_for_loopifysc1 670 MOV R14,#10 680 STRB R14,[R0,R5] 690 700 SWI "OS_ReadEscapeState" 710 LDMCSFD R13!,{PC} 720 730 ADD R3,R3,#1 740 STMFD R13!,{R0}:LDR R0,SVIT:CMP R3,R0:LDMFD R13!,{R0} 750BLE main_for_loopifys1 760 770LDMFD R13!,{PC} 780 790.buffer2 800FNBytes(32) 810 820.adollar 830FNBytes(accuracy%) 840: 850: 860.numbertosamstringfactorial 870STMFD R13!,{R14} 880STMFD R13!,{R0-R9} 890: 900MOV R9,R1 910 920MOV R0,R3 930ADR R1,buffer 940MOV R2,#32 950SWI "OS_ConvertCardinal4" 960MOV R6,#1 970.ntsfor_loopify1 980 LDRB R5,[R0],#1 990 SUB R5,R5,#ASC("0") 1000 STRB R5,[R9,R6] 1010 ADD R6,R6,#1 1020 CMP R0,R1 1030BLE ntsfor_loopify1 1040MOV R14,#10 1050SUB R6,R6,#1 1060STRB R14,[R9,R6] 1070: 1080LDMFD R13!,{R0-R9} 1090LDMFD R13!,{PC} 1100.buffer 1110FNBytes(32) 1120: 1130: 1140.divres 1150EQUD 0 1160.modres 1170EQUD 0 1180 1190.begin_multiplication 1200STMFD R13!,{R14} 1210STMFD R13!,{R0-R12} 1220 1230 1240\find end of operand1 AND operand2 1250 1260MOV R3,R0 1270MOV R5,#0 1280.loop_get_end1B 1290 LDRB R4,[R3],#1 1300 ADD R5,R5,#1 1310 CMP R4,#10 1320BNE loop_get_end1B 1330 1340MOV R3,R1 1350MOV R6,#0 1360.loop_get_end2B 1370 LDRB R4,[R3],#1 1380 ADD R6,R6,#1 1390 CMP R4,#10 1400BNE loop_get_end2B 1410 1420\LENGTH OF OPERAND 1 IS RETURNED IN R5, LENGTH OF OPERAND 2 IS IN R6 1430 1440ADD R7,R5,R6 \CONTAINS TOTAL LENGTHS 1450 1460\REGISTERS AVAILABLE = R3,R4,R8-R12,R14 1470 1480\structure For..next loop- 1490 1500MOV R3,#0 1510MOV R4,R2 1520SUB R14,R7,#1 \LOOP COUNTER 1530.for_loopify1 1540 STRB R3,[R4],#1 1550 SUBS R14,R14,#1 1560BNE for_loopify1 1570MOV R3,#10 1580SUB R4,R4,#1 1590STRB R3,[R4] 1600ADD R4,R4,#1 1610 1620SUB R11,R6,#2 \LOOP COUNTER (J%) 1630.for_loopify2 1640 MOV carry,#0 1650 LDRB R3,[R1,R11] \G%=B%?J% 1660 ADD R4,R2,R11 1670 ADD R4,R4,#1 \V%=D%+J%+1 1680 SUB R10,R5,#2 \LOOP COUNTER (L%) 1690 .for_loopify3 1700 LDRB R9,[R0,R10] \H%=A%?L% 1710 MUL R14,R3,R9 1720 ADD R14,R14,carry 1730 STMFD R13!,{R8} 1740 LDRB R8,[R4,R10] 1750 ADD R14,R14,R8 1760 1770 \ASSEMBLE MOD AND DIV FUNCTION 1780 STMFD R13!,{R0-R6} 1790 MOV R0,R14 1800 MOV R1,#10 1810 ANDS R6,R0,#1<<31 1820 RSBMI R0,R0,#0 1830 EOR R5,R6,R1 1840 CMP R1,#0 1850 RSBMI R1,R1,#0 1860 1870 MOV R2,#0 1880 MOV R3,#0 1890 MOV R4,#1<<31 1900 1910 .division_loop 1920 MOVS R0,R0,ASL#1 1930 ADC R2,R2,R2 1940 CMP R2,R1 1950 SUBGE R2,R2,R1 1960 ORRGE R3,R3,R4 1970 MOVS R4,R4,LSR#1 1980 BNE division_loop 1990 2000 CMP R5,#0 2010 RSBMI R3,R3,#0 2020 CMP R6,#0 2030 RSBMI R2,R2,#0 2040 2050 STR R3,divres2 2060 STR R2,modres2 2070 2080 LDMFD R13!,{R0-R6} 2090 2100 LDR R8,modres2 2110 STRB R8,[R4,R10] \FORMERLY R8 2120 LDMFD R13!,{R8} 2130 LDR R8,divres2 2140 SUBS R10,R10,#1 2150 BNE for_loopify3 2160 STRB R8,[R4,R10] 2170 SUBS R11,R11,#1 2180BNE for_loopify2 2190 2200BL Remove_Leading0s 2210 2220LDMFD R13!,{R0-R12} 2230LDMFD R13!,{PC} 2240 2250.divres2 2260EQUD 0 2270.modres2 2280 2290.divres3 2300EQUD 0 2310.modres3 2320EQUD 0 2330 2340 2350.Remove_Leading0s 2360STMFD R13!,{R14} 2370: 2380MOV R4,#0 2390.loop_remove0s 2400LDRB R5,[R2,R4] 2410CMP R5,#0 2420ADDEQ R4,R4,#1 2430BEQ loop_remove0s 2440 2450ADR R6,answer 2460MOV R7,#0 2470.loop_swap_string 2480LDRB R5,[R2,R4] 2490STRB R5,[R6,R7] 2500ADD R4,R4,#1 2510ADD R7,R7,#1 2520CMP R5,#10 2530BNE loop_swap_string 2540 2550 2560: 2570LDMFD R13!,{PC} 2580 2590.address_ans 2600STMFD R13!,{R14} 2610ADR R8,answer 2620LDMFD R13!,{PC} 2630.answer 2640FNBytes(accuracy%) 2650 2660 2670.get_addresses 2680STMFD R13!,{R14} 2690ADR R0,operand1 2700B next1 2710.operand1 2720FNBytes(accuracy%) 2730.next1 2740ADR R1,operand2 2750B next2 2760.operand2 2770FNBytes(accuracy%) 2780.next2 2790ADR R2,result 2800B next3 2810.result 2820FNBytes(accuracy%) 2830.next3 2840ADR R12,e_so_far 2850LDMFD R13!,{PC} 2860.e_so_far 2870FNBytes(accuracy%) 2880: 2890: 2900.fill_e 2910STMFD R13!,{R14} 2920: 2930MOV R5,#0 2940MOV R6,#0 2950.loop_fill_e 2960 STRB R5,[R12,R6] 2970 ADD R6,R6,#1 2980 CMP R6,#accuracy2% 2990BNE loop_fill_e 3000MOV R5,#10 3010SUB R6,R6,#1 3020STRB R5,[R12,R6] 3030: 3040LDMFD R13!,{PC} 3050 3060] 3070NEXT 3080: 3090SVIT!0=it% 3100PRINT "Calculating....." 3110CALL Factoriallify 3120 3130REM *SPOOL E_FILE3 3140 PRINT 3150 PRINT 3160 PRINT it%;"! = "; 3170 A=0 3180 REPEAT 3190 PRINT STR$(adollar?A); 3200 A+=1 3210 UNTIL (adollar?A)=10 3220REM *SPOOL 3230 3240END 3250: 3260DEFFNBytes(inc%) 3270P%+=inc% 3280=0 3290:
� � �:�;�:� � code% 400000 carry=8 ( aba=13 2#� "PLEASE ENTER THE NUMBER",it% < Faccuracy%=1<<(aba) Paccuracy2%=1<<(aba-1) Z acc2%=100 d� pass%=0 � 2 � 2 nP%=code% x[ � OPT pass% � � .SVIT � EQUD 0 � �.Factoriallify �STMFD R13!,{R14} �: �BL get_addresses � BL fill_e �$MOV R3,#0 \factorial �.main_for_loopifys1 � MOV R14,#0 STRB R14,[R0] STRB R14,[R1] " CMP R3,#1 , MOVLE R14,#1 6 STRLEB R14,[R0,#1] @ STRLEB R14,[R1,#1] J MOVLE R14,#10 T STRLEB R14,[R0,#2] ^ STRLEB R14,[R1,#2] h CMP R3,#1 r ADRGT R4,adollar | MOVGT R0,R4 �% BLGT numbertosamstringfactorial � BL begin_multiplication �# \RESULT IS RETURNED IN answer � \copy to adollar � MOV R5,#0 � ADR R7,adollar � MOV R14,#0 � STRB R14,[R7],#1 � BL address_ans � .main_for_loopifys2 � LDRB R6,[R8,R5] � STRB R6,[R7,R5] � CMP R6,#10 ADD R5,R5,#1 BNE main_for_loopifys2 & BL get_addresses 0 MOV R14,#0 : STRB R14,[R0] D MOV R14,#1 N STRB R14,[R0,#1] X MOV R14,#0 b MOV R5,#2 l .main_for_loopifysc1 v STRB R14,[R0,R5] � ADD R5,R5,#1 � CMP R5,#acc2% � BNE main_for_loopifysc1 � MOV R14,#10 � STRB R14,[R0,R5] � � SWI "OS_ReadEscapeState" � LDMCSFD R13!,{PC} � � ADD R3,R3,#1 �; STMFD R13!,{R0}:LDR R0,SVIT:CMP R3,R0:LDMFD R13!,{R0} �BLE main_for_loopifys1 � LDMFD R13!,{PC} .buffer2 �Bytes(32) * 4.adollar >�Bytes(accuracy%) H: R: \.numbertosamstringfactorial fSTMFD R13!,{R14} pSTMFD R13!,{R0-R9} z: � MOV R9,R1 � � MOV R0,R3 �ADR R1,buffer �MOV R2,#32 �SWI "OS_ConvertCardinal4" � MOV R6,#1 �.ntsfor_loopify1 � LDRB R5,[R0],#1 � SUB R5,R5,#�("0") � STRB R5,[R9,R6] � ADD R6,R6,#1 � CMP R0,R1 BLE ntsfor_loopify1 MOV R14,#10 SUB R6,R6,#1 $STRB R14,[R9,R6] .: 8LDMFD R13!,{R0-R9} BLDMFD R13!,{PC} L.buffer V�Bytes(32) `: j: t.divres ~ EQUD 0 �.modres � EQUD 0 � �.begin_multiplication �STMFD R13!,{R14} �STMFD R13!,{R0-R12} � � �$\find end of operand1 � operand2 � � MOV R3,R0 � MOV R5,#0 .loop_get_end1B LDRB R4,[R3],#1 ADD R5,R5,#1 CMP R4,#10 (BNE loop_get_end1B 2 < MOV R3,R1 F MOV R6,#0 P.loop_get_end2B Z LDRB R4,[R3],#1 d ADD R6,R6,#1 n CMP R4,#10 xBNE loop_get_end2B � �B\�GTH � OPERAND 1 IS RETURNED IN R5, �GTH � OPERAND 2 IS IN R6 � �1ADD R7,R5,R6 \CONTAINS �TAL �GTHS � �+\REGISTERS AVAILABLE = R3,R4,R8-R12,R14 � �\structure For..next loop- � � MOV R3,#0 � MOV R4,R2 �SUB R14,R7,#1 \LOOP COUNTER �.for_loopify1 STRB R3,[R4],#1 SUBS R14,R14,#1 BNE for_loopify1 "MOV R3,#10 ,SUB R4,R4,#1 6STRB R3,[R4] @ADD R4,R4,#1 J T&SUB R11,R6,#2 \LOOP COUNTER (J%) ^.for_loopify2 h MOV carry,#0 r! LDRB R3,[R1,R11] \G%=B%?J% | ADD R4,R2,R11 � ADD R4,R4,#1 \V%=D%+J%+1 �& SUB R10,R5,#2 \LOOP COUNTER (L%) � .for_loopify3 �" LDRB R9,[R0,R10] \H%=A%?L% � MUL R14,R3,R9 � ADD R14,R14,carry � STMFD R13!,{R8} � LDRB R8,[R4,R10] � ADD R14,R14,R8 � � \ASSEMBLE � � � FUNCTION � STMFD R13!,{R0-R6} � MOV R0,R14 MOV R1,#10 �S R6,R0,#1<<31 RSBMI R0,R0,#0 & � R5,R6,R1 0 CMP R1,#0 : RSBMI R1,R1,#0 D N MOV R2,#0 X MOV R3,#0 b MOV R4,#1<<31 l v .division_loop � MOVS R0,R0,ASL#1 � ADC R2,R2,R2 � CMP R2,R1 � SUBGE R2,R2,R1 � �RGE R3,R3,R4 � MOVS R4,R4,LSR#1 � BNE division_loop � � CMP R5,#0 � RSBMI R3,R3,#0 � CMP R6,#0 � RSBMI R2,R2,#0 � STR R3,divres2 STR R2,modres2 LDMFD R13!,{R0-R6} * 4 LDR R8,modres2 >' STRB R8,[R4,R10] \�MERLY R8 H LDMFD R13!,{R8} R LDR R8,divres2 \ SUBS R10,R10,#1 f BNE for_loopify3 p STRB R8,[R4,R10] z SUBS R11,R11,#1 �BNE for_loopify2 � �BL Remove_Leading0s � �LDMFD R13!,{R0-R12} �LDMFD R13!,{PC} � �.divres2 � EQUD 0 �.modres2 � �.divres3 � EQUD 0 .modres3 EQUD 0 $ ..Remove_Leading0s 8STMFD R13!,{R14} B: L MOV R4,#0 V.loop_remove0s `LDRB R5,[R2,R4] j CMP R5,#0 tADDEQ R4,R4,#1 ~BEQ loop_remove0s � �ADR R6,answer � MOV R7,#0 �.loop_swap_string �LDRB R5,[R2,R4] �STRB R5,[R6,R7] �ADD R4,R4,#1 �ADD R7,R7,#1 �CMP R5,#10 �BNE loop_swap_string � � : LDMFD R13!,{PC} .address_ans (STMFD R13!,{R14} 2ADR R8,answer <LDMFD R13!,{PC} F.answer P�Bytes(accuracy%) Z d n.get_addresses xSTMFD R13!,{R14} �ADR R0,operand1 �B next1 � .operand1 ��Bytes(accuracy%) � .next1 �ADR R1,operand2 �B next2 � .operand2 ��Bytes(accuracy%) � .next2 �ADR R2,result �B next3 �.result �Bytes(accuracy%) .next3 ADR R12,e_so_far "LDMFD R13!,{PC} , .e_so_far 6�Bytes(accuracy%) @: J: T.fill_e ^STMFD R13!,{R14} h: r MOV R5,#0 | MOV R6,#0 �.loop_fill_e � STRB R5,[R12,R6] � ADD R6,R6,#1 � CMP R6,#accuracy2% �BNE loop_fill_e �MOV R5,#10 �SUB R6,R6,#1 �STRB R5,[R12,R6] �: �LDMFD R13!,{PC} � �] �� : SVIT!0=it% � "Calculating....." &� Factoriallify 0 :� *SPOOL E_FILE3 D � N � X � it%;"! = "; b A=0 l � v � �(adollar?A); � A+=1 � � (adollar?A)=10 �� *SPOOL � �� �: �ݤBytes(inc%) �P%+=inc% �=0 �: �
00000000 0d 00 0a 0f ee 20 85 20 f6 3a f1 3b 9e 3a e0 0d |..... . .:.;.:..| 00000010 00 14 12 de 20 63 6f 64 65 25 20 34 30 30 30 30 |.... code% 40000| 00000020 30 0d 00 1e 0b 63 61 72 72 79 3d 38 0d 00 28 0a |0....carry=8..(.| 00000030 61 62 61 3d 31 33 0d 00 32 23 e8 20 22 50 4c 45 |aba=13..2#. "PLE| 00000040 41 53 45 20 45 4e 54 45 52 20 54 48 45 20 4e 55 |ASE ENTER THE NU| 00000050 4d 42 45 52 22 2c 69 74 25 0d 00 3c 04 0d 00 46 |MBER",it%..<...F| 00000060 16 61 63 63 75 72 61 63 79 25 3d 31 3c 3c 28 61 |.accuracy%=1<<(a| 00000070 62 61 29 0d 00 50 19 61 63 63 75 72 61 63 79 32 |ba)..P.accuracy2| 00000080 25 3d 31 3c 3c 28 61 62 61 2d 31 29 0d 00 5a 0d |%=1<<(aba-1)..Z.| 00000090 61 63 63 32 25 3d 31 30 30 0d 00 64 15 e3 20 70 |acc2%=100..d.. p| 000000a0 61 73 73 25 3d 30 20 b8 20 32 20 88 20 32 0d 00 |ass%=0 . 2 . 2..| 000000b0 6e 0c 50 25 3d 63 6f 64 65 25 0d 00 78 05 5b 0d |n.P%=code%..x.[.| 000000c0 00 82 0d 4f 50 54 20 70 61 73 73 25 0d 00 8c 04 |...OPT pass%....| 000000d0 0d 00 96 09 2e 53 56 49 54 0d 00 a0 0a 45 51 55 |.....SVIT....EQU| 000000e0 44 20 30 0d 00 aa 04 0d 00 b4 12 2e 46 61 63 74 |D 0.........Fact| 000000f0 6f 72 69 61 6c 6c 69 66 79 0d 00 be 14 53 54 4d |oriallify....STM| 00000100 46 44 20 52 31 33 21 2c 7b 52 31 34 7d 0d 00 c8 |FD R13!,{R14}...| 00000110 05 3a 0d 00 d2 14 42 4c 20 67 65 74 5f 61 64 64 |.:....BL get_add| 00000120 72 65 73 73 65 73 0d 00 dc 0d 42 4c 20 66 69 6c |resses....BL fil| 00000130 6c 5f 65 0d 00 e6 24 4d 4f 56 20 52 33 2c 23 30 |l_e...$MOV R3,#0| 00000140 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 66 61 | \fa| 00000150 63 74 6f 72 69 61 6c 0d 00 f0 17 2e 6d 61 69 6e |ctorial.....main| 00000160 5f 66 6f 72 5f 6c 6f 6f 70 69 66 79 73 31 0d 00 |_for_loopifys1..| 00000170 fa 04 0d 01 04 10 20 20 4d 4f 56 20 52 31 34 2c |...... MOV R14,| 00000180 23 30 0d 01 0e 13 20 20 53 54 52 42 20 52 31 34 |#0.... STRB R14| 00000190 2c 5b 52 30 5d 0d 01 18 13 20 20 53 54 52 42 20 |,[R0].... STRB | 000001a0 52 31 34 2c 5b 52 31 5d 0d 01 22 0f 20 20 43 4d |R14,[R1]..". CM| 000001b0 50 20 52 33 2c 23 31 0d 01 2c 13 20 20 4d 4f 56 |P R3,#1..,. MOV| 000001c0 4c 45 20 20 52 31 34 2c 23 31 0d 01 36 18 20 20 |LE R14,#1..6. | 000001d0 53 54 52 4c 45 42 20 52 31 34 2c 5b 52 30 2c 23 |STRLEB R14,[R0,#| 000001e0 31 5d 0d 01 40 18 20 20 53 54 52 4c 45 42 20 52 |1]..@. STRLEB R| 000001f0 31 34 2c 5b 52 31 2c 23 31 5d 0d 01 4a 14 20 20 |14,[R1,#1]..J. | 00000200 4d 4f 56 4c 45 20 20 52 31 34 2c 23 31 30 0d 01 |MOVLE R14,#10..| 00000210 54 18 20 20 53 54 52 4c 45 42 20 52 31 34 2c 5b |T. STRLEB R14,[| 00000220 52 30 2c 23 32 5d 0d 01 5e 18 20 20 53 54 52 4c |R0,#2]..^. STRL| 00000230 45 42 20 52 31 34 2c 5b 52 31 2c 23 32 5d 0d 01 |EB R14,[R1,#2]..| 00000240 68 0f 20 20 43 4d 50 20 52 33 2c 23 31 0d 01 72 |h. CMP R3,#1..r| 00000250 16 20 20 41 44 52 47 54 20 52 34 2c 61 64 6f 6c |. ADRGT R4,adol| 00000260 6c 61 72 0d 01 7c 11 20 20 4d 4f 56 47 54 20 52 |lar..|. MOVGT R| 00000270 30 2c 52 34 0d 01 86 25 20 20 42 4c 47 54 20 6e |0,R4...% BLGT n| 00000280 75 6d 62 65 72 74 6f 73 61 6d 73 74 72 69 6e 67 |umbertosamstring| 00000290 66 61 63 74 6f 72 69 61 6c 0d 01 90 1d 20 20 42 |factorial.... B| 000002a0 4c 20 62 65 67 69 6e 5f 6d 75 6c 74 69 70 6c 69 |L begin_multipli| 000002b0 63 61 74 69 6f 6e 0d 01 9a 23 20 20 5c 52 45 53 |cation...# \RES| 000002c0 55 4c 54 20 49 53 20 52 45 54 55 52 4e 45 44 20 |ULT IS RETURNED | 000002d0 49 4e 20 61 6e 73 77 65 72 0d 01 a4 16 20 20 5c |IN answer.... \| 000002e0 63 6f 70 79 20 74 6f 20 61 64 6f 6c 6c 61 72 0d |copy to adollar.| 000002f0 01 ae 0f 20 20 4d 4f 56 20 52 35 2c 23 30 0d 01 |... MOV R5,#0..| 00000300 b8 14 20 20 41 44 52 20 52 37 2c 61 64 6f 6c 6c |.. ADR R7,adoll| 00000310 61 72 0d 01 c2 10 20 20 4d 4f 56 20 52 31 34 2c |ar.... MOV R14,| 00000320 23 30 0d 01 cc 16 20 20 53 54 52 42 20 52 31 34 |#0.... STRB R14| 00000330 2c 5b 52 37 5d 2c 23 31 0d 01 d6 14 20 20 42 4c |,[R7],#1.... BL| 00000340 20 61 64 64 72 65 73 73 5f 61 6e 73 0d 01 e0 19 | address_ans....| 00000350 20 20 2e 6d 61 69 6e 5f 66 6f 72 5f 6c 6f 6f 70 | .main_for_loop| 00000360 69 66 79 73 32 0d 01 ea 17 20 20 20 20 4c 44 52 |ifys2.... LDR| 00000370 42 20 52 36 2c 5b 52 38 2c 52 35 5d 0d 01 f4 17 |B R6,[R8,R5]....| 00000380 20 20 20 20 53 54 52 42 20 52 36 2c 5b 52 37 2c | STRB R6,[R7,| 00000390 52 35 5d 0d 01 fe 12 20 20 20 20 43 4d 50 20 52 |R5].... CMP R| 000003a0 36 2c 23 31 30 0d 02 08 14 20 20 20 20 41 44 44 |6,#10.... ADD| 000003b0 20 52 35 2c 52 35 2c 23 31 0d 02 12 1c 20 20 42 | R5,R5,#1.... B| 000003c0 4e 45 20 6d 61 69 6e 5f 66 6f 72 5f 6c 6f 6f 70 |NE main_for_loop| 000003d0 69 66 79 73 32 0d 02 1c 04 0d 02 26 16 20 20 42 |ifys2......&. B| 000003e0 4c 20 67 65 74 5f 61 64 64 72 65 73 73 65 73 0d |L get_addresses.| 000003f0 02 30 10 20 20 4d 4f 56 20 52 31 34 2c 23 30 0d |.0. MOV R14,#0.| 00000400 02 3a 13 20 20 53 54 52 42 20 52 31 34 2c 5b 52 |.:. STRB R14,[R| 00000410 30 5d 0d 02 44 10 20 20 4d 4f 56 20 52 31 34 2c |0]..D. MOV R14,| 00000420 23 31 0d 02 4e 16 20 20 53 54 52 42 20 52 31 34 |#1..N. STRB R14| 00000430 2c 5b 52 30 2c 23 31 5d 0d 02 58 10 20 20 4d 4f |,[R0,#1]..X. MO| 00000440 56 20 52 31 34 2c 23 30 0d 02 62 0f 20 20 4d 4f |V R14,#0..b. MO| 00000450 56 20 52 35 2c 23 32 0d 02 6c 1a 20 20 2e 6d 61 |V R5,#2..l. .ma| 00000460 69 6e 5f 66 6f 72 5f 6c 6f 6f 70 69 66 79 73 63 |in_for_loopifysc| 00000470 31 0d 02 76 18 20 20 20 20 53 54 52 42 20 52 31 |1..v. STRB R1| 00000480 34 2c 5b 52 30 2c 52 35 5d 0d 02 80 14 20 20 20 |4,[R0,R5].... | 00000490 20 41 44 44 20 52 35 2c 52 35 2c 23 31 0d 02 8a | ADD R5,R5,#1...| 000004a0 15 20 20 20 20 43 4d 50 20 52 35 2c 23 61 63 63 |. CMP R5,#acc| 000004b0 32 25 0d 02 94 1d 20 20 42 4e 45 20 6d 61 69 6e |2%.... BNE main| 000004c0 5f 66 6f 72 5f 6c 6f 6f 70 69 66 79 73 63 31 0d |_for_loopifysc1.| 000004d0 02 9e 11 20 20 4d 4f 56 20 52 31 34 2c 23 31 30 |... MOV R14,#10| 000004e0 0d 02 a8 16 20 20 53 54 52 42 20 52 31 34 2c 5b |.... STRB R14,[| 000004f0 52 30 2c 52 35 5d 0d 02 b2 04 0d 02 bc 1e 20 20 |R0,R5]........ | 00000500 53 57 49 20 22 4f 53 5f 52 65 61 64 45 73 63 61 |SWI "OS_ReadEsca| 00000510 70 65 53 74 61 74 65 22 0d 02 c6 17 20 20 4c 44 |peState".... LD| 00000520 4d 43 53 46 44 20 52 31 33 21 2c 7b 50 43 7d 0d |MCSFD R13!,{PC}.| 00000530 02 d0 04 0d 02 da 12 20 20 41 44 44 20 52 33 2c |....... ADD R3,| 00000540 52 33 2c 23 31 0d 02 e4 3b 20 20 53 54 4d 46 44 |R3,#1...; STMFD| 00000550 20 52 31 33 21 2c 7b 52 30 7d 3a 4c 44 52 20 52 | R13!,{R0}:LDR R| 00000560 30 2c 53 56 49 54 3a 43 4d 50 20 52 33 2c 52 30 |0,SVIT:CMP R3,R0| 00000570 3a 4c 44 4d 46 44 20 52 31 33 21 2c 7b 52 30 7d |:LDMFD R13!,{R0}| 00000580 0d 02 ee 1a 42 4c 45 20 6d 61 69 6e 5f 66 6f 72 |....BLE main_for| 00000590 5f 6c 6f 6f 70 69 66 79 73 31 0d 02 f8 04 0d 03 |_loopifys1......| 000005a0 02 13 4c 44 4d 46 44 20 52 31 33 21 2c 7b 50 43 |..LDMFD R13!,{PC| 000005b0 7d 0d 03 0c 04 0d 03 16 0c 2e 62 75 66 66 65 72 |}.........buffer| 000005c0 32 0d 03 20 0e a4 42 79 74 65 73 28 33 32 29 0d |2.. ..Bytes(32).| 000005d0 03 2a 04 0d 03 34 0c 2e 61 64 6f 6c 6c 61 72 0d |.*...4..adollar.| 000005e0 03 3e 15 a4 42 79 74 65 73 28 61 63 63 75 72 61 |.>..Bytes(accura| 000005f0 63 79 25 29 0d 03 48 05 3a 0d 03 52 05 3a 0d 03 |cy%)..H.:..R.:..| 00000600 5c 1f 2e 6e 75 6d 62 65 72 74 6f 73 61 6d 73 74 |\..numbertosamst| 00000610 72 69 6e 67 66 61 63 74 6f 72 69 61 6c 0d 03 66 |ringfactorial..f| 00000620 14 53 54 4d 46 44 20 52 31 33 21 2c 7b 52 31 34 |.STMFD R13!,{R14| 00000630 7d 0d 03 70 16 53 54 4d 46 44 20 52 31 33 21 2c |}..p.STMFD R13!,| 00000640 7b 52 30 2d 52 39 7d 0d 03 7a 05 3a 0d 03 84 0d |{R0-R9}..z.:....| 00000650 4d 4f 56 20 52 39 2c 52 31 0d 03 8e 04 0d 03 98 |MOV R9,R1.......| 00000660 0d 4d 4f 56 20 52 30 2c 52 33 0d 03 a2 11 41 44 |.MOV R0,R3....AD| 00000670 52 20 52 31 2c 62 75 66 66 65 72 0d 03 ac 0e 4d |R R1,buffer....M| 00000680 4f 56 20 52 32 2c 23 33 32 0d 03 b6 1d 53 57 49 |OV R2,#32....SWI| 00000690 20 22 4f 53 5f 43 6f 6e 76 65 72 74 43 61 72 64 | "OS_ConvertCard| 000006a0 69 6e 61 6c 34 22 0d 03 c0 0d 4d 4f 56 20 52 36 |inal4"....MOV R6| 000006b0 2c 23 31 0d 03 ca 14 2e 6e 74 73 66 6f 72 5f 6c |,#1.....ntsfor_l| 000006c0 6f 6f 70 69 66 79 31 0d 03 d4 15 20 20 4c 44 52 |oopify1.... LDR| 000006d0 42 20 52 35 2c 5b 52 30 5d 2c 23 31 0d 03 de 17 |B R5,[R0],#1....| 000006e0 20 20 53 55 42 20 52 35 2c 52 35 2c 23 97 28 22 | SUB R5,R5,#.("| 000006f0 30 22 29 0d 03 e8 15 20 20 53 54 52 42 20 52 35 |0").... STRB R5| 00000700 2c 5b 52 39 2c 52 36 5d 0d 03 f2 12 20 20 41 44 |,[R9,R6].... AD| 00000710 44 20 52 36 2c 52 36 2c 23 31 0d 03 fc 0f 20 20 |D R6,R6,#1.... | 00000720 43 4d 50 20 52 30 2c 52 31 0d 04 06 17 42 4c 45 |CMP R0,R1....BLE| 00000730 20 6e 74 73 66 6f 72 5f 6c 6f 6f 70 69 66 79 31 | ntsfor_loopify1| 00000740 0d 04 10 0f 4d 4f 56 20 52 31 34 2c 23 31 30 0d |....MOV R14,#10.| 00000750 04 1a 10 53 55 42 20 52 36 2c 52 36 2c 23 31 0d |...SUB R6,R6,#1.| 00000760 04 24 14 53 54 52 42 20 52 31 34 2c 5b 52 39 2c |.$.STRB R14,[R9,| 00000770 52 36 5d 0d 04 2e 05 3a 0d 04 38 16 4c 44 4d 46 |R6]....:..8.LDMF| 00000780 44 20 52 31 33 21 2c 7b 52 30 2d 52 39 7d 0d 04 |D R13!,{R0-R9}..| 00000790 42 13 4c 44 4d 46 44 20 52 31 33 21 2c 7b 50 43 |B.LDMFD R13!,{PC| 000007a0 7d 0d 04 4c 0b 2e 62 75 66 66 65 72 0d 04 56 0e |}..L..buffer..V.| 000007b0 a4 42 79 74 65 73 28 33 32 29 0d 04 60 05 3a 0d |.Bytes(32)..`.:.| 000007c0 04 6a 05 3a 0d 04 74 0b 2e 64 69 76 72 65 73 0d |.j.:..t..divres.| 000007d0 04 7e 0a 45 51 55 44 20 30 0d 04 88 0b 2e 6d 6f |.~.EQUD 0.....mo| 000007e0 64 72 65 73 0d 04 92 0a 45 51 55 44 20 30 0d 04 |dres....EQUD 0..| 000007f0 9c 04 0d 04 a6 19 2e 62 65 67 69 6e 5f 6d 75 6c |.......begin_mul| 00000800 74 69 70 6c 69 63 61 74 69 6f 6e 0d 04 b0 14 53 |tiplication....S| 00000810 54 4d 46 44 20 52 31 33 21 2c 7b 52 31 34 7d 0d |TMFD R13!,{R14}.| 00000820 04 ba 17 53 54 4d 46 44 20 52 31 33 21 2c 7b 52 |...STMFD R13!,{R| 00000830 30 2d 52 31 32 7d 0d 04 c4 04 0d 04 ce 04 0d 04 |0-R12}..........| 00000840 d8 24 5c 66 69 6e 64 20 65 6e 64 20 6f 66 20 6f |.$\find end of o| 00000850 70 65 72 61 6e 64 31 20 80 20 6f 70 65 72 61 6e |perand1 . operan| 00000860 64 32 0d 04 e2 04 0d 04 ec 0d 4d 4f 56 20 52 33 |d2........MOV R3| 00000870 2c 52 30 0d 04 f6 0d 4d 4f 56 20 52 35 2c 23 30 |,R0....MOV R5,#0| 00000880 0d 05 00 13 2e 6c 6f 6f 70 5f 67 65 74 5f 65 6e |.....loop_get_en| 00000890 64 31 42 0d 05 0a 15 20 20 4c 44 52 42 20 52 34 |d1B.... LDRB R4| 000008a0 2c 5b 52 33 5d 2c 23 31 0d 05 14 12 20 20 41 44 |,[R3],#1.... AD| 000008b0 44 20 52 35 2c 52 35 2c 23 31 0d 05 1e 10 20 20 |D R5,R5,#1.... | 000008c0 43 4d 50 20 52 34 2c 23 31 30 0d 05 28 16 42 4e |CMP R4,#10..(.BN| 000008d0 45 20 6c 6f 6f 70 5f 67 65 74 5f 65 6e 64 31 42 |E loop_get_end1B| 000008e0 0d 05 32 04 0d 05 3c 0d 4d 4f 56 20 52 33 2c 52 |..2...<.MOV R3,R| 000008f0 31 0d 05 46 0d 4d 4f 56 20 52 36 2c 23 30 0d 05 |1..F.MOV R6,#0..| 00000900 50 13 2e 6c 6f 6f 70 5f 67 65 74 5f 65 6e 64 32 |P..loop_get_end2| 00000910 42 0d 05 5a 15 20 20 4c 44 52 42 20 52 34 2c 5b |B..Z. LDRB R4,[| 00000920 52 33 5d 2c 23 31 0d 05 64 12 20 20 41 44 44 20 |R3],#1..d. ADD | 00000930 52 36 2c 52 36 2c 23 31 0d 05 6e 10 20 20 43 4d |R6,R6,#1..n. CM| 00000940 50 20 52 34 2c 23 31 30 0d 05 78 16 42 4e 45 20 |P R4,#10..x.BNE | 00000950 6c 6f 6f 70 5f 67 65 74 5f 65 6e 64 32 42 0d 05 |loop_get_end2B..| 00000960 82 04 0d 05 8c 42 5c a9 47 54 48 20 ca 20 4f 50 |.....B\.GTH . OP| 00000970 45 52 41 4e 44 20 31 20 49 53 20 52 45 54 55 52 |ERAND 1 IS RETUR| 00000980 4e 45 44 20 49 4e 20 52 35 2c 20 a9 47 54 48 20 |NED IN R5, .GTH | 00000990 ca 20 4f 50 45 52 41 4e 44 20 32 20 49 53 20 49 |. OPERAND 2 IS I| 000009a0 4e 20 52 36 0d 05 96 04 0d 05 a0 31 41 44 44 20 |N R6.......1ADD | 000009b0 52 37 2c 52 35 2c 52 36 20 20 20 20 20 20 20 20 |R7,R5,R6 | 000009c0 20 20 20 20 20 5c 43 4f 4e 54 41 49 4e 53 20 b8 | \CONTAINS .| 000009d0 54 41 4c 20 a9 47 54 48 53 0d 05 aa 04 0d 05 b4 |TAL .GTHS.......| 000009e0 2b 5c 52 45 47 49 53 54 45 52 53 20 41 56 41 49 |+\REGISTERS AVAI| 000009f0 4c 41 42 4c 45 20 3d 20 52 33 2c 52 34 2c 52 38 |LABLE = R3,R4,R8| 00000a00 2d 52 31 32 2c 52 31 34 0d 05 be 04 0d 05 c8 1e |-R12,R14........| 00000a10 5c 73 74 72 75 63 74 75 72 65 20 46 6f 72 2e 2e |\structure For..| 00000a20 6e 65 78 74 20 6c 6f 6f 70 2d 0d 05 d2 04 0d 05 |next loop-......| 00000a30 dc 0d 4d 4f 56 20 52 33 2c 23 30 0d 05 e6 0d 4d |..MOV R3,#0....M| 00000a40 4f 56 20 52 34 2c 52 32 0d 05 f0 1f 53 55 42 20 |OV R4,R2....SUB | 00000a50 52 31 34 2c 52 37 2c 23 31 20 5c 4c 4f 4f 50 20 |R14,R7,#1 \LOOP | 00000a60 43 4f 55 4e 54 45 52 0d 05 fa 11 2e 66 6f 72 5f |COUNTER.....for_| 00000a70 6c 6f 6f 70 69 66 79 31 0d 06 04 15 20 20 53 54 |loopify1.... ST| 00000a80 52 42 20 52 33 2c 5b 52 34 5d 2c 23 31 0d 06 0e |RB R3,[R4],#1...| 00000a90 15 20 20 53 55 42 53 20 52 31 34 2c 52 31 34 2c |. SUBS R14,R14,| 00000aa0 23 31 0d 06 18 14 42 4e 45 20 66 6f 72 5f 6c 6f |#1....BNE for_lo| 00000ab0 6f 70 69 66 79 31 0d 06 22 0e 4d 4f 56 20 52 33 |opify1..".MOV R3| 00000ac0 2c 23 31 30 0d 06 2c 10 53 55 42 20 52 34 2c 52 |,#10..,.SUB R4,R| 00000ad0 34 2c 23 31 0d 06 36 10 53 54 52 42 20 52 33 2c |4,#1..6.STRB R3,| 00000ae0 5b 52 34 5d 0d 06 40 10 41 44 44 20 52 34 2c 52 |[R4]..@.ADD R4,R| 00000af0 34 2c 23 31 0d 06 4a 04 0d 06 54 26 53 55 42 20 |4,#1..J...T&SUB | 00000b00 52 31 31 2c 52 36 2c 23 32 20 20 20 5c 4c 4f 4f |R11,R6,#2 \LOO| 00000b10 50 20 43 4f 55 4e 54 45 52 20 28 4a 25 29 0d 06 |P COUNTER (J%)..| 00000b20 5e 11 2e 66 6f 72 5f 6c 6f 6f 70 69 66 79 32 0d |^..for_loopify2.| 00000b30 06 68 12 20 20 4d 4f 56 20 63 61 72 72 79 2c 23 |.h. MOV carry,#| 00000b40 30 0d 06 72 21 20 20 4c 44 52 42 20 52 33 2c 5b |0..r! LDRB R3,[| 00000b50 52 31 2c 52 31 31 5d 20 20 5c 47 25 3d 42 25 3f |R1,R11] \G%=B%?| 00000b60 4a 25 0d 06 7c 13 20 20 41 44 44 20 52 34 2c 52 |J%..|. ADD R4,R| 00000b70 32 2c 52 31 31 0d 06 86 1f 20 20 41 44 44 20 52 |2,R11.... ADD R| 00000b80 34 2c 52 34 2c 23 31 20 20 5c 56 25 3d 44 25 2b |4,R4,#1 \V%=D%+| 00000b90 4a 25 2b 31 0d 06 90 26 20 20 53 55 42 20 52 31 |J%+1...& SUB R1| 00000ba0 30 2c 52 35 2c 23 32 20 5c 4c 4f 4f 50 20 43 4f |0,R5,#2 \LOOP CO| 00000bb0 55 4e 54 45 52 20 28 4c 25 29 0d 06 9a 13 20 20 |UNTER (L%).... | 00000bc0 2e 66 6f 72 5f 6c 6f 6f 70 69 66 79 33 0d 06 a4 |.for_loopify3...| 00000bd0 22 20 20 20 20 4c 44 52 42 20 52 39 2c 5b 52 30 |" LDRB R9,[R0| 00000be0 2c 52 31 30 5d 20 5c 48 25 3d 41 25 3f 4c 25 0d |,R10] \H%=A%?L%.| 00000bf0 06 ae 15 20 20 20 20 4d 55 4c 20 52 31 34 2c 52 |... MUL R14,R| 00000c00 33 2c 52 39 0d 06 b8 19 20 20 20 20 41 44 44 20 |3,R9.... ADD | 00000c10 52 31 34 2c 52 31 34 2c 63 61 72 72 79 0d 06 c2 |R14,R14,carry...| 00000c20 17 20 20 20 20 53 54 4d 46 44 20 52 31 33 21 2c |. STMFD R13!,| 00000c30 7b 52 38 7d 0d 06 cc 18 20 20 20 20 4c 44 52 42 |{R8}.... LDRB| 00000c40 20 52 38 2c 5b 52 34 2c 52 31 30 5d 0d 06 d6 16 | R8,[R4,R10]....| 00000c50 20 20 20 20 41 44 44 20 52 31 34 2c 52 31 34 2c | ADD R14,R14,| 00000c60 52 38 0d 06 e0 04 0d 06 ea 20 20 20 20 20 5c 41 |R8....... \A| 00000c70 53 53 45 4d 42 4c 45 20 83 20 80 20 81 20 46 55 |SSEMBLE . . . FU| 00000c80 4e 43 54 49 4f 4e 0d 06 f4 1a 20 20 20 20 53 54 |NCTION.... ST| 00000c90 4d 46 44 20 52 31 33 21 2c 7b 52 30 2d 52 36 7d |MFD R13!,{R0-R6}| 00000ca0 0d 06 fe 12 20 20 20 20 4d 4f 56 20 52 30 2c 52 |.... MOV R0,R| 00000cb0 31 34 0d 07 08 12 20 20 20 20 4d 4f 56 20 52 31 |14.... MOV R1| 00000cc0 2c 23 31 30 0d 07 12 17 20 20 20 20 80 53 20 52 |,#10.... .S R| 00000cd0 36 2c 52 30 2c 23 31 3c 3c 33 31 0d 07 1c 16 20 |6,R0,#1<<31.... | 00000ce0 20 20 20 52 53 42 4d 49 20 52 30 2c 52 30 2c 23 | RSBMI R0,R0,#| 00000cf0 30 0d 07 26 12 20 20 20 20 82 20 52 35 2c 52 36 |0..&. . R5,R6| 00000d00 2c 52 31 0d 07 30 11 20 20 20 20 43 4d 50 20 52 |,R1..0. CMP R| 00000d10 31 2c 23 30 0d 07 3a 16 20 20 20 20 52 53 42 4d |1,#0..:. RSBM| 00000d20 49 20 52 31 2c 52 31 2c 23 30 0d 07 44 04 0d 07 |I R1,R1,#0..D...| 00000d30 4e 11 20 20 20 20 4d 4f 56 20 52 32 2c 23 30 0d |N. MOV R2,#0.| 00000d40 07 58 11 20 20 20 20 4d 4f 56 20 52 33 2c 23 30 |.X. MOV R3,#0| 00000d50 0d 07 62 15 20 20 20 20 4d 4f 56 20 52 34 2c 23 |..b. MOV R4,#| 00000d60 31 3c 3c 33 31 0d 07 6c 04 0d 07 76 16 20 20 20 |1<<31..l...v. | 00000d70 20 2e 64 69 76 69 73 69 6f 6e 5f 6c 6f 6f 70 0d | .division_loop.| 00000d80 07 80 18 20 20 20 20 4d 4f 56 53 20 52 30 2c 52 |... MOVS R0,R| 00000d90 30 2c 41 53 4c 23 31 0d 07 8a 14 20 20 20 20 41 |0,ASL#1.... A| 00000da0 44 43 20 52 32 2c 52 32 2c 52 32 0d 07 94 11 20 |DC R2,R2,R2.... | 00000db0 20 20 20 43 4d 50 20 52 32 2c 52 31 0d 07 9e 16 | CMP R2,R1....| 00000dc0 20 20 20 20 53 55 42 47 45 20 52 32 2c 52 32 2c | SUBGE R2,R2,| 00000dd0 52 31 0d 07 a8 15 20 20 20 20 84 52 47 45 20 52 |R1.... .RGE R| 00000de0 33 2c 52 33 2c 52 34 0d 07 b2 18 20 20 20 20 4d |3,R3,R4.... M| 00000df0 4f 56 53 20 52 34 2c 52 34 2c 4c 53 52 23 31 0d |OVS R4,R4,LSR#1.| 00000e00 07 bc 19 20 20 20 20 42 4e 45 20 64 69 76 69 73 |... BNE divis| 00000e10 69 6f 6e 5f 6c 6f 6f 70 0d 07 c6 04 0d 07 d0 11 |ion_loop........| 00000e20 20 20 20 20 43 4d 50 20 52 35 2c 23 30 0d 07 da | CMP R5,#0...| 00000e30 16 20 20 20 20 52 53 42 4d 49 20 52 33 2c 52 33 |. RSBMI R3,R3| 00000e40 2c 23 30 0d 07 e4 11 20 20 20 20 43 4d 50 20 52 |,#0.... CMP R| 00000e50 36 2c 23 30 0d 07 ee 16 20 20 20 20 52 53 42 4d |6,#0.... RSBM| 00000e60 49 20 52 32 2c 52 32 2c 23 30 0d 07 f8 04 0d 08 |I R2,R2,#0......| 00000e70 02 16 20 20 20 20 53 54 52 20 52 33 2c 64 69 76 |.. STR R3,div| 00000e80 72 65 73 32 0d 08 0c 16 20 20 20 20 53 54 52 20 |res2.... STR | 00000e90 52 32 2c 6d 6f 64 72 65 73 32 0d 08 16 04 0d 08 |R2,modres2......| 00000ea0 20 1a 20 20 20 20 4c 44 4d 46 44 20 52 31 33 21 | . LDMFD R13!| 00000eb0 2c 7b 52 30 2d 52 36 7d 0d 08 2a 04 0d 08 34 16 |,{R0-R6}..*...4.| 00000ec0 20 20 20 20 4c 44 52 20 52 38 2c 6d 6f 64 72 65 | LDR R8,modre| 00000ed0 73 32 0d 08 3e 27 20 20 20 20 53 54 52 42 20 52 |s2..>' STRB R| 00000ee0 38 2c 5b 52 34 2c 52 31 30 5d 20 20 20 20 20 5c |8,[R4,R10] \| 00000ef0 e3 4d 45 52 4c 59 20 52 38 0d 08 48 17 20 20 20 |.MERLY R8..H. | 00000f00 20 4c 44 4d 46 44 20 52 31 33 21 2c 7b 52 38 7d | LDMFD R13!,{R8}| 00000f10 0d 08 52 16 20 20 20 20 4c 44 52 20 52 38 2c 64 |..R. LDR R8,d| 00000f20 69 76 72 65 73 32 0d 08 5c 17 20 20 20 20 53 55 |ivres2..\. SU| 00000f30 42 53 20 52 31 30 2c 52 31 30 2c 23 31 0d 08 66 |BS R10,R10,#1..f| 00000f40 16 20 20 42 4e 45 20 66 6f 72 5f 6c 6f 6f 70 69 |. BNE for_loopi| 00000f50 66 79 33 0d 08 70 16 20 20 53 54 52 42 20 52 38 |fy3..p. STRB R8| 00000f60 2c 5b 52 34 2c 52 31 30 5d 0d 08 7a 15 20 20 53 |,[R4,R10]..z. S| 00000f70 55 42 53 20 52 31 31 2c 52 31 31 2c 23 31 0d 08 |UBS R11,R11,#1..| 00000f80 84 14 42 4e 45 20 66 6f 72 5f 6c 6f 6f 70 69 66 |..BNE for_loopif| 00000f90 79 32 0d 08 8e 04 0d 08 98 17 42 4c 20 52 65 6d |y2........BL Rem| 00000fa0 6f 76 65 5f 4c 65 61 64 69 6e 67 30 73 0d 08 a2 |ove_Leading0s...| 00000fb0 04 0d 08 ac 17 4c 44 4d 46 44 20 52 31 33 21 2c |.....LDMFD R13!,| 00000fc0 7b 52 30 2d 52 31 32 7d 0d 08 b6 13 4c 44 4d 46 |{R0-R12}....LDMF| 00000fd0 44 20 52 31 33 21 2c 7b 50 43 7d 0d 08 c0 04 0d |D R13!,{PC}.....| 00000fe0 08 ca 0c 2e 64 69 76 72 65 73 32 0d 08 d4 0a 45 |....divres2....E| 00000ff0 51 55 44 20 30 0d 08 de 0c 2e 6d 6f 64 72 65 73 |QUD 0.....modres| 00001000 32 0d 08 e8 04 0d 08 f2 0c 2e 64 69 76 72 65 73 |2.........divres| 00001010 33 0d 08 fc 0a 45 51 55 44 20 30 0d 09 06 0c 2e |3....EQUD 0.....| 00001020 6d 6f 64 72 65 73 33 0d 09 10 0a 45 51 55 44 20 |modres3....EQUD | 00001030 30 0d 09 1a 04 0d 09 24 04 0d 09 2e 15 2e 52 65 |0......$......Re| 00001040 6d 6f 76 65 5f 4c 65 61 64 69 6e 67 30 73 0d 09 |move_Leading0s..| 00001050 38 14 53 54 4d 46 44 20 52 31 33 21 2c 7b 52 31 |8.STMFD R13!,{R1| 00001060 34 7d 0d 09 42 05 3a 0d 09 4c 0d 4d 4f 56 20 52 |4}..B.:..L.MOV R| 00001070 34 2c 23 30 0d 09 56 12 2e 6c 6f 6f 70 5f 72 65 |4,#0..V..loop_re| 00001080 6d 6f 76 65 30 73 0d 09 60 13 4c 44 52 42 20 52 |move0s..`.LDRB R| 00001090 35 2c 5b 52 32 2c 52 34 5d 0d 09 6a 0d 43 4d 50 |5,[R2,R4]..j.CMP| 000010a0 20 52 35 2c 23 30 0d 09 74 12 41 44 44 45 51 20 | R5,#0..t.ADDEQ | 000010b0 52 34 2c 52 34 2c 23 31 0d 09 7e 15 42 45 51 20 |R4,R4,#1..~.BEQ | 000010c0 6c 6f 6f 70 5f 72 65 6d 6f 76 65 30 73 0d 09 88 |loop_remove0s...| 000010d0 04 0d 09 92 11 41 44 52 20 52 36 2c 61 6e 73 77 |.....ADR R6,answ| 000010e0 65 72 0d 09 9c 0d 4d 4f 56 20 52 37 2c 23 30 0d |er....MOV R7,#0.| 000010f0 09 a6 15 2e 6c 6f 6f 70 5f 73 77 61 70 5f 73 74 |....loop_swap_st| 00001100 72 69 6e 67 0d 09 b0 13 4c 44 52 42 20 52 35 2c |ring....LDRB R5,| 00001110 5b 52 32 2c 52 34 5d 0d 09 ba 13 53 54 52 42 20 |[R2,R4]....STRB | 00001120 52 35 2c 5b 52 36 2c 52 37 5d 0d 09 c4 10 41 44 |R5,[R6,R7]....AD| 00001130 44 20 52 34 2c 52 34 2c 23 31 0d 09 ce 10 41 44 |D R4,R4,#1....AD| 00001140 44 20 52 37 2c 52 37 2c 23 31 0d 09 d8 0e 43 4d |D R7,R7,#1....CM| 00001150 50 20 52 35 2c 23 31 30 0d 09 e2 18 42 4e 45 20 |P R5,#10....BNE | 00001160 6c 6f 6f 70 5f 73 77 61 70 5f 73 74 72 69 6e 67 |loop_swap_string| 00001170 0d 09 ec 04 0d 09 f6 04 0d 0a 00 05 3a 0d 0a 0a |............:...| 00001180 13 4c 44 4d 46 44 20 52 31 33 21 2c 7b 50 43 7d |.LDMFD R13!,{PC}| 00001190 0d 0a 14 04 0d 0a 1e 10 2e 61 64 64 72 65 73 73 |.........address| 000011a0 5f 61 6e 73 0d 0a 28 14 53 54 4d 46 44 20 52 31 |_ans..(.STMFD R1| 000011b0 33 21 2c 7b 52 31 34 7d 0d 0a 32 11 41 44 52 20 |3!,{R14}..2.ADR | 000011c0 52 38 2c 61 6e 73 77 65 72 0d 0a 3c 13 4c 44 4d |R8,answer..<.LDM| 000011d0 46 44 20 52 31 33 21 2c 7b 50 43 7d 0d 0a 46 0b |FD R13!,{PC}..F.| 000011e0 2e 61 6e 73 77 65 72 0d 0a 50 15 a4 42 79 74 65 |.answer..P..Byte| 000011f0 73 28 61 63 63 75 72 61 63 79 25 29 0d 0a 5a 04 |s(accuracy%)..Z.| 00001200 0d 0a 64 04 0d 0a 6e 12 2e 67 65 74 5f 61 64 64 |..d...n..get_add| 00001210 72 65 73 73 65 73 0d 0a 78 14 53 54 4d 46 44 20 |resses..x.STMFD | 00001220 52 31 33 21 2c 7b 52 31 34 7d 0d 0a 82 13 41 44 |R13!,{R14}....AD| 00001230 52 20 52 30 2c 6f 70 65 72 61 6e 64 31 0d 0a 8c |R R0,operand1...| 00001240 0b 42 20 6e 65 78 74 31 0d 0a 96 0d 2e 6f 70 65 |.B next1.....ope| 00001250 72 61 6e 64 31 0d 0a a0 15 a4 42 79 74 65 73 28 |rand1.....Bytes(| 00001260 61 63 63 75 72 61 63 79 25 29 0d 0a aa 0a 2e 6e |accuracy%).....n| 00001270 65 78 74 31 0d 0a b4 13 41 44 52 20 52 31 2c 6f |ext1....ADR R1,o| 00001280 70 65 72 61 6e 64 32 0d 0a be 0b 42 20 6e 65 78 |perand2....B nex| 00001290 74 32 0d 0a c8 0d 2e 6f 70 65 72 61 6e 64 32 0d |t2.....operand2.| 000012a0 0a d2 15 a4 42 79 74 65 73 28 61 63 63 75 72 61 |....Bytes(accura| 000012b0 63 79 25 29 0d 0a dc 0a 2e 6e 65 78 74 32 0d 0a |cy%).....next2..| 000012c0 e6 11 41 44 52 20 52 32 2c 72 65 73 75 6c 74 0d |..ADR R2,result.| 000012d0 0a f0 0b 42 20 6e 65 78 74 33 0d 0a fa 0b 2e 72 |...B next3.....r| 000012e0 65 73 75 6c 74 0d 0b 04 15 a4 42 79 74 65 73 28 |esult.....Bytes(| 000012f0 61 63 63 75 72 61 63 79 25 29 0d 0b 0e 0a 2e 6e |accuracy%).....n| 00001300 65 78 74 33 0d 0b 18 14 41 44 52 20 52 31 32 2c |ext3....ADR R12,| 00001310 65 5f 73 6f 5f 66 61 72 0d 0b 22 13 4c 44 4d 46 |e_so_far..".LDMF| 00001320 44 20 52 31 33 21 2c 7b 50 43 7d 0d 0b 2c 0d 2e |D R13!,{PC}..,..| 00001330 65 5f 73 6f 5f 66 61 72 0d 0b 36 15 a4 42 79 74 |e_so_far..6..Byt| 00001340 65 73 28 61 63 63 75 72 61 63 79 25 29 0d 0b 40 |es(accuracy%)..@| 00001350 05 3a 0d 0b 4a 05 3a 0d 0b 54 0b 2e 66 69 6c 6c |.:..J.:..T..fill| 00001360 5f 65 0d 0b 5e 14 53 54 4d 46 44 20 52 31 33 21 |_e..^.STMFD R13!| 00001370 2c 7b 52 31 34 7d 0d 0b 68 05 3a 0d 0b 72 0d 4d |,{R14}..h.:..r.M| 00001380 4f 56 20 52 35 2c 23 30 0d 0b 7c 0d 4d 4f 56 20 |OV R5,#0..|.MOV | 00001390 52 36 2c 23 30 0d 0b 86 10 2e 6c 6f 6f 70 5f 66 |R6,#0.....loop_f| 000013a0 69 6c 6c 5f 65 0d 0b 90 16 20 20 53 54 52 42 20 |ill_e.... STRB | 000013b0 52 35 2c 5b 52 31 32 2c 52 36 5d 0d 0b 9a 12 20 |R5,[R12,R6].... | 000013c0 20 41 44 44 20 52 36 2c 52 36 2c 23 31 0d 0b a4 | ADD R6,R6,#1...| 000013d0 18 20 20 43 4d 50 20 52 36 2c 23 61 63 63 75 72 |. CMP R6,#accur| 000013e0 61 63 79 32 25 0d 0b ae 13 42 4e 45 20 6c 6f 6f |acy2%....BNE loo| 000013f0 70 5f 66 69 6c 6c 5f 65 0d 0b b8 0e 4d 4f 56 20 |p_fill_e....MOV | 00001400 52 35 2c 23 31 30 0d 0b c2 10 53 55 42 20 52 36 |R5,#10....SUB R6| 00001410 2c 52 36 2c 23 31 0d 0b cc 14 53 54 52 42 20 52 |,R6,#1....STRB R| 00001420 35 2c 5b 52 31 32 2c 52 36 5d 0d 0b d6 05 3a 0d |5,[R12,R6]....:.| 00001430 0b e0 13 4c 44 4d 46 44 20 52 31 33 21 2c 7b 50 |...LDMFD R13!,{P| 00001440 43 7d 0d 0b ea 04 0d 0b f4 05 5d 0d 0b fe 05 ed |C}........].....| 00001450 0d 0c 08 05 3a 0d 0c 12 0e 53 56 49 54 21 30 3d |....:....SVIT!0=| 00001460 69 74 25 0d 0c 1c 18 f1 20 22 43 61 6c 63 75 6c |it%..... "Calcul| 00001470 61 74 69 6e 67 2e 2e 2e 2e 2e 22 0d 0c 26 13 d6 |ating....."..&..| 00001480 20 46 61 63 74 6f 72 69 61 6c 6c 69 66 79 0d 0c | Factoriallify..| 00001490 30 04 0d 0c 3a 14 f4 20 2a 53 50 4f 4f 4c 20 45 |0...:.. *SPOOL E| 000014a0 5f 46 49 4c 45 33 0d 0c 44 07 20 20 f1 0d 0c 4e |_FILE3..D. ...N| 000014b0 07 20 20 f1 0d 0c 58 13 20 20 f1 20 69 74 25 3b |. ...X. . it%;| 000014c0 22 21 20 3d 20 22 3b 0d 0c 62 09 20 20 41 3d 30 |"! = ";..b. A=0| 000014d0 0d 0c 6c 07 20 20 f5 0d 0c 76 17 20 20 20 20 f1 |..l. ...v. .| 000014e0 20 c3 28 61 64 6f 6c 6c 61 72 3f 41 29 3b 0d 0c | .(adollar?A);..| 000014f0 80 0c 20 20 20 20 41 2b 3d 31 0d 0c 8a 16 20 20 |.. A+=1.... | 00001500 fd 20 28 61 64 6f 6c 6c 61 72 3f 41 29 3d 31 30 |. (adollar?A)=10| 00001510 0d 0c 94 0c f4 20 2a 53 50 4f 4f 4c 0d 0c 9e 04 |..... *SPOOL....| 00001520 0d 0c a8 05 e0 0d 0c b2 05 3a 0d 0c bc 11 dd a4 |.........:......| 00001530 42 79 74 65 73 28 69 6e 63 25 29 0d 0c c6 0c 50 |Bytes(inc%)....P| 00001540 25 2b 3d 69 6e 63 25 0d 0c d0 06 3d 30 0d 0c da |%+=inc%....=0...| 00001550 05 3a 0d ff |.:..| 00001554