home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 1 / ARM_CLUB_CD.iso / contents / apps / fractal / progs / booker / Library / Assembler / C
Unknown  |  1991-10-31  |  29.8 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text


This file was not able to be converted.
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert Truevision Targa Graphic (image/tga) magic Supported
100% file data default
100% xdgMime image/x-tga default (weak)



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0d 00 0a 41 f4 20 20 3e | 3c 42 61 73 69 63 56 5f |...A. >|<BasicV_|
|00000010| 41 73 73 65 6d 62 6c 65 | 72 24 4c 69 62 3e 2e 43 |Assemble|r$Lib>.C|
|00000020| 20 20 3a 20 20 52 45 4d | 20 20 4c 69 62 72 61 72 | : REM| Librar|
|00000030| 79 20 72 6f 75 74 69 6e | 65 73 2e 20 76 30 2e 31 |y routin|es. v0.1|
|00000040| 30 0d 00 14 1b f4 20 20 | 4d 41 43 48 49 4e 45 3a |0..... |MACHINE:|
|00000050| 20 20 41 72 63 68 69 6d | 65 64 65 73 0d 00 1e 1c | Archim|edes....|
|00000060| f4 20 20 4c 41 4e 47 55 | 41 47 45 3a 20 42 42 43 |. LANGU|AGE: BBC|
|00000070| 20 42 41 53 49 43 20 56 | 0d 00 28 1b f4 20 20 41 | BASIC V|..(.. A|
|00000080| 55 54 48 4f 52 3a 20 20 | 20 43 79 20 42 6f 6f 6b |UTHOR: | Cy Book|
|00000090| 65 72 2c 0d 00 32 47 f4 | 20 20 20 20 20 20 20 20 |er,..2G.| |
|000000a0| 20 20 20 20 38 36 20 43 | 68 75 72 63 68 20 56 69 | 86 C|hurch Vi|
|000000b0| 65 77 2c 20 4d 61 69 6e | 20 52 6f 61 64 2c 20 43 |ew, Main| Road, C|
|000000c0| 72 6f 63 6b 65 6e 68 69 | 6c 6c 2c 20 53 77 61 6e |rockenhi|ll, Swan|
|000000d0| 6c 65 79 2c 20 4b 65 6e | 74 2e 0d 00 3c 18 f4 20 |ley, Ken|t...<.. |
|000000e0| 20 20 20 20 20 20 20 20 | 20 20 20 42 52 38 20 38 | | BR8 8|
|000000f0| 4a 57 0d 00 46 05 f4 0d | 00 50 10 f4 20 20 52 4f |JW..F...|.P.. RO|
|00000100| 55 54 49 4e 45 53 3a 0d | 00 5a 0c f4 20 20 20 61 |UTINES:.|.Z.. a|
|00000110| 74 6f 69 0d 00 64 0c f4 | 20 20 20 69 74 6f 61 0d |toi..d..| itoa.|
|00000120| 00 6e 0e f4 20 20 20 6d | 65 6d 63 70 79 0d 00 78 |.n.. m|emcpy..x|
|00000130| 0f f4 20 20 20 6d 65 6d | 6d 6f 76 65 0d 00 82 1b |.. mem|move....|
|00000140| f4 20 20 20 6d 65 6d 66 | 69 6c 6c 20 20 20 20 20 |. memf|ill |
|00000150| 20 20 20 20 20 20 5c 0d | 00 8c 26 f4 20 20 20 6d | \.|..&. m|
|00000160| 65 6d 66 69 6c 6c 5f 64 | 69 66 66 20 20 20 20 20 |emfill_d|iff |
|00000170| 20 2f 20 55 6e 73 74 61 | 6e 64 61 72 64 0d 00 96 | / Unsta|ndard...|
|00000180| 0e f4 20 20 20 6d 65 6d | 73 65 74 0d 00 a0 0f f4 |.. mem|set.....|
|00000190| 20 20 20 73 74 72 63 63 | 61 74 0d 00 aa 0e f4 20 | strcc|at..... |
|000001a0| 20 20 73 74 72 63 68 72 | 0d 00 b4 0e f4 20 20 20 | strchr|..... |
|000001b0| 73 74 72 63 6d 70 0d 00 | be 0e f4 20 20 20 73 74 |strcmp..|... st|
|000001c0| 72 63 70 79 0d 00 c8 0d | f4 20 20 20 73 74 72 65 |rcpy....|. stre|
|000001d0| 71 0d 00 d2 0f f4 20 20 | 20 73 74 72 69 63 6d 70 |q..... | stricmp|
|000001e0| 0d 00 dc 0e f4 20 20 20 | 73 74 72 6c 65 6e 0d 00 |..... |strlen..|
|000001f0| e6 14 f4 20 20 20 73 74 | 72 6e 63 61 74 5f 69 74 |... st|rncat_it|
|00000200| 6f 61 0d 00 f0 0f f4 20 | 20 20 73 74 72 6e 63 61 |oa..... | strnca|
|00000210| 74 0d 00 fa 10 f4 20 20 | 20 73 74 72 6e 63 63 61 |t..... | strncca|
|00000220| 74 0d 01 04 10 f4 20 20 | 20 73 74 72 6e 63 61 74 |t..... | strncat|
|00000230| 6e 0d 01 0e 0f f4 20 20 | 20 73 74 72 6e 63 70 79 |n..... | strncpy|
|00000240| 0d 01 18 08 f4 20 20 3a | 0d 01 22 11 f4 20 20 20 |..... :|..".. |
|00000250| 57 69 6d 70 53 74 72 45 | 71 0d 01 2c 12 f4 20 20 |WimpStrE|q..,.. |
|00000260| 20 57 69 6d 70 53 74 72 | 4c 65 6e 0d 01 36 13 f4 | WimpStr|Len..6..|
|00000270| 20 20 20 57 69 6d 70 53 | 74 72 4e 43 70 79 0d 01 | WimpS|trNCpy..|
|00000280| 40 08 f4 20 20 3a 0d 01 | 4a 11 f4 20 20 45 58 54 |@.. :..|J.. EXT|
|00000290| 45 52 4e 41 4c 53 3a 0d | 01 54 0f f4 20 20 20 28 |ERNALS:.|.T.. (|
|000002a0| 6e 6f 6e 65 29 2e 0d 01 | 5e 08 f4 20 20 3a 0d 01 |none)...|^.. :..|
|000002b0| 68 0d f4 20 20 4e 4f 54 | 45 53 3a 0d 01 72 49 f4 |h.. NOT|ES:..rI.|
|000002c0| 20 20 20 46 6f 72 20 61 | 6c 6c 20 43 20 66 75 6e | For a|ll C fun|
|000002d0| 74 69 6f 6e 73 2c 20 74 | 68 65 20 6c 65 6e 67 74 |tions, t|he lengt|
|000002e0| 68 73 20 61 72 65 20 7a | 65 72 6f 2b 2e 20 20 41 |hs are z|ero+. A|
|000002f0| 20 76 61 6c 75 65 20 6f | 66 20 7a 65 72 6f 20 6d | value o|f zero m|
|00000300| 65 61 6e 73 0d 01 7c 48 | f4 20 20 20 74 68 65 20 |eans..|H|. the |
|00000310| 73 74 72 69 6e 67 20 63 | 61 6e 20 6f 6e 6c 79 20 |string c|an only |
|00000320| 63 6f 6e 73 69 73 74 20 | 6f 66 20 74 68 65 20 7a |consist |of the z|
|00000330| 65 72 6f 20 62 79 74 65 | 20 74 65 72 6d 69 6e 61 |ero byte| termina|
|00000340| 74 6f 72 2e 20 41 20 76 | 61 6c 75 65 0d 01 86 43 |tor. A v|alue...C|
|00000350| f4 20 20 20 6f 66 20 6f | 6e 65 20 6d 65 61 6e 73 |. of o|ne means|
|00000360| 20 74 68 61 74 20 6f 6e | 6c 79 20 6f 6e 65 20 6e | that on|ly one n|
|00000370| 6f 6e 2d 7a 65 72 6f 20 | 63 68 61 72 61 63 74 65 |on-zero |characte|
|00000380| 72 20 65 78 69 73 74 73 | 2c 20 65 74 63 2e 2e 0d |r exists|, etc...|
|00000390| 01 90 05 f4 0d 01 9a 46 | f4 20 20 20 46 6f 72 20 |.......F|. For |
|000003a0| 61 6c 6c 20 57 69 6d 70 | 20 73 74 72 69 6e 67 20 |all Wimp| string |
|000003b0| 66 75 6e 63 74 69 6f 6e | 73 2c 20 74 68 65 20 73 |function|s, the s|
|000003c0| 74 72 69 6e 67 20 69 73 | 20 74 65 72 6d 69 6e 61 |tring is| termina|
|000003d0| 74 65 64 20 62 79 20 41 | 4e 59 0d 01 a4 46 f4 20 |ted by A|NY...F. |
|000003e0| 20 20 63 68 61 72 61 63 | 74 65 72 20 30 20 3c 3d | charac|ter 0 <=|
|000003f0| 20 63 20 3c 20 33 32 2e | 20 20 4e 6f 74 65 20 74 | c < 32.| Note t|
|00000400| 68 61 74 20 61 6e 79 20 | 63 6f 64 65 20 74 68 61 |hat any |code tha|
|00000410| 74 20 63 72 65 61 74 65 | 73 20 61 20 77 69 6d 70 |t create|s a wimp|
|00000420| 0d 01 ae 22 f4 20 20 20 | 73 74 72 69 6e 67 20 61 |...". |string a|
|00000430| 6c 77 61 79 73 20 75 73 | 65 73 20 63 20 3d 3d 20 |lways us|es c == |
|00000440| 30 2e 0d 01 b8 05 f4 0d | 01 c2 48 f4 20 20 20 46 |0.......|..H. F|
|00000450| 6f 72 20 61 6c 6c 20 57 | 69 6d 70 20 73 74 72 69 |or all W|imp stri|
|00000460| 6e 67 20 66 75 6e 63 74 | 69 6f 6e 73 2c 20 74 68 |ng funct|ions, th|
|00000470| 65 20 6c 65 6e 67 74 68 | 73 20 61 72 65 20 61 6c |e length|s are al|
|00000480| 6c 20 6f 6e 65 2b 2e 20 | 20 49 66 20 74 68 65 0d |l one+. | If the.|
|00000490| 01 cc 44 f4 20 20 20 73 | 74 72 69 6e 67 20 69 73 |..D. s|tring is|
|000004a0| 20 65 78 61 63 74 6c 79 | 20 3c 6c 65 6e 67 74 68 | exactly| <length|
|000004b0| 3e 20 63 68 61 72 61 63 | 74 65 72 73 2c 20 74 68 |> charac|ters, th|
|000004c0| 65 6e 20 6e 6f 20 74 65 | 72 6d 69 6e 61 74 6f 72 |en no te|rminator|
|000004d0| 20 69 73 0d 01 d6 22 f4 | 20 20 20 61 70 70 65 6e | is...".| appen|
|000004e0| 64 65 64 2e 20 20 53 6f | 20 62 65 20 63 61 72 65 |ded. So| be care|
|000004f0| 66 75 6c 6c 21 0d 01 e0 | 08 f4 20 20 3a 0d 01 ea |full!...|.. :...|
|00000500| 0f f4 20 20 55 50 44 41 | 54 45 53 3a 0d 01 f4 23 |.. UPDA|TES:...#|
|00000510| f4 20 32 35 2e 30 32 2e | 31 39 39 31 20 43 4a 42 |. 25.02.|1991 CJB|
|00000520| 20 41 64 64 65 64 20 73 | 74 72 6e 63 61 74 6e 0d | Added s|trncatn.|
|00000530| 01 fe 48 f4 20 32 37 2e | 30 32 2e 31 39 39 31 20 |..H. 27.|02.1991 |
|00000540| 43 4a 42 20 41 64 64 65 | 64 20 73 74 72 63 68 72 |CJB Adde|d strchr|
|00000550| 2c 20 73 74 72 63 63 61 | 74 2c 20 73 74 72 6e 63 |, strcca|t, strnc|
|00000560| 63 61 74 2c 20 69 74 6f | 61 2c 20 61 74 6f 69 2c |cat, ito|a, atoi,|
|00000570| 20 73 74 72 6c 65 6e 0d | 02 08 48 f4 20 32 38 2e | strlen.|..H. 28.|
|00000580| 30 32 2e 31 39 39 31 20 | 43 4a 42 20 73 74 72 6c |02.1991 |CJB strl|
|00000590| 65 6e 20 77 61 73 20 72 | 65 74 75 72 6e 69 6e 67 |en was r|eturning|
|000005a0| 20 6e 65 67 61 74 69 76 | 65 20 76 61 6c 75 65 73 | negativ|e values|
|000005b0| 21 2c 20 73 74 72 6e 63 | 61 74 5f 69 74 6f 61 0d |!, strnc|at_itoa.|
|000005c0| 02 12 22 f4 20 31 30 2e | 30 33 2e 31 39 39 31 20 |..". 10.|03.1991 |
|000005d0| 43 4a 42 20 73 74 72 63 | 61 74 2c 20 73 74 72 65 |CJB strc|at, stre|
|000005e0| 71 0d 02 1c 37 f4 20 31 | 34 2e 30 33 2e 31 39 39 |q...7. 1|4.03.199|
|000005f0| 31 20 43 4a 42 20 57 69 | 6d 70 53 74 72 45 71 2c |1 CJB Wi|mpStrEq,|
|00000600| 20 57 69 6d 70 53 74 72 | 4e 43 70 79 2c 20 57 69 | WimpStr|NCpy, Wi|
|00000610| 6d 70 53 74 72 4c 65 6e | 0d 02 26 29 f4 20 31 36 |mpStrLen|..&). 16|
|00000620| 2e 30 33 2e 31 39 39 31 | 20 43 4a 42 20 57 69 6d |.03.1991| CJB Wim|
|00000630| 70 53 74 72 45 71 20 6e | 6f 77 20 77 6f 72 6b 73 |pStrEq n|ow works|
|00000640| 21 0d 02 30 38 f4 20 33 | 30 2e 30 33 2e 31 39 39 |!..08. 3|0.03.199|
|00000650| 31 20 43 4a 42 20 6d 65 | 6d 73 65 74 20 2d 20 41 |1 CJB me|mset - A|
|00000660| 4e 53 49 20 43 20 22 73 | 74 61 6e 64 61 72 64 22 |NSI C "s|tandard"|
|00000670| 20 76 65 72 73 69 6f 6e | 2e 0d 02 3a 3b f4 20 31 | version|...:;. 1|
|00000680| 38 2e 30 35 2e 31 39 39 | 31 20 43 4a 42 20 6d 65 |8.05.199|1 CJB me|
|00000690| 6d 73 65 74 20 6e 6f 77 | 20 77 6f 72 6b 73 20 2d |mset now| works -|
|000006a0| 20 69 74 20 77 61 73 20 | 6d 65 67 61 20 62 75 67 | it was |mega bug|
|000006b0| 67 65 64 2e 0d 02 44 4b | f4 20 32 36 2e 31 30 2e |ged...DK|. 26.10.|
|000006c0| 31 39 39 31 20 43 4a 42 | 20 46 61 73 74 65 72 20 |1991 CJB| Faster |
|000006d0| 6d 65 6d 63 70 79 28 29 | 2c 20 6d 65 6d 73 65 74 |memcpy()|, memset|
|000006e0| 28 29 20 61 6e 64 20 6e | 65 77 20 6d 65 6d 6d 6f |() and n|ew memmo|
|000006f0| 76 65 28 29 2c 20 73 74 | 72 69 63 6d 70 28 29 0d |ve(), st|ricmp().|
|00000700| 02 4e 3b f4 20 33 31 2e | 31 30 2e 31 39 39 31 20 |.N;. 31.|10.1991 |
|00000710| 43 4a 42 20 41 64 64 65 | 64 20 73 74 70 63 61 74 |CJB Adde|d stpcat|
|00000720| 28 29 2c 20 66 69 78 65 | 64 20 62 75 67 20 69 6e |(), fixe|d bug in|
|00000730| 20 73 74 72 69 63 6d 70 | 28 29 0d 02 58 05 3a 0d | stricmp|()..X.:.|
|00000740| 02 62 1b dd 20 a4 5f 43 | 5f 76 65 72 73 69 6f 6e |.b.. ._C|_version|
|00000750| 20 20 3a 20 20 3d 20 30 | 31 30 0d 02 6c 05 3a 0d | : = 0|10..l.:.|
|00000760| 02 76 19 dd 20 a4 5f 68 | 61 72 64 5f 69 6e 69 74 |.v.. ._h|ard_init|
|00000770| 69 61 6c 69 73 65 5f 43 | 0d 02 80 07 ea 20 85 0d |ialise_C|..... ..|
|00000780| 02 8a 31 ee 20 85 20 ea | 20 f7 20 85 20 20 3a 20 |..1. . .| . . : |
|00000790| 20 f2 5f 65 28 20 22 25 | 2e 43 3a 20 68 61 72 64 | ._e( "%|.C: hard|
|000007a0| 5f 69 6e 69 74 69 61 6c | 69 73 65 5f 43 22 20 29 |_initial|ise_C" )|
|000007b0| 0d 02 94 22 20 20 e7 20 | a4 5f 4c 69 62 48 61 6e |..." . |._LibHan|
|000007c0| 64 6c 65 72 5f 76 65 72 | 73 69 6f 6e 3c 30 31 31 |dler_ver|sion<011|
|000007d0| 20 8c 0d 02 9e 36 20 20 | 20 20 85 20 30 2c 20 22 | ....6 | . 0, "|
|000007e0| 25 2e 43 20 6e 65 65 64 | 73 20 61 20 6c 61 74 65 |%.C need|s a late|
|000007f0| 72 20 76 65 72 73 69 6f | 6e 20 6f 66 20 4c 69 62 |r versio|n of Lib|
|00000800| 48 61 6e 64 6c 65 72 22 | 0d 02 a8 07 20 20 cd 0d |Handler"|.... ..|
|00000810| 02 b2 07 3d 20 30 0d 02 | bc 05 3a 0d 02 c6 05 f4 |...= 0..|..:.....|
|00000820| 0d 02 d0 05 3a 0d 02 da | 4b f4 2d 2d 2d 2d 2d 2d |....:...|K.------|
|00000830| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000840| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000850| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000860| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000870| 0d 02 e4 05 f4 0d 02 ee | 2e f4 20 20 20 20 20 49 |........|.. I|
|00000880| 4e 20 20 20 20 20 20 52 | 30 20 5e 3d 20 5a 65 72 |N R|0 ^= Zer|
|00000890| 6f 20 74 65 72 6d 69 6e | 61 74 65 64 20 73 74 72 |o termin|ated str|
|000008a0| 69 6e 67 0d 02 f8 2d f4 | 20 20 20 20 20 20 20 20 |ing...-.| |
|000008b0| 20 20 20 20 20 52 31 20 | 3d 3d 20 53 69 67 6e 65 | R1 |== Signe|
|000008c0| 64 20 33 32 2d 62 69 74 | 20 69 6e 74 65 67 65 72 |d 32-bit| integer|
|000008d0| 0d 03 02 39 f4 20 20 20 | 20 20 20 20 20 20 20 20 |...9. | |
|000008e0| 20 20 52 32 20 3d 3d 20 | 4c 65 6e 67 74 68 20 6f | R2 == |Length o|
|000008f0| 66 20 64 65 73 74 69 6e | 61 74 69 6f 6e 20 62 75 |f destin|ation bu|
|00000900| 66 66 65 72 20 2d 20 31 | 2c 0d 03 0c 35 f4 20 20 |ffer - 1|,...5. |
|00000910| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000920| 20 55 6e 73 69 67 6e 65 | 64 20 33 32 2d 62 69 74 | Unsigne|d 32-bit|
|00000930| 20 69 6e 74 65 67 65 72 | 20 28 3e 3d 30 29 0d 03 | integer| (>=0)..|
|00000940| 16 48 f4 20 20 20 20 20 | 4f 55 54 20 20 20 20 20 |.H. |OUT |
|00000950| 5b 52 30 5d 20 3c 2d 2d | 20 41 53 43 49 49 20 73 |[R0] <--| ASCII s|
|00000960| 74 72 69 6e 67 20 6f 66 | 20 52 31 20 69 73 20 61 |tring of| R1 is a|
|00000970| 70 70 65 6e 64 65 64 2c | 20 6c 69 6d 69 74 65 64 |ppended,| limited|
|00000980| 20 62 79 20 52 32 0d 03 | 20 16 f4 20 20 20 20 20 | by R2..| .. |
|00000990| 42 41 44 20 20 20 20 20 | 6c 69 6e 6b 0d 03 2a 16 |BAD |link..*.|
|000009a0| f4 20 20 20 20 20 46 4c | 41 47 53 20 20 20 4c 69 |. FL|AGS Li|
|000009b0| 6e 6b 0d 03 34 1d dd 20 | a4 5f 61 73 73 65 6d 62 |nk..4.. |._assemb|
|000009c0| 6c 65 5f 73 74 72 6e 63 | 61 74 5f 69 74 6f 61 0d |le_strnc|at_itoa.|
|000009d0| 03 3e 07 ea 20 85 0d 03 | 48 35 ee 20 85 20 ea 20 |.>.. ...|H5. . . |
|000009e0| f7 20 85 20 20 3a 20 20 | f2 5f 65 28 20 22 25 2e |. . : |._e( "%.|
|000009f0| 43 3a 20 61 73 73 65 6d | 62 6c 65 5f 73 74 72 6e |C: assem|ble_strn|
|00000a00| 63 61 74 5f 69 74 6f 61 | 22 20 29 0d 03 52 22 20 |cat_itoa|" )..R" |
|00000a10| 20 f2 5f 61 73 73 65 6d | 62 6c 65 5f 6c 69 62 72 | ._assem|ble_libr|
|00000a20| 61 72 79 28 20 22 69 74 | 6f 61 22 20 29 0d 03 5c |ary( "it|oa" )..\|
|00000a30| 25 20 20 f2 5f 61 73 73 | 65 6d 62 6c 65 5f 6c 69 |% ._ass|emble_li|
|00000a40| 62 72 61 72 79 28 20 22 | 73 74 72 6e 63 61 74 22 |brary( "|strncat"|
|00000a50| 20 29 0d 03 66 0e 5b 4f | 50 54 20 70 61 73 73 25 | )..f.[O|PT pass%|
|00000a60| 0d 03 70 11 20 20 20 20 | 20 20 20 20 41 4c 49 47 |..p. | ALIG|
|00000a70| 4e 0d 03 7a 11 2e 73 74 | 72 6e 63 61 74 5f 69 74 |N..z..st|rncat_it|
|00000a80| 6f 61 0d 03 84 28 20 20 | 20 20 20 20 20 20 53 54 |oa...( | ST|
|00000a90| 4d 46 44 20 20 20 28 73 | 70 29 21 2c 20 7b 52 30 |MFD (s|p)!, {R0|
|00000aa0| 2d 52 31 2c 20 6c 69 6e | 6b 7d 0d 03 8e 20 20 20 |-R1, lin|k}... |
|00000ab0| 20 20 20 20 20 20 53 55 | 42 20 20 20 20 20 73 70 | SU|B sp|
|00000ac0| 2c 20 73 70 2c 20 23 26 | 31 30 0d 03 98 1a 20 20 |, sp, #&|10.... |
|00000ad0| 20 20 20 20 20 20 4d 4f | 56 20 20 20 20 20 52 30 | MO|V R0|
|00000ae0| 2c 20 73 70 0d 03 a2 18 | 20 20 20 20 20 20 20 20 |, sp....| |
|00000af0| 42 4c 20 20 20 20 20 20 | 69 74 6f 61 0d 03 ac 1a |BL |itoa....|
|00000b00| 20 20 20 20 20 20 20 20 | 4d 4f 56 20 20 20 20 20 | |MOV |
|00000b10| 52 31 2c 20 73 70 0d 03 | b6 22 20 20 20 20 20 20 |R1, sp..|." |
|00000b20| 20 20 4c 44 52 20 20 20 | 20 20 52 30 2c 20 5b 73 | LDR | R0, [s|
|00000b30| 70 2c 20 23 26 31 30 5d | 0d 03 c0 1b 20 20 20 20 |p, #&10]|.... |
|00000b40| 20 20 20 20 42 4c 20 20 | 20 20 20 20 73 74 72 6e | BL | strn|
|00000b50| 63 61 74 0d 03 ca 20 20 | 20 20 20 20 20 20 20 41 |cat... | A|
|00000b60| 44 44 20 20 20 20 20 73 | 70 2c 20 73 70 2c 20 23 |DD s|p, sp, #|
|00000b70| 26 31 34 0d 03 d4 24 20 | 20 20 20 20 20 20 20 4c |&14...$ | L|
|00000b80| 44 4d 46 44 20 20 20 28 | 73 70 29 21 2c 20 7b 52 |DMFD (|sp)!, {R|
|00000b90| 31 2c 20 70 63 7d 5e 0d | 03 de 05 5d 0d 03 e8 07 |1, pc}^.|...]....|
|00000ba0| 3d 20 30 0d 03 f2 05 3a | 0d 03 fc 4b f4 2d 2d 2d |= 0....:|...K.---|
|00000bb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000bc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000bd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000be0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000bf0| 2d 2d 2d 0d 04 06 05 f4 | 0d 04 10 41 f4 20 20 20 |---.....|...A. |
|00000c00| 20 20 49 4e 20 20 20 20 | 20 20 52 30 20 5e 3d 20 | IN | R0 ^= |
|00000c10| 42 75 66 66 65 72 20 66 | 6f 72 20 6f 75 74 70 75 |Buffer f|or outpu|
|00000c20| 74 2c 20 61 74 20 6c 65 | 61 73 74 20 31 32 20 63 |t, at le|ast 12 c|
|00000c30| 68 61 72 61 63 74 65 72 | 73 0d 04 1a 2d f4 20 20 |haracter|s...-. |
|00000c40| 20 20 20 20 20 20 20 20 | 20 20 20 52 31 20 3d 3d | | R1 ==|
|00000c50| 20 53 69 67 6e 65 64 20 | 33 32 2d 62 69 74 20 69 | Signed |32-bit i|
|00000c60| 6e 74 65 67 65 72 0d 04 | 24 37 f4 20 20 20 20 20 |nteger..|$7. |
|00000c70| 4f 55 54 20 20 20 20 20 | 5b 52 30 5d 20 3c 2d 2d |OUT |[R0] <--|
|00000c80| 20 4e 75 6c 6c 20 74 65 | 72 6d 69 6e 61 74 65 64 | Null te|rminated|
|00000c90| 20 73 74 72 69 6e 67 20 | 6f 66 20 52 31 0d 04 2e | string |of R1...|
|00000ca0| 18 f4 20 20 20 20 20 42 | 41 44 20 20 20 20 20 28 |.. B|AD (|
|00000cb0| 6e 6f 6e 65 29 0d 04 38 | 16 f4 20 20 20 20 20 46 |none)..8|.. F|
|00000cc0| 4c 41 47 53 20 20 20 4c | 69 6e 6b 0d 04 42 15 dd |LAGS L|ink..B..|
|00000cd0| 20 a4 5f 61 73 73 65 6d | 62 6c 65 5f 69 74 6f 61 | ._assem|ble_itoa|
|00000ce0| 0d 04 4c 07 ea 20 85 0d | 04 56 2d ee 20 85 20 ea |..L.. ..|.V-. . .|
|00000cf0| 20 f7 20 85 20 20 3a 20 | 20 f2 5f 65 28 20 22 25 | . . : | ._e( "%|
|00000d00| 2e 43 3a 20 61 73 73 65 | 6d 62 6c 65 5f 69 74 6f |.C: asse|mble_ito|
|00000d10| 61 22 20 29 0d 04 60 0e | 5b 4f 50 54 20 70 61 73 |a" )..`.|[OPT pas|
|00000d20| 73 25 0d 04 6a 11 20 20 | 20 20 20 20 20 20 41 4c |s%..j. | AL|
|00000d30| 49 47 4e 0d 04 74 09 2e | 69 74 6f 61 0d 04 7e 22 |IGN..t..|itoa..~"|
|00000d40| 20 20 20 20 20 20 20 20 | 53 54 4d 46 44 20 20 20 | |STMFD |
|00000d50| 28 73 70 29 21 2c 20 7b | 52 30 2d 52 32 7d 0d 04 |(sp)!, {|R0-R2}..|
|00000d60| 88 1a 20 20 20 20 20 20 | 20 20 4d 4f 56 20 20 20 |.. | MOV |
|00000d70| 20 20 52 32 2c 20 52 30 | 0d 04 92 1a 20 20 20 20 | R2, R0|.... |
|00000d80| 20 20 20 20 4d 4f 56 20 | 20 20 20 20 52 30 2c 20 | MOV | R0, |
|00000d90| 52 31 0d 04 9c 1a 20 20 | 20 20 20 20 20 20 4d 4f |R1.... | MO|
|00000da0| 56 20 20 20 20 20 52 31 | 2c 20 52 32 0d 04 a6 1b |V R1|, R2....|
|00000db0| 20 20 20 20 20 20 20 20 | 4d 4f 56 20 20 20 20 20 | |MOV |
|00000dc0| 52 32 2c 20 23 31 32 0d | 04 b0 29 20 20 20 20 20 |R2, #12.|..) |
|00000dd0| 20 20 20 53 57 49 20 20 | 20 20 20 22 58 4f 53 5f | SWI | "XOS_|
|00000de0| 43 6f 6e 76 65 72 74 49 | 6e 74 65 67 65 72 34 22 |ConvertI|nteger4"|
|00000df0| 0d 04 ba 22 20 20 20 20 | 20 20 20 20 4c 44 4d 46 |..." | LDMF|
|00000e00| 44 20 20 20 28 73 70 29 | 21 2c 20 7b 52 30 2d 52 |D (sp)|!, {R0-R|
|00000e10| 32 7d 0d 04 c4 1c 20 20 | 20 20 20 20 20 20 4d 4f |2}.... | MO|
|00000e20| 56 53 20 20 20 20 70 63 | 2c 20 6c 69 6e 6b 0d 04 |VS pc|, link..|
|00000e30| ce 05 5d 0d 04 d8 07 3d | 20 30 0d 04 e2 05 3a 0d |..]....=| 0....:.|
|00000e40| 04 ec 4b f4 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..K.----|--------|
|00000e50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000e60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000e70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000e80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 04 f6 05 f4 0d |--------|--......|
|00000e90| 05 00 48 f4 20 20 20 20 | 20 49 4e 20 20 20 20 20 |..H. | IN |
|00000ea0| 20 52 30 20 5e 3d 20 5a | 65 72 6f 20 74 65 72 6d | R0 ^= Z|ero term|
|00000eb0| 69 6e 61 74 65 64 20 74 | 65 78 74 20 66 6f 72 20 |inated t|ext for |
|00000ec0| 75 6e 73 69 67 6e 65 64 | 20 33 32 2d 62 69 74 20 |unsigned| 32-bit |
|00000ed0| 69 6e 74 65 67 65 72 0d | 05 0a 1e f4 20 20 20 20 |integer.|.... |
|00000ee0| 20 4f 55 54 20 20 20 20 | 20 52 30 20 3c 2d 2d 20 | OUT | R0 <-- |
|00000ef0| 56 61 6c 75 65 0d 05 14 | 18 f4 20 20 20 20 20 42 |Value...|.. B|
|00000f00| 41 44 20 20 20 20 20 28 | 6e 6f 6e 65 29 0d 05 1e |AD (|none)...|
|00000f10| 16 f4 20 20 20 20 20 46 | 4c 41 47 53 20 20 20 4c |.. F|LAGS L|
|00000f20| 69 6e 6b 0d 05 28 15 dd | 20 a4 5f 61 73 73 65 6d |ink..(..| ._assem|
|00000f30| 62 6c 65 5f 61 74 6f 69 | 0d 05 32 07 ea 20 85 0d |ble_atoi|..2.. ..|
|00000f40| 05 3c 2d ee 20 85 20 ea | 20 f7 20 85 20 20 3a 20 |.<-. . .| . . : |
|00000f50| 20 f2 5f 65 28 20 22 25 | 2e 43 3a 20 61 73 73 65 | ._e( "%|.C: asse|
|00000f60| 6d 62 6c 65 5f 61 74 6f | 69 22 20 29 0d 05 46 0e |mble_ato|i" )..F.|
|00000f70| 5b 4f 50 54 20 70 61 73 | 73 25 0d 05 50 11 20 20 |[OPT pas|s%..P. |
|00000f80| 20 20 20 20 20 20 41 4c | 49 47 4e 0d 05 5a 09 2e | AL|IGN..Z..|
|00000f90| 61 74 6f 69 0d 05 64 22 | 20 20 20 20 20 20 20 20 |atoi..d"| |
|00000fa0| 53 54 4d 46 44 20 20 20 | 28 73 70 29 21 2c 20 7b |STMFD |(sp)!, {|
|00000fb0| 52 31 2d 52 32 7d 0d 05 | 6e 1a 20 20 20 20 20 20 |R1-R2}..|n. |
|00000fc0| 20 20 4d 4f 56 20 20 20 | 20 20 52 31 2c 20 52 30 | MOV | R1, R0|
|00000fd0| 0d 05 78 1b 20 20 20 20 | 20 20 20 20 4d 4f 56 20 |..x. | MOV |
|00000fe0| 20 20 20 20 52 30 2c 20 | 23 31 30 0d 05 82 26 20 | R0, |#10...& |
|00000ff0| 20 20 20 20 20 20 20 53 | 57 49 20 20 20 20 20 22 | S|WI "|
|00001000| 58 4f 53 5f 52 65 61 64 | 55 6e 73 69 67 6e 65 64 |XOS_Read|Unsigned|
|00001010| 22 0d 05 8c 1a 20 20 20 | 20 20 20 20 20 4d 4f 56 |".... | MOV|
|00001020| 20 20 20 20 20 52 30 2c | 20 52 32 0d 05 96 22 20 | R0,| R2..." |
|00001030| 20 20 20 20 20 20 20 4c | 44 4d 46 44 20 20 20 28 | L|DMFD (|
|00001040| 73 70 29 21 2c 20 7b 52 | 31 2d 52 32 7d 0d 05 a0 |sp)!, {R|1-R2}...|
|00001050| 1c 20 20 20 20 20 20 20 | 20 4d 4f 56 53 20 20 20 |. | MOVS |
|00001060| 20 70 63 2c 20 6c 69 6e | 6b 0d 05 aa 05 5d 0d 05 | pc, lin|k....]..|
|00001070| b4 07 3d 20 30 0d 05 be | 05 3a 0d 05 c8 4b f4 2d |..= 0...|.:...K.-|
|00001080| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001090| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000010a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000010b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000010c0| 2d 2d 2d 2d 2d 0d 05 d2 | 05 f4 0d 05 dc 2e f4 20 |-----...|....... |
|000010d0| 20 20 20 20 49 4e 20 20 | 20 20 20 20 52 30 20 5e | IN | R0 ^|
|000010e0| 3d 20 5a 65 72 6f 20 74 | 65 72 6d 69 6e 61 74 65 |= Zero t|erminate|
|000010f0| 64 20 73 74 72 69 6e 67 | 0d 05 e6 38 f4 20 20 20 |d string|...8. |
|00001100| 20 20 4f 55 54 20 20 20 | 20 20 52 30 20 3c 2d 2d | OUT | R0 <--|
|00001110| 20 4c 65 6e 67 74 68 20 | 6f 66 20 73 74 72 69 6e | Length |of strin|
|00001120| 67 20 5b 30 2c 20 26 46 | 46 46 46 46 46 46 46 5d |g [0, &F|FFFFFFF]|
|00001130| 0d 05 f0 18 f4 20 20 20 | 20 20 42 41 44 20 20 20 |..... | BAD |
|00001140| 20 20 28 6e 6f 6e 65 29 | 0d 05 fa 16 f4 20 20 20 | (none)|..... |
|00001150| 20 20 46 4c 41 47 53 20 | 20 20 4c 69 6e 6b 0d 06 | FLAGS | Link..|
|00001160| 04 17 dd 20 a4 5f 61 73 | 73 65 6d 62 6c 65 5f 73 |... ._as|semble_s|
|00001170| 74 72 6c 65 6e 0d 06 0e | 0a ea 20 6c 6f 6f 70 0d |trlen...|.. loop.|
|00001180| 06 18 07 ea 20 85 0d 06 | 22 2f ee 20 85 20 ea 20 |.... ...|"/. . . |
|00001190| f7 20 85 20 20 3a 20 20 | f2 5f 65 28 20 22 25 2e |. . : |._e( "%.|
|000011a0| 43 3a 20 61 73 73 65 6d | 62 6c 65 5f 73 74 72 6c |C: assem|ble_strl|
|000011b0| 65 6e 22 20 29 0d 06 2c | 0e 5b 4f 50 54 20 70 61 |en" )..,|.[OPT pa|
|000011c0| 73 73 25 0d 06 36 11 20 | 20 20 20 20 20 20 20 41 |ss%..6. | A|
|000011d0| 4c 49 47 4e 0d 06 40 0b | 2e 73 74 72 6c 65 6e 0d |LIGN..@.|.strlen.|
|000011e0| 06 4a 22 20 20 20 20 20 | 20 20 20 53 54 52 20 20 |.J" | STR |
|000011f0| 20 20 20 52 31 2c 20 5b | 73 70 2c 20 23 2d 34 5d | R1, [|sp, #-4]|
|00001200| 21 0d 06 54 22 20 20 20 | 20 20 20 20 20 53 54 52 |!..T" | STR|
|00001210| 20 20 20 20 20 52 30 2c | 20 5b 73 70 2c 20 23 2d | R0,| [sp, #-|
|00001220| 34 5d 21 0d 06 5e 09 2e | 6c 6f 6f 70 0d 06 68 20 |4]!..^..|loop..h |
|00001230| 20 20 20 20 20 20 20 20 | 4c 44 52 42 20 20 20 20 | |LDRB |
|00001240| 52 31 2c 20 5b 52 30 5d | 2c 20 23 31 0d 06 72 1a |R1, [R0]|, #1..r.|
|00001250| 20 20 20 20 20 20 20 20 | 54 45 51 20 20 20 20 20 | |TEQ |
|00001260| 52 31 2c 20 23 30 0d 06 | 7c 18 20 20 20 20 20 20 |R1, #0..||. |
|00001270| 20 20 42 4e 45 20 20 20 | 20 20 6c 6f 6f 70 0d 06 | BNE | loop..|
|00001280| 86 20 20 20 20 20 20 20 | 20 20 4c 44 52 20 20 20 |. | LDR |
|00001290| 20 20 52 31 2c 20 5b 73 | 70 5d 2c 20 23 34 0d 06 | R1, [s|p], #4..|
|000012a0| 90 1e 20 20 20 20 20 20 | 20 20 53 55 42 20 20 20 |.. | SUB |
|000012b0| 20 20 52 30 2c 20 52 30 | 2c 20 52 31 0d 06 9a 20 | R0, R0|, R1... |
|000012c0| 20 20 20 20 20 20 20 20 | 4c 44 52 20 20 20 20 20 | |LDR |
|000012d0| 52 31 2c 20 5b 73 70 5d | 2c 20 23 34 0d 06 a4 45 |R1, [sp]|, #4...E|
|000012e0| 20 20 20 20 20 20 20 20 | 53 55 42 20 20 20 20 20 | |SUB |
|000012f0| 52 30 2c 20 52 30 2c 20 | 23 31 20 20 20 20 20 20 |R0, R0, |#1 |
|00001300| 20 20 20 20 20 20 20 20 | 5c 20 49 67 6e 6f 72 65 | |\ Ignore|
|00001310| 20 7a 65 72 6f 20 74 65 | 72 6d 69 6e 61 74 6f 72 | zero te|rminator|
|00001320| 21 0d 06 ae 1c 20 20 20 | 20 20 20 20 20 4d 4f 56 |!.... | MOV|
|00001330| 53 20 20 20 20 70 63 2c | 20 6c 69 6e 6b 0d 06 b8 |S pc,| link...|
|00001340| 05 5d 0d 06 c2 07 3d 20 | 30 0d 06 cc 05 3a 0d 06 |.]....= |0....:..|
|00001350| d6 1b dd 20 a4 5f 61 73 | 73 65 6d 62 6c 65 5f 57 |... ._as|semble_W|
|00001360| 69 6d 70 53 74 72 4c 65 | 6e 0d 06 e0 0a ea 20 6c |impStrLe|n..... l|
|00001370| 6f 6f 70 0d 06 ea 07 ea | 20 85 0d 06 f4 33 ee 20 |oop.....| ....3. |
|00001380| 85 20 ea 20 f7 20 85 20 | 20 3a 20 20 f2 5f 65 28 |. . . . | : ._e(|
|00001390| 20 22 25 2e 43 3a 20 61 | 73 73 65 6d 62 6c 65 5f | "%.C: a|ssemble_|
|000013a0| 57 69 6d 70 53 74 72 4c | 65 6e 22 20 29 0d 06 fe |WimpStrL|en" )...|
|000013b0| 0e 5b 4f 50 54 20 70 61 | 73 73 25 0d 07 08 11 20 |.[OPT pa|ss%.... |
|000013c0| 20 20 20 20 20 20 20 41 | 4c 49 47 4e 0d 07 12 0f | A|LIGN....|
|000013d0| 2e 57 69 6d 70 53 74 72 | 4c 65 6e 0d 07 1c 22 20 |.WimpStr|Len..." |
|000013e0| 20 20 20 20 20 20 20 53 | 54 52 20 20 20 20 20 52 | S|TR R|
|000013f0| 31 2c 20 5b 73 70 2c 20 | 23 2d 34 5d 21 0d 07 26 |1, [sp, |#-4]!..&|
|00001400| 22 20 20 20 20 20 20 20 | 20 53 54 52 20 20 20 20 |" | STR |
|00001410| 20 52 30 2c 20 5b 73 70 | 2c 20 23 2d 34 5d 21 0d | R0, [sp|, #-4]!.|
|00001420| 07 30 09 2e 6c 6f 6f 70 | 0d 07 3a 20 20 20 20 20 |.0..loop|..: |
|00001430| 20 20 20 20 4c 44 52 42 | 20 20 20 20 52 31 2c 20 | LDRB| R1, |
|00001440| 5b 52 30 5d 2c 20 23 31 | 0d 07 44 1b 20 20 20 20 |[R0], #1|..D. |
|00001450| 20 20 20 20 43 4d 50 20 | 20 20 20 20 52 31 2c 20 | CMP | R1, |
|00001460| 23 33 32 0d 07 4e 18 20 | 20 20 20 20 20 20 20 42 |#32..N. | B|
|00001470| 48 53 20 20 20 20 20 6c | 6f 6f 70 0d 07 58 20 20 |HS l|oop..X |
|00001480| 20 20 20 20 20 20 20 4c | 44 52 20 20 20 20 20 52 | L|DR R|
|00001490| 31 2c 20 5b 73 70 5d 2c | 20 23 34 0d 07 62 1e 20 |1, [sp],| #4..b. |
|000014a0| 20 20 20 20 20 20 20 53 | 55 42 20 20 20 20 20 52 | S|UB R|
|000014b0| 30 2c 20 52 30 2c 20 52 | 31 0d 07 6c 20 20 20 20 |0, R0, R|1..l |
|000014c0| 20 20 20 20 20 4c 44 52 | 20 20 20 20 20 52 31 2c | LDR| R1,|
|000014d0| 20 5b 73 70 5d 2c 20 23 | 34 0d 07 76 40 20 20 20 | [sp], #|4..v@ |
|000014e0| 20 20 20 20 20 53 55 42 | 20 20 20 20 20 52 30 2c | SUB| R0,|
|000014f0| 20 52 30 2c 20 23 31 20 | 20 20 20 20 20 20 20 20 | R0, #1 | |
|00001500| 20 20 20 20 20 5c 20 49 | 67 6e 6f 72 65 20 74 65 | \ I|gnore te|
|00001510| 72 6d 69 6e 61 74 6f 72 | 21 0d 07 80 1c 20 20 20 |rminator|!.... |
|00001520| 20 20 20 20 20 4d 4f 56 | 53 20 20 20 20 70 63 2c | MOV|S pc,|
|00001530| 20 6c 69 6e 6b 0d 07 8a | 05 5d 0d 07 94 07 3d 20 | link...|.]....= |
|00001540| 30 0d 07 9e 05 3a 0d 07 | a8 4b f4 2d 2d 2d 2d 2d |0....:..|.K.-----|
|00001550| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001560| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001570| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001580| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001590| 2d 0d 07 b2 05 f4 0d 07 | bc 2e f4 20 20 20 20 20 |-.......|... |
|000015a0| 49 4e 20 20 20 20 20 20 | 52 30 20 5e 3d 20 5a 65 |IN |R0 ^= Ze|
|000015b0| 72 6f 20 74 65 72 6d 69 | 6e 61 74 65 64 20 73 74 |ro termi|nated st|
|000015c0| 72 69 6e 67 0d 07 c6 31 | f4 20 20 20 20 20 20 20 |ring...1|. |
|000015d0| 20 20 20 20 20 20 52 31 | 20 3d 3d 20 38 2d 62 69 | R1| == 8-bi|
|000015e0| 74 20 76 61 6c 75 65 20 | 74 6f 20 73 65 61 72 63 |t value |to searc|
|000015f0| 68 20 66 6f 72 0d 07 d0 | 1b f4 20 20 20 20 20 4f |h for...|.. O|
|00001600| 55 54 20 20 20 20 20 69 | 66 20 66 6f 75 6e 64 2c |UT i|f found,|
|00001610| 0d 07 da 40 f4 20 20 20 | 20 20 20 20 20 20 20 20 |...@. | |
|00001620| 20 20 20 20 20 20 20 20 | 20 20 52 30 20 3c 2d 2d | | R0 <--|
|00001630| 20 41 64 64 72 65 73 73 | 20 6a 75 73 74 20 41 46 | Address| just AF|
|00001640| 54 45 52 20 63 68 61 72 | 61 63 74 65 72 20 52 31 |TER char|acter R1|
|00001650| 0d 07 e4 16 f4 20 20 20 | 20 20 20 20 20 20 20 20 |..... | |
|00001660| 20 20 65 6c 73 65 0d 07 | ee 22 f4 20 20 20 20 20 | else..|.". |
|00001670| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001680| 52 30 20 3c 2d 2d 20 30 | 0d 07 f8 18 f4 20 20 20 |R0 <-- 0|..... |
|00001690| 20 20 42 41 44 20 20 20 | 20 20 28 6e 6f 6e 65 29 | BAD | (none)|
|000016a0| 0d 08 02 16 f4 20 20 20 | 20 20 46 4c 41 47 53 20 |..... | FLAGS |
|000016b0| 20 20 4c 69 6e 6b 0d 08 | 0c 17 dd 20 a4 5f 61 73 | Link..|... ._as|
|000016c0| 73 65 6d 62 6c 65 5f 73 | 74 72 63 68 72 0d 08 16 |semble_s|trchr...|
|000016d0| 0a ea 20 6c 6f 6f 70 0d | 08 20 07 ea 20 85 0d 08 |.. loop.|. .. ...|
|000016e0| 2a 2f ee 20 85 20 ea 20 | f7 20 85 20 20 3a 20 20 |*/. . . |. . : |
|000016f0| f2 5f 65 28 20 22 25 2e | 43 3a 20 61 73 73 65 6d |._e( "%.|C: assem|
|00001700| 62 6c 65 5f 73 74 72 63 | 68 72 22 20 29 0d 08 34 |ble_strc|hr" )..4|
|00001710| 0e 5b 4f 50 54 20 70 61 | 73 73 25 0d 08 3e 11 20 |.[OPT pa|ss%..>. |
|00001720| 20 20 20 20 20 20 20 41 | 4c 49 47 4e 0d 08 48 0b | A|LIGN..H.|
|00001730| 2e 73 74 72 63 68 72 0d | 08 52 22 20 20 20 20 20 |.strchr.|.R" |
|00001740| 20 20 20 53 54 52 20 20 | 20 20 20 52 32 2c 20 5b | STR | R2, [|
|00001750| 73 70 2c 20 23 2d 34 5d | 21 0d 08 5c 09 2e 6c 6f |sp, #-4]|!..\..lo|
|00001760| 6f 70 0d 08 66 20 20 20 | 20 20 20 20 20 20 4c 44 |op..f | LD|
|00001770| 52 42 20 20 20 20 52 32 | 2c 20 5b 52 30 5d 2c 20 |RB R2|, [R0], |
|00001780| 23 31 0d 08 70 1a 20 20 | 20 20 20 20 20 20 54 45 |#1..p. | TE|
|00001790| 51 20 20 20 20 20 52 32 | 2c 20 23 30 0d 08 7a 17 |Q R2|, #0..z.|
|000017a0| 20 20 20 20 20 20 20 20 | ec 51 20 20 20 52 30 2c | |.Q R0,|
|000017b0| 20 52 32 0d 08 84 1a 20 | 20 20 20 20 20 20 20 54 | R2.... | T|
|000017c0| 45 51 4e 45 20 20 20 52 | 31 2c 20 52 32 0d 08 8e |EQNE R|1, R2...|
|000017d0| 18 20 20 20 20 20 20 20 | 20 42 4e 45 20 20 20 20 |. | BNE |
|000017e0| 20 6c 6f 6f 70 0d 08 98 | 20 20 20 20 20 20 20 20 | loop...| |
|000017f0| 20 4c 44 52 20 20 20 20 | 20 52 32 2c 20 5b 73 70 | LDR | R2, [sp|
|00001800| 5d 2c 20 23 34 0d 08 a2 | 1c 20 20 20 20 20 20 20 |], #4...|. |
|00001810| 20 4d 4f 56 53 20 20 20 | 20 70 63 2c 20 6c 69 6e | MOVS | pc, lin|
|00001820| 6b 0d 08 ac 05 5d 0d 08 | b6 07 3d 20 30 0d 08 c0 |k....]..|..= 0...|
|00001830| 05 3a 0d 08 ca 4b f4 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.:...K.-|--------|
|00001840| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001850| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001860| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001870| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 08 d4 |--------|-----...|
|00001880| 05 f4 0d 08 de 2e f4 20 | 20 20 20 20 49 4e 20 20 |....... | IN |
|00001890| 20 20 20 20 52 30 20 5e | 3d 20 5a 65 72 6f 20 74 | R0 ^|= Zero t|
|000018a0| 65 72 6d 69 6e 61 74 65 | 64 20 73 74 72 69 6e 67 |erminate|d string|
|000018b0| 0d 08 e8 37 f4 20 20 20 | 20 20 20 20 20 20 20 20 |...7. | |
|000018c0| 20 20 52 31 20 3d 3d 20 | 38 2d 62 69 74 20 76 61 | R1 == |8-bit va|
|000018d0| 6c 75 65 20 74 6f 20 61 | 70 70 65 6e 64 20 74 6f |lue to a|ppend to|
|000018e0| 20 73 74 72 69 6e 67 0d | 08 f2 38 f4 20 20 20 20 | string.|..8. |
|000018f0| 20 4f 55 54 20 20 20 20 | 20 5b 52 30 5d 20 3c 2d | OUT | [R0] <-|
|00001900| 2d 20 4f 6e 65 20 63 68 | 61 72 61 63 74 65 72 20 |- One ch|aracter |
|00001910| 61 64 64 65 64 20 74 6f | 20 73 74 72 69 6e 67 0d |added to| string.|
|00001920| 08 fc 18 f4 20 20 20 20 | 20 42 41 44 20 20 20 20 |.... | BAD |
|00001930| 20 28 6e 6f 6e 65 29 0d | 09 06 16 f4 20 20 20 20 | (none).|.... |
|00001940| 20 46 4c 41 47 53 20 20 | 20 4c 69 6e 6b 0d 09 10 | FLAGS | Link...|
|00001950| 18 dd 20 a4 5f 61 73 73 | 65 6d 62 6c 65 5f 73 74 |.. ._ass|emble_st|
|00001960| 72 63 63 61 74 0d 09 1a | 0a ea 20 6c 6f 6f 70 0d |rccat...|.. loop.|
|00001970| 09 24 07 ea 20 85 0d 09 | 2e 30 ee 20 85 20 ea 20 |.$.. ...|.0. . . |
|00001980| f7 20 85 20 20 3a 20 20 | f2 5f 65 28 20 22 25 2e |. . : |._e( "%.|
|00001990| 43 3a 20 61 73 73 65 6d | 62 6c 65 5f 73 74 72 63 |C: assem|ble_strc|
|000019a0| 63 61 74 22 20 29 0d 09 | 38 0e 5b 4f 50 54 20 70 |cat" )..|8.[OPT p|
|000019b0| 61 73 73 25 0d 09 42 11 | 20 20 20 20 20 20 20 20 |ass%..B.| |
|000019c0| 41 4c 49 47 4e 0d 09 4c | 0c 2e 73 74 72 63 63 61 |ALIGN..L|..strcca|
|000019d0| 74 0d 09 56 22 20 20 20 | 20 20 20 20 20 53 54 52 |t..V" | STR|
|000019e0| 20 20 20 20 20 52 30 2c | 20 5b 73 70 2c 20 23 2d | R0,| [sp, #-|
|000019f0| 34 5d 21 0d 09 60 22 20 | 20 20 20 20 20 20 20 53 |4]!..`" | S|
|00001a00| 54 52 20 20 20 20 20 52 | 32 2c 20 5b 73 70 2c 20 |TR R|2, [sp, |
|00001a10| 23 2d 34 5d 21 0d 09 6a | 09 2e 6c 6f 6f 70 0d 09 |#-4]!..j|..loop..|
|00001a20| 74 20 20 20 20 20 20 20 | 20 20 4c 44 52 42 20 20 |t | LDRB |
|00001a30| 20 20 52 32 2c 20 5b 52 | 30 5d 2c 20 23 31 0d 09 | R2, [R|0], #1..|
|00001a40| 7e 1a 20 20 20 20 20 20 | 20 20 54 45 51 20 20 20 |~. | TEQ |
|00001a50| 20 20 52 32 2c 20 23 30 | 0d 09 88 18 20 20 20 20 | R2, #0|.... |
|00001a60| 20 20 20 20 42 4e 45 20 | 20 20 20 20 6c 6f 6f 70 | BNE | loop|
|00001a70| 0d 09 92 21 20 20 20 20 | 20 20 20 20 53 54 52 42 |...! | STRB|
|00001a80| 20 20 20 20 52 31 2c 20 | 5b 52 30 2c 20 23 2d 31 | R1, |[R0, #-1|
|00001a90| 5d 0d 09 9c 1c 20 20 20 | 20 20 20 20 20 53 54 52 |].... | STR|
|00001aa0| 42 20 20 20 20 52 32 2c | 20 5b 52 30 5d 0d 09 a6 |B R2,| [R0]...|
|00001ab0| 20 20 20 20 20 20 20 20 | 20 4c 44 52 20 20 20 20 | | LDR |
|00001ac0| 20 52 32 2c 20 5b 73 70 | 5d 2c 20 23 34 0d 09 b0 | R2, [sp|], #4...|
|00001ad0| 20 20 20 20 20 20 20 20 | 20 4c 44 52 20 20 20 20 | | LDR |
|00001ae0| 20 52 30 2c 20 5b 73 70 | 5d 2c 20 23 34 0d 09 ba | R0, [sp|], #4...|
|00001af0| 1c 20 20 20 20 20 20 20 | 20 4d 4f 56 53 20 20 20 |. | MOVS |
|00001b00| 20 70 63 2c 20 6c 69 6e | 6b 0d 09 c4 05 5d 0d 09 | pc, lin|k....]..|
|00001b10| ce 07 3d 20 30 0d 09 d8 | 05 3a 0d 09 e2 4b f4 2d |..= 0...|.:...K.-|
|00001b20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001b30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001b40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001b50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001b60| 2d 2d 2d 2d 2d 0d 09 ec | 05 f4 0d 09 f6 2e f4 20 |-----...|....... |
|00001b70| 20 20 20 20 49 4e 20 20 | 20 20 20 20 52 30 20 5e | IN | R0 ^|
|00001b80| 3d 20 5a 65 72 6f 20 74 | 65 72 6d 69 6e 61 74 65 |= Zero t|erminate|
|00001b90| 64 20 73 74 72 69 6e 67 | 0d 0a 00 37 f4 20 20 20 |d string|...7. |
|00001ba0| 20 20 20 20 20 20 20 20 | 20 20 52 31 20 3d 3d 20 | | R1 == |
|00001bb0| 38 2d 62 69 74 20 76 61 | 6c 75 65 20 74 6f 20 61 |8-bit va|lue to a|
|00001bc0| 70 70 65 6e 64 20 74 6f | 20 73 74 72 69 6e 67 0d |ppend to| string.|
|00001bd0| 0a 0a 39 f4 20 20 20 20 | 20 20 20 20 20 20 20 20 |..9. | |
|00001be0| 20 52 32 20 3d 3d 20 4c | 65 6e 67 74 68 20 6f 66 | R2 == L|ength of|
|00001bf0| 20 64 65 73 74 69 6e 61 | 74 69 6f 6e 20 62 75 66 | destina|tion buf|
|00001c00| 66 65 72 20 2d 20 31 2c | 0d 0a 14 35 f4 20 20 20 |fer - 1,|...5. |
|00001c10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001c20| 55 6e 73 69 67 6e 65 64 | 20 33 32 2d 62 69 74 20 |Unsigned| 32-bit |
|00001c30| 69 6e 74 65 67 65 72 20 | 28 3e 3d 30 29 0d 0a 1e |integer |(>=0)...|
|00001c40| 38 f4 20 20 20 20 20 4f | 55 54 20 20 20 20 20 5b |8. O|UT [|
|00001c50| 52 30 5d 20 3c 2d 2d 20 | 4f 6e 65 20 63 68 61 72 |R0] <-- |One char|
|00001c60| 61 63 74 65 72 20 61 64 | 64 65 64 20 74 6f 20 73 |acter ad|ded to s|
|00001c70| 74 72 69 6e 67 0d 0a 28 | 18 f4 20 20 20 20 20 42 |tring..(|.. B|
|00001c80| 41 44 20 20 20 20 20 28 | 6e 6f 6e 65 29 0d 0a 32 |AD (|none)..2|
|00001c90| 16 f4 20 20 20 20 20 46 | 4c 41 47 53 20 20 20 4c |.. F|LAGS L|
|00001ca0| 69 6e 6b 0d 0a 3c 19 dd | 20 a4 5f 61 73 73 65 6d |ink..<..| ._assem|
|00001cb0| 62 6c 65 5f 73 74 72 6e | 63 63 61 74 0d 0a 46 0a |ble_strn|ccat..F.|
|00001cc0| ea 20 6c 6f 6f 70 0d 0a | 50 07 ea 20 85 0d 0a 5a |. loop..|P.. ...Z|
|00001cd0| 31 ee 20 85 20 ea 20 f7 | 20 85 20 20 3a 20 20 f2 |1. . . .| . : .|
|00001ce0| 5f 65 28 20 22 25 2e 43 | 3a 20 61 73 73 65 6d 62 |_e( "%.C|: assemb|
|00001cf0| 6c 65 5f 73 74 72 6e 63 | 63 61 74 22 20 29 0d 0a |le_strnc|cat" )..|
|00001d00| 64 0e 5b 4f 50 54 20 70 | 61 73 73 25 0d 0a 6e 11 |d.[OPT p|ass%..n.|
|00001d10| 20 20 20 20 20 20 20 20 | 41 4c 49 47 4e 0d 0a 78 | |ALIGN..x|
|00001d20| 0d 2e 73 74 72 6e 63 63 | 61 74 0d 0a 82 22 20 20 |..strncc|at..." |
|00001d30| 20 20 20 20 20 20 53 54 | 52 20 20 20 20 20 52 33 | ST|R R3|
|00001d40| 2c 20 5b 73 70 2c 20 23 | 2d 34 5d 21 0d 0a 8c 22 |, [sp, #|-4]!..."|
|00001d50| 20 20 20 20 20 20 20 20 | 53 54 52 20 20 20 20 20 | |STR |
|00001d60| 52 34 2c 20 5b 73 70 2c | 20 23 2d 34 5d 21 0d 0a |R4, [sp,| #-4]!..|
|00001d70| 96 1a 20 20 20 20 20 20 | 20 20 4d 4f 56 20 20 20 |.. | MOV |
|00001d80| 20 20 52 34 2c 20 23 30 | 0d 0a a0 09 2e 6c 6f 6f | R4, #0|.....loo|
|00001d90| 70 0d 0a aa 1a 20 20 20 | 20 20 20 20 20 54 45 51 |p.... | TEQ|
|00001da0| 20 20 20 20 20 52 32 2c | 20 52 34 0d 0a b4 20 20 | R2,| R4... |
|00001db0| 20 20 20 20 20 20 20 4c | 44 52 4e 45 42 20 20 52 | L|DRNEB R|
|00001dc0| 33 2c 20 5b 52 30 2c 20 | 52 34 5d 0d 0a be 1a 20 |3, [R0, |R4].... |
|00001dd0| 20 20 20 20 20 20 20 54 | 45 51 4e 45 20 20 20 52 | T|EQNE R|
|00001de0| 33 2c 20 23 30 0d 0a c8 | 1e 20 20 20 20 20 20 20 |3, #0...|. |
|00001df0| 20 41 44 44 4e 45 20 20 | 20 52 34 2c 20 52 34 2c | ADDNE | R4, R4,|
|00001e00| 20 23 31 0d 0a d2 18 20 | 20 20 20 20 20 20 20 42 | #1.... | B|
|00001e10| 4e 45 20 20 20 20 20 6c | 6f 6f 70 0d 0a dc 1a 20 |NE l|oop.... |
|00001e20| 20 20 20 20 20 20 20 54 | 45 51 20 20 20 20 20 52 | T|EQ R|
|00001e30| 32 2c 20 52 34 0d 0a e6 | 20 20 20 20 20 20 20 20 |2, R4...| |
|00001e40| 20 53 54 52 4e 45 42 20 | 20 52 31 2c 20 5b 52 30 | STRNEB | R1, [R0|
|00001e50| 2c 20 52 34 5d 0d 0a f0 | 1e 20 20 20 20 20 20 20 |, R4]...|. |
|00001e60| 20 41 44 44 4e 45 20 20 | 20 52 34 2c 20 52 34 2c | ADDNE | R4, R4,|
|00001e70| 20 23 31 0d 0a fa 20 20 | 20 20 20 20 20 20 20 53 | #1... | S|
|00001e80| 54 52 4e 45 42 20 20 52 | 33 2c 20 5b 52 30 2c 20 |TRNEB R|3, [R0, |
|00001e90| 52 34 5d 0d 0b 04 20 20 | 20 20 20 20 20 20 20 4c |R4]... | L|
|00001ea0| 44 52 20 20 20 20 20 52 | 34 2c 20 5b 73 70 5d 2c |DR R|4, [sp],|
|00001eb0| 20 23 34 0d 0b 0e 20 20 | 20 20 20 20 20 20 20 4c | #4... | L|
|00001ec0| 44 52 20 20 20 20 20 52 | 33 2c 20 5b 73 70 5d 2c |DR R|3, [sp],|
|00001ed0| 20 23 34 0d 0b 18 1c 20 | 20 20 20 20 20 20 20 4d | #4.... | M|
|00001ee0| 4f 56 53 20 20 20 20 70 | 63 2c 20 6c 69 6e 6b 0d |OVS p|c, link.|
|00001ef0| 0b 22 05 5d 0d 0b 2c 07 | 3d 20 30 0d 0b 36 05 3a |.".]..,.|= 0..6.:|
|00001f00| 0d 0b 40 4b f4 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..@K.---|--------|
|00001f10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 0b 4a 05 f4 |--------|---..J..|
|00001f50| 0d 0b 54 38 f4 20 20 20 | 20 20 49 4e 20 20 20 20 |..T8. | IN |
|00001f60| 20 20 52 30 20 5e 3d 20 | 44 65 73 74 69 6e 61 74 | R0 ^= |Destinat|
|00001f70| 69 6f 6e 20 28 6d 75 73 | 74 20 62 65 20 62 69 67 |ion (mus|t be big|
|00001f80| 20 65 6e 6f 75 67 68 29 | 0d 0b 5e 32 f4 20 20 20 | enough)|..^2. |
|00001f90| 20 20 20 20 20 20 20 20 | 20 20 52 31 20 5e 3d 20 | | R1 ^= |
|00001fa0| 5a 65 72 6f 20 74 65 72 | 6d 69 6e 61 74 65 64 20 |Zero ter|minated |
|00001fb0| 62 79 74 65 20 61 72 72 | 61 79 0d 0b 68 38 f4 20 |byte arr|ay..h8. |
|00001fc0| 20 20 20 20 4f 55 54 20 | 20 20 20 20 5b 52 30 2e | OUT | [R0.|
|00001fd0| 2e 5d 20 3c 2d 2d 20 5b | 52 31 2e 2e 5d 20 69 6e |.] <-- [|R1..] in|
|00001fe0| 63 6c 75 64 69 6e 67 20 | 7a 65 72 6f 20 62 79 74 |cluding |zero byt|
|00001ff0| 65 2e 0d 0b 72 18 f4 20 | 20 20 20 20 42 41 44 20 |e...r.. | BAD |
|00002000| 20 20 20 20 28 6e 6f 6e | 65 29 0d 0b 7c 16 f4 20 | (non|e)..|.. |
|00002010| 20 20 20 20 46 4c 41 47 | 53 20 20 20 4c 69 6e 6b | FLAG|S Link|
|00002020| 0d 0b 86 17 dd 20 a4 5f | 61 73 73 65 6d 62 6c 65 |..... ._|assemble|
|00002030| 5f 73 74 72 63 70 79 0d | 0b 90 0a ea 20 6c 6f 6f |_strcpy.|.... loo|
|00002040| 70 0d 0b 9a 07 ea 20 85 | 0d 0b a4 2f ee 20 85 20 |p..... .|.../. . |
|00002050| ea 20 f7 20 85 20 20 3a | 20 20 f2 5f 65 28 20 22 |. . . :| ._e( "|
|00002060| 25 2e 43 3a 20 61 73 73 | 65 6d 62 6c 65 5f 73 74 |%.C: ass|emble_st|
|00002070| 72 63 70 79 22 20 29 0d | 0b ae 0e 5b 4f 50 54 20 |rcpy" ).|...[OPT |
|00002080| 70 61 73 73 25 0d 0b b8 | 11 20 20 20 20 20 20 20 |pass%...|. |
|00002090| 20 41 4c 49 47 4e 0d 0b | c2 0b 2e 73 74 72 63 70 | ALIGN..|...strcp|
|000020a0| 79 0d 0b cc 22 20 20 20 | 20 20 20 20 20 53 54 4d |y..." | STM|
|000020b0| 46 44 20 20 20 28 73 70 | 29 21 2c 20 7b 52 30 2d |FD (sp|)!, {R0-|
|000020c0| 52 32 7d 0d 0b d6 09 2e | 6c 6f 6f 70 0d 0b e0 20 |R2}.....|loop... |
|000020d0| 20 20 20 20 20 20 20 20 | 4c 44 52 42 20 20 20 20 | |LDRB |
|000020e0| 52 32 2c 20 5b 52 31 5d | 2c 20 23 31 0d 0b ea 20 |R2, [R1]|, #1... |
|000020f0| 20 20 20 20 20 20 20 20 | 53 54 52 42 20 20 20 20 | |STRB |
|00002100| 52 32 2c 20 5b 52 30 5d | 2c 20 23 31 0d 0b f4 1a |R2, [R0]|, #1....|
|00002110| 20 20 20 20 20 20 20 20 | 54 45 51 20 20 20 20 20 | |TEQ |
|00002120| 52 32 2c 20 23 30 0d 0b | fe 18 20 20 20 20 20 20 |R2, #0..|.. |
|00002130| 20 20 42 4e 45 20 20 20 | 20 20 6c 6f 6f 70 0d 0c | BNE | loop..|
|00002140| 08 22 20 20 20 20 20 20 | 20 20 4c 44 4d 46 44 20 |." | LDMFD |
|00002150| 20 20 28 73 70 29 21 2c | 20 7b 52 30 2d 52 32 7d | (sp)!,| {R0-R2}|
|00002160| 0d 0c 12 1c 20 20 20 20 | 20 20 20 20 4d 4f 56 53 |.... | MOVS|
|00002170| 20 20 20 20 70 63 2c 20 | 6c 69 6e 6b 0d 0c 1c 05 | pc, |link....|
|00002180| 5d 0d 0c 26 07 3d 20 30 | 0d 0c 30 05 3a 0d 0c 3a |]..&.= 0|..0.:..:|
|00002190| 4b f4 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |K.------|--------|
|000021a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000021b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000021c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000021d0| 2d 2d 2d 2d 2d 2d 2d 2d | 0d 0c 44 05 f4 0d 0c 4e |--------|..D....N|
|000021e0| 30 f4 20 20 20 20 20 49 | 4e 20 20 20 20 20 20 52 |0. I|N R|
|000021f0| 30 20 5e 3d 20 41 20 7a | 65 72 6f 20 74 65 72 6d |0 ^= A z|ero term|
|00002200| 69 6e 61 74 65 64 20 73 | 74 72 69 6e 67 0d 0c 58 |inated s|tring..X|
|00002210| 30 f4 20 20 20 20 20 20 | 20 20 20 20 20 20 20 52 |0. | R|
|00002220| 31 20 5e 3d 20 41 20 7a | 65 72 6f 20 74 65 72 6d |1 ^= A z|ero term|
|00002230| 69 6e 61 74 65 64 20 73 | 74 72 69 6e 67 0d 0c 62 |inated s|tring..b|
|00002240| 2b f4 20 20 20 20 20 46 | 4c 41 47 53 20 20 20 50 |+. F|LAGS P|
|00002250| 53 52 5f 43 2c 5a 2c 56 | 2c 4e 20 73 65 74 20 73 |SR_C,Z,V|,N set s|
|00002260| 75 63 68 20 74 68 61 74 | 0d 0c 6c 2f f4 20 20 20 |uch that|..l/. |
|00002270| 20 20 20 20 20 20 20 20 | 20 20 4c 54 20 3d 3e 20 | | LT => |
|00002280| 73 74 72 69 6e 67 28 52 | 30 29 20 3c 20 73 74 72 |string(R|0) < str|
|00002290| 69 6e 67 28 52 31 29 0d | 0c 76 2f f4 20 20 20 20 |ing(R1).|.v/. |
|000022a0| 20 20 20 20 20 20 20 20 | 20 45 51 20 3d 3e 20 73 | | EQ => s|
|000022b0| 74 72 69 6e 67 28 52 30 | 29 20 3d 20 73 74 72 69 |tring(R0|) = stri|
|000022c0| 6e 67 28 52 31 29 0d 0c | 80 2f f4 20 20 20 20 20 |ng(R1)..|./. |
|000022d0| 20 20 20 20 20 20 20 20 | 47 54 20 3d 3e 20 73 74 | |GT => st|
|000022e0| 72 69 6e 67 28 52 30 29 | 20 3e 20 73 74 72 69 6e |ring(R0)| > strin|
|000022f0| 67 28 52 31 29 0d 0c 8a | 18 f4 20 20 20 20 20 42 |g(R1)...|.. B|
|00002300| 41 44 20 20 20 20 20 28 | 6e 6f 6e 65 29 0d 0c 94 |AD (|none)...|
|00002310| 17 dd 20 a4 5f 61 73 73 | 65 6d 62 6c 65 5f 73 74 |.. ._ass|emble_st|
|00002320| 72 63 6d 70 0d 0c 9e 10 | ea 20 6c 6f 6f 70 2c 20 |rcmp....|. loop, |
|00002330| 64 6f 6e 65 0d 0c a8 07 | ea 20 85 0d 0c b2 2f ee |done....|. ..../.|
|00002340| 20 85 20 ea 20 f7 20 85 | 20 20 3a 20 20 f2 5f 65 | . . . .| : ._e|
|00002350| 28 20 22 25 2e 43 3a 20 | 61 73 73 65 6d 62 6c 65 |( "%.C: |assemble|
|00002360| 5f 73 74 72 63 6d 70 22 | 20 29 0d 0c bc 0e 5b 4f |_strcmp"| )....[O|
|00002370| 50 54 20 70 61 73 73 25 | 0d 0c c6 11 20 20 20 20 |PT pass%|.... |
|00002380| 20 20 20 20 41 4c 49 47 | 4e 0d 0c d0 09 2e 64 6f | ALIG|N.....do|
|00002390| 6e 65 0d 0c da 42 20 20 | 20 20 20 20 20 20 43 4d |ne...B | CM|
|000023a0| 50 20 20 20 20 20 52 32 | 2c 20 52 33 20 20 20 20 |P R2|, R3 |
|000023b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 5c 20 | | \ |
|000023c0| 53 65 74 20 4c 54 2f 45 | 51 20 63 6f 6e 64 69 74 |Set LT/E|Q condit|
|000023d0| 69 6f 6e 2e 0d 0c e4 22 | 20 20 20 20 20 20 20 20 |ion...."| |
|000023e0| 4c 44 4d 46 44 20 20 20 | 28 73 70 29 21 2c 20 7b |LDMFD |(sp)!, {|
|000023f0| 52 30 2d 52 33 7d 0d 0c | ee 39 20 20 20 20 20 20 |R0-R3}..|.9 |
|00002400| 20 20 4d 4f 56 20 20 20 | 20 20 70 63 2c 20 6c 69 | MOV | pc, li|
|00002410| 6e 6b 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |nk | |
|00002420| 20 20 5c 20 4b 65 65 70 | 20 66 6c 61 67 73 2e 0d | \ Keep| flags..|
|00002430| 0c f8 0b 2e 73 74 72 63 | 6d 70 0d 0d 02 22 20 20 |....strc|mp..." |
|00002440| 20 20 20 20 20 20 53 54 | 4d 46 44 20 20 20 28 73 | ST|MFD (s|
|00002450| 70 29 21 2c 20 7b 52 30 | 2d 52 33 7d 0d 0d 0c 09 |p)!, {R0|-R3}....|
|00002460| 2e 6c 6f 6f 70 0d 0d 16 | 20 20 20 20 20 20 20 20 |.loop...| |
|00002470| 20 4c 44 52 42 20 20 20 | 20 52 32 2c 20 5b 52 30 | LDRB | R2, [R0|
|00002480| 5d 2c 20 23 31 0d 0d 20 | 20 20 20 20 20 20 20 20 |], #1.. | |
|00002490| 20 4c 44 52 42 20 20 20 | 20 52 33 2c 20 5b 52 31 | LDRB | R3, [R1|
|000024a0| 5d 2c 20 23 31 0d 0d 2a | 42 20 20 20 20 20 20 20 |], #1..*|B |
|000024b0| 20 54 45 51 20 20 20 20 | 20 52 33 2c 20 23 30 20 | TEQ | R3, #0 |
|000024c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000024d0| 20 5c 20 43 68 65 63 6b | 20 66 6f 72 20 61 20 4c | \ Check| for a L|
|000024e0| 54 20 63 61 73 65 2e 0d | 0d 34 18 20 20 20 20 20 |T case..|.4. |
|000024f0| 20 20 20 42 45 51 20 20 | 20 20 20 64 6f 6e 65 0d | BEQ | done.|
|00002500| 0d 3e 48 20 20 20 20 20 | 20 20 20 43 4d 50 20 20 |.>H | CMP |
|00002510| 20 20 20 52 32 2c 20 52 | 33 20 20 20 20 20 20 20 | R2, R|3 |
|00002520| 20 20 20 20 20 20 20 20 | 20 20 20 5c 20 4e 6f 20 | | \ No |
|00002530| 6e 65 65 64 20 74 6f 20 | 63 68 65 63 6b 20 66 6f |need to |check fo|
|00002540| 72 20 7a 65 72 6f 2e 0d | 0d 48 18 20 20 20 20 20 |r zero..|.H. |
|00002550| 20 20 20 42 45 51 20 20 | 20 20 20 6c 6f 6f 70 0d | BEQ | loop.|
|00002560| 0d 52 22 20 20 20 20 20 | 20 20 20 4c 44 4d 46 44 |.R" | LDMFD|
|00002570| 20 20 20 28 73 70 29 21 | 2c 20 7b 52 30 2d 52 33 | (sp)!|, {R0-R3|
|00002580| 7d 0d 0d 5c 39 20 20 20 | 20 20 20 20 20 4d 4f 56 |}..\9 | MOV|
|00002590| 20 20 20 20 20 70 63 2c | 20 6c 69 6e 6b 20 20 20 | pc,| link |
|000025a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 5c 20 4b | | \ K|
|000025b0| 65 65 70 20 66 6c 61 67 | 73 2e 0d 0d 66 05 5d 0d |eep flag|s...f.].|
|000025c0| 0d 70 07 3d 20 30 0d 0d | 7a 05 3a 0d 0d 84 4b f4 |.p.= 0..|z.:...K.|
|000025d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000025e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000025f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002600| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002610| 2d 2d 2d 2d 2d 2d 0d 0d | 8e 05 f4 0d 0d 98 30 f4 |------..|......0.|
|00002620| 20 20 20 20 20 49 4e 20 | 20 20 20 20 20 52 30 20 | IN | R0 |
|00002630| 5e 3d 20 41 20 7a 65 72 | 6f 20 74 65 72 6d 69 6e |^= A zer|o termin|
|00002640| 61 74 65 64 20 73 74 72 | 69 6e 67 0d 0d a2 30 f4 |ated str|ing...0.|
|00002650| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 52 31 20 | | R1 |
|00002660| 5e 3d 20 41 20 7a 65 72 | 6f 20 74 65 72 6d 69 6e |^= A zer|o termin|
|00002670| 61 74 65 64 20 73 74 72 | 69 6e 67 0d 0d ac 3a f4 |ated str|ing...:.|
|00002680| 20 20 20 20 20 46 4c 41 | 47 53 20 20 20 50 53 52 | FLA|GS PSR|
|00002690| 5f 5a 20 73 65 74 20 74 | 6f 20 72 65 66 6c 65 63 |_Z set t|o reflec|
|000026a0| 74 20 65 71 75 61 6c 69 | 74 79 20 6f 66 20 73 74 |t equali|ty of st|
|000026b0| 72 69 6e 67 73 0d 0d b6 | 2c f4 20 20 20 20 20 20 |rings...|,. |
|000026c0| 20 20 20 20 20 20 20 4e | 45 20 3d 3e 20 53 74 72 | N|E => Str|
|000026d0| 69 6e 67 73 20 61 72 65 | 20 74 68 65 20 73 61 6d |ings are| the sam|
|000026e0| 65 0d 0d c0 2d f4 20 20 | 20 20 20 20 20 20 20 20 |e...-. | |
|000026f0| 20 20 20 45 51 20 3d 3e | 20 53 74 72 69 6e 67 73 | EQ =>| Strings|
|00002700| 20 61 72 65 20 64 69 66 | 66 65 72 65 6e 74 0d 0d | are dif|ferent..|
|00002710| ca 31 f4 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.1. | |
|00002720| 41 6c 6c 20 6f 74 68 65 | 72 20 66 6c 61 67 73 20 |All othe|r flags |
|00002730| 74 61 6b 65 6e 20 66 72 | 6f 6d 20 6c 69 6e 6b 0d |taken fr|om link.|
|00002740| 0d d4 18 f4 20 20 20 20 | 20 42 41 44 20 20 20 20 |.... | BAD |
|00002750| 20 28 6e 6f 6e 65 29 0d | 0d de 16 dd 20 a4 5f 61 | (none).|.... ._a|
|00002760| 73 73 65 6d 62 6c 65 5f | 73 74 72 65 71 0d 0d e8 |ssemble_|streq...|
|00002770| 15 ea 20 6c 6f 6f 70 2c | 20 64 69 66 66 65 72 65 |.. loop,| differe|
|00002780| 6e 74 0d 0d f2 07 ea 20 | 85 0d 0d fc 2e ee 20 85 |nt..... |...... .|
|00002790| 20 ea 20 f7 20 85 20 20 | 3a 20 20 f2 5f 65 28 20 | . . . |: ._e( |
|000027a0| 22 25 2e 43 3a 20 61 73 | 73 65 6d 62 6c 65 5f 73 |"%.C: as|semble_s|
|000027b0| 74 72 65 71 22 20 29 0d | 0e 06 0e 5b 4f 50 54 20 |treq" ).|...[OPT |
|000027c0| 70 61 73 73 25 0d 0e 10 | 11 20 20 20 20 20 20 20 |pass%...|. |
|000027d0| 20 41 4c 49 47 4e 0d 0e | 1a 0e 2e 64 69 66 66 65 | ALIGN..|...diffe|
|000027e0| 72 65 6e 74 0d 0e 24 22 | 20 20 20 20 20 20 20 20 |rent..$"| |
|000027f0| 4c 44 4d 46 44 20 20 20 | 28 73 70 29 21 2c 20 7b |LDMFD |(sp)!, {|
|00002800| 52 30 2d 52 33 7d 0d 0e | 2e 42 20 20 20 20 20 20 |R0-R3}..|.B |
|00002810| 20 20 84 52 53 20 20 20 | 20 70 63 2c 20 6c 69 6e | .RS | pc, lin|
|00002820| 6b 2c 20 23 31 20 3c 3c | 20 50 53 52 5f 5a 25 20 |k, #1 <<| PSR_Z% |
|00002830| 20 5c 20 53 65 74 20 50 | 53 52 5f 5a 20 65 78 70 | \ Set P|SR_Z exp|
|00002840| 6c 69 63 69 74 6c 79 2e | 0d 0e 38 05 f4 0d 0e 42 |licitly.|..8....B|
|00002850| 0a 2e 73 74 72 65 71 0d | 0e 4c 22 20 20 20 20 20 |..streq.|.L" |
|00002860| 20 20 20 53 54 4d 46 44 | 20 20 20 28 73 70 29 21 | STMFD| (sp)!|
|00002870| 2c 20 7b 52 30 2d 52 33 | 7d 0d 0e 56 09 2e 6c 6f |, {R0-R3|}..V..lo|
|00002880| 6f 70 0d 0e 60 20 20 20 | 20 20 20 20 20 20 4c 44 |op..` | LD|
|00002890| 52 42 20 20 20 20 52 32 | 2c 20 5b 52 30 5d 2c 20 |RB R2|, [R0], |
|000028a0| 23 31 0d 0e 6a 20 20 20 | 20 20 20 20 20 20 4c 44 |#1..j | LD|
|000028b0| 52 42 20 20 20 20 52 33 | 2c 20 5b 52 31 5d 2c 20 |RB R3|, [R1], |
|000028c0| 23 31 0d 0e 74 1a 20 20 | 20 20 20 20 20 20 54 45 |#1..t. | TE|
|000028d0| 51 20 20 20 20 20 52 32 | 2c 20 52 33 0d 0e 7e 1d |Q R2|, R3..~.|
|000028e0| 20 20 20 20 20 20 20 20 | 42 4e 45 20 20 20 20 20 | |BNE |
|000028f0| 64 69 66 66 65 72 65 6e | 74 0d 0e 88 43 20 20 20 |differen|t...C |
|00002900| 20 20 20 20 20 54 45 51 | 20 20 20 20 20 52 33 2c | TEQ| R3,|
|00002910| 20 23 30 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | #0 | |
|00002920| 20 20 20 20 20 5c 20 43 | 68 65 63 6b 20 66 6f 72 | \ C|heck for|
|00002930| 20 73 74 72 69 6e 67 20 | 65 6e 64 2e 0d 0e 92 18 | string |end.....|
|00002940| 20 20 20 20 20 20 20 20 | 42 4e 45 20 20 20 20 20 | |BNE |
|00002950| 6c 6f 6f 70 0d 0e 9c 22 | 20 20 20 20 20 20 20 20 |loop..."| |
|00002960| 4c 44 4d 46 44 20 20 20 | 28 73 70 29 21 2c 20 7b |LDMFD |(sp)!, {|
|00002970| 52 30 2d 52 33 7d 0d 0e | a6 45 20 20 20 20 20 20 |R0-R3}..|.E |
|00002980| 20 20 42 49 43 53 20 20 | 20 20 70 63 2c 20 6c 69 | BICS | pc, li|
|00002990| 6e 6b 2c 20 23 31 20 3c | 3c 20 50 53 52 5f 5a 25 |nk, #1 <|< PSR_Z%|
|000029a0| 20 20 5c 20 43 6c 65 61 | 72 20 50 53 52 5f 5a 20 | \ Clea|r PSR_Z |
|000029b0| 65 78 70 6c 69 63 69 74 | 6c 79 2e 0d 0e b0 05 5d |explicit|ly.....]|
|000029c0| 0d 0e ba 07 3d 20 30 0d | 0e c4 05 3a 0d 0e ce 1a |....= 0.|...:....|
|000029d0| dd 20 a4 5f 61 73 73 65 | 6d 62 6c 65 5f 57 69 6d |. ._asse|mble_Wim|
|000029e0| 70 53 74 72 45 71 0d 0e | d8 15 ea 20 6c 6f 6f 70 |pStrEq..|... loop|
|000029f0| 2c 20 64 69 66 66 65 72 | 65 6e 74 0d 0e e2 07 ea |, differ|ent.....|
|00002a00| 20 85 0d 0e ec 32 ee 20 | 85 20 ea 20 f7 20 85 20 | ....2. |. . . . |
|00002a10| 20 3a 20 20 f2 5f 65 28 | 20 22 25 2e 43 3a 20 61 | : ._e(| "%.C: a|
|00002a20| 73 73 65 6d 62 6c 65 5f | 57 69 6d 70 53 74 72 45 |ssemble_|WimpStrE|
|00002a30| 71 22 20 29 0d 0e f6 0e | 5b 4f 50 54 20 70 61 73 |q" )....|[OPT pas|
|00002a40| 73 25 0d 0f 00 11 20 20 | 20 20 20 20 20 20 41 4c |s%.... | AL|
|00002a50| 49 47 4e 0d 0f 0a 0e 2e | 64 69 66 66 65 72 65 6e |IGN.....|differen|
|00002a60| 74 0d 0f 14 1b 20 20 20 | 20 20 20 20 20 43 4d 50 |t.... | CMP|
|00002a70| 20 20 20 20 20 52 32 2c | 20 23 33 32 0d 0f 1e 1b | R2,| #32....|
|00002a80| 20 20 20 20 20 20 20 20 | 43 4d 50 4c 4f 20 20 20 | |CMPLO |
|00002a90| 52 33 2c 20 23 33 32 0d | 0f 28 22 20 20 20 20 20 |R3, #32.|.(" |
|00002aa0| 20 20 20 4c 44 4d 46 44 | 20 20 20 28 73 70 29 21 | LDMFD| (sp)!|
|00002ab0| 2c 20 7b 52 30 2d 52 33 | 7d 0d 0f 32 42 20 20 20 |, {R0-R3|}..2B |
|00002ac0| 20 20 20 20 20 84 52 48 | 53 53 20 20 70 63 2c 20 | .RH|SS pc, |
|00002ad0| 6c 69 6e 6b 2c 20 23 31 | 20 3c 3c 20 50 53 52 5f |link, #1| << PSR_|
|00002ae0| 5a 25 20 20 5c 20 53 65 | 74 20 50 53 52 5f 5a 20 |Z% \ Se|t PSR_Z |
|00002af0| 65 78 70 6c 69 63 69 74 | 6c 79 2e 0d 0f 3c 45 20 |explicit|ly...<E |
|00002b00| 20 20 20 20 20 20 20 42 | 49 43 53 20 20 20 20 70 | B|ICS p|
|00002b10| 63 2c 20 6c 69 6e 6b 2c | 20 23 31 20 3c 3c 20 50 |c, link,| #1 << P|
|00002b20| 53 52 5f 5a 25 20 20 5c | 20 43 6c 65 61 72 20 50 |SR_Z% \| Clear P|
|00002b30| 53 52 5f 5a 20 65 78 70 | 6c 69 63 69 74 6c 79 2e |SR_Z exp|licitly.|
|00002b40| 0d 0f 46 05 5c 0d 0f 50 | 0e 2e 57 69 6d 70 53 74 |..F.\..P|..WimpSt|
|00002b50| 72 45 71 0d 0f 5a 22 20 | 20 20 20 20 20 20 20 53 |rEq..Z" | S|
|00002b60| 54 4d 46 44 20 20 20 28 | 73 70 29 21 2c 20 7b 52 |TMFD (|sp)!, {R|
|00002b70| 30 2d 52 33 7d 0d 0f 64 | 09 2e 6c 6f 6f 70 0d 0f |0-R3}..d|..loop..|
|00002b80| 6e 20 20 20 20 20 20 20 | 20 20 4c 44 52 42 20 20 |n | LDRB |
|00002b90| 20 20 52 32 2c 20 5b 52 | 30 5d 2c 20 23 31 0d 0f | R2, [R|0], #1..|
|00002ba0| 78 20 20 20 20 20 20 20 | 20 20 4c 44 52 42 20 20 |x | LDRB |
|00002bb0| 20 20 52 33 2c 20 5b 52 | 31 5d 2c 20 23 31 0d 0f | R3, [R|1], #1..|
|00002bc0| 82 1a 20 20 20 20 20 20 | 20 20 54 45 51 20 20 20 |.. | TEQ |
|00002bd0| 20 20 52 32 2c 20 52 33 | 0d 0f 8c 1d 20 20 20 20 | R2, R3|.... |
|00002be0| 20 20 20 20 42 4e 45 20 | 20 20 20 20 64 69 66 66 | BNE | diff|
|00002bf0| 65 72 65 6e 74 0d 0f 96 | 43 20 20 20 20 20 20 20 |erent...|C |
|00002c00| 20 43 4d 50 20 20 20 20 | 20 52 32 2c 20 23 33 32 | CMP | R2, #32|
|00002c10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002c20| 20 5c 20 43 68 65 63 6b | 20 66 6f 72 20 73 74 72 | \ Check| for str|
|00002c30| 69 6e 67 20 65 6e 64 2e | 0d 0f a0 18 20 20 20 20 |ing end.|.... |
|00002c40| 20 20 20 20 42 48 53 20 | 20 20 20 20 6c 6f 6f 70 | BHS | loop|
|00002c50| 0d 0f aa 22 20 20 20 20 | 20 20 20 20 4c 44 4d 46 |..." | LDMF|
|00002c60| 44 20 20 20 28 73 70 29 | 21 2c 20 7b 52 30 2d 52 |D (sp)|!, {R0-R|
|00002c70| 33 7d 0d 0f b4 45 20 20 | 20 20 20 20 20 20 42 49 |3}...E | BI|
|00002c80| 43 53 20 20 20 20 70 63 | 2c 20 6c 69 6e 6b 2c 20 |CS pc|, link, |
|00002c90| 23 31 20 3c 3c 20 50 53 | 52 5f 5a 25 20 20 5c 20 |#1 << PS|R_Z% \ |
|00002ca0| 43 6c 65 61 72 20 50 53 | 52 5f 5a 20 65 78 70 6c |Clear PS|R_Z expl|
|00002cb0| 69 63 69 74 6c 79 2e 0d | 0f be 05 5d 0d 0f c8 07 |icitly..|...]....|
|00002cc0| 3d 20 30 0d 0f d2 05 3a | 0d 0f dc 4b f4 2d 2d 2d |= 0....:|...K.---|
|00002cd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ce0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002cf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d10| 2d 2d 2d 0d 0f e6 05 f4 | 0d 0f f0 23 f4 20 20 20 |---.....|...#. |
|00002d20| 20 20 49 4e 20 20 20 20 | 20 20 52 30 20 5e 3d 20 | IN | R0 ^= |
|00002d30| 44 65 73 74 69 6e 61 74 | 69 6f 6e 0d 0f fa 32 f4 |Destinat|ion...2.|
|00002d40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 52 31 20 | | R1 |
|00002d50| 5e 3d 20 5a 65 72 6f 20 | 74 65 72 6d 69 6e 61 74 |^= Zero |terminat|
|00002d60| 65 64 20 62 79 74 65 20 | 61 72 72 61 79 0d 10 04 |ed byte |array...|
|00002d70| 39 f4 20 20 20 20 20 20 | 20 20 20 20 20 20 20 52 |9. | R|
|00002d80| 32 20 3d 3d 20 4c 65 6e | 67 74 68 20 6f 66 20 64 |2 == Len|gth of d|
|00002d90| 65 73 74 69 6e 61 74 69 | 6f 6e 20 62 75 66 66 65 |estinati|on buffe|
|00002da0| 72 20 2d 20 31 2c 0d 10 | 0e 35 f4 20 20 20 20 20 |r - 1,..|.5. |
|00002db0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 55 6e | | Un|
|00002dc0| 73 69 67 6e 65 64 20 33 | 32 2d 62 69 74 20 69 6e |signed 3|2-bit in|
|00002dd0| 74 65 67 65 72 20 28 3e | 3d 30 29 0d 10 18 37 f4 |teger (>|=0)...7.|
|00002de0| 20 20 20 20 20 4f 55 54 | 20 20 20 20 20 5b 52 30 | OUT| [R0|
|00002df0| 2e 2e 5d 20 3c 2d 2d 20 | 5b 52 31 2e 2e 5d 20 69 |..] <-- |[R1..] i|
|00002e00| 6e 63 6c 75 64 69 6e 67 | 20 7a 65 72 6f 20 62 79 |ncluding| zero by|
|00002e10| 74 65 0d 10 22 3e f4 20 | 20 20 20 20 20 20 20 20 |te..">. | |
|00002e20| 20 20 20 20 44 65 73 74 | 69 6e 61 74 69 6f 6e 20 | Dest|ination |
|00002e30| 67 75 61 72 61 6e 74 65 | 65 64 20 74 6f 20 62 65 |guarante|ed to be|
|00002e40| 20 7a 65 72 6f 20 74 65 | 72 6d 69 6e 61 74 65 64 | zero te|rminated|
|00002e50| 0d 10 2c 18 f4 20 20 20 | 20 20 42 41 44 20 20 20 |..,.. | BAD |
|00002e60| 20 20 28 6e 6f 6e 65 29 | 0d 10 36 16 f4 20 20 20 | (none)|..6.. |
|00002e70| 20 20 46 4c 41 47 53 20 | 20 20 4c 69 6e 6b 0d 10 | FLAGS | Link..|
|00002e80| 40 18 dd 20 a4 5f 61 73 | 73 65 6d 62 6c 65 5f 73 |@.. ._as|semble_s|
|00002e90| 74 72 6e 63 70 79 0d 10 | 4a 0a ea 20 6c 6f 6f 70 |trncpy..|J.. loop|
|00002ea0| 0d 10 54 07 ea 20 85 0d | 10 5e 30 ee 20 85 20 ea |..T.. ..|.^0. . .|
|00002eb0| 20 f7 20 85 20 20 3a 20 | 20 f2 5f 65 28 20 22 25 | . . : | ._e( "%|
|00002ec0| 2e 43 3a 20 61 73 73 65 | 6d 62 6c 65 5f 73 74 72 |.C: asse|mble_str|
|00002ed0| 6e 63 70 79 22 20 29 0d | 10 68 0e 5b 4f 50 54 20 |ncpy" ).|.h.[OPT |
|00002ee0| 70 61 73 73 25 0d 10 72 | 11 20 20 20 20 20 20 20 |pass%..r|. |
|00002ef0| 20 41 4c 49 47 4e 0d 10 | 7c 0c 2e 73 74 72 6e 63 | ALIGN..||..strnc|
|00002f00| 70 79 0d 10 86 22 20 20 | 20 20 20 20 20 20 53 54 |py..." | ST|
|00002f10| 4d 46 44 20 20 20 28 73 | 70 29 21 2c 20 7b 52 33 |MFD (s|p)!, {R3|
|00002f20| 2d 52 34 7d 0d 10 90 1a | 20 20 20 20 20 20 20 20 |-R4}....| |
|00002f30| 4d 4f 56 20 20 20 20 20 | 52 33 2c 20 23 30 0d 10 |MOV |R3, #0..|
|00002f40| 9a 09 2e 6c 6f 6f 70 0d | 10 a4 1a 20 20 20 20 20 |...loop.|... |
|00002f50| 20 20 20 54 45 51 20 20 | 20 20 20 52 33 2c 20 52 | TEQ | R3, R|
|00002f60| 32 0d 10 ae 20 20 20 20 | 20 20 20 20 20 4c 44 52 |2... | LDR|
|00002f70| 4e 45 42 20 20 52 34 2c | 20 5b 52 31 2c 20 52 33 |NEB R4,| [R1, R3|
|00002f80| 5d 0d 10 b8 1a 20 20 20 | 20 20 20 20 20 54 45 51 |].... | TEQ|
|00002f90| 4e 45 20 20 20 52 34 2c | 20 23 30 0d 10 c2 20 20 |NE R4,| #0... |
|00002fa0| 20 20 20 20 20 20 20 53 | 54 52 4e 45 42 20 20 52 | S|TRNEB R|
|00002fb0| 34 2c 20 5b 52 30 2c 20 | 52 33 5d 0d 10 cc 1e 20 |4, [R0, |R3].... |
|00002fc0| 20 20 20 20 20 20 20 41 | 44 44 4e 45 20 20 20 52 | A|DDNE R|
|00002fd0| 33 2c 20 52 33 2c 20 23 | 31 0d 10 d6 18 20 20 20 |3, R3, #|1.... |
|00002fe0| 20 20 20 20 20 42 4e 45 | 20 20 20 20 20 6c 6f 6f | BNE| loo|
|00002ff0| 70 0d 10 e0 1a 20 20 20 | 20 20 20 20 20 4d 4f 56 |p.... | MOV|
|00003000| 20 20 20 20 20 52 34 2c | 20 23 30 0d 10 ea 48 20 | R4,| #0...H |
|00003010| 20 20 20 20 20 20 20 53 | 54 52 42 20 20 20 20 52 | S|TRB R|
|00003020| 34 2c 20 5b 52 30 2c 20 | 52 33 5d 20 20 20 20 5c |4, [R0, |R3] \|
|00003030| 20 41 6c 77 61 79 73 20 | 7a 65 72 6f 2d 74 65 72 | Always |zero-ter|
|00003040| 6d 69 6e 61 74 65 20 64 | 65 73 74 69 6e 61 74 69 |minate d|estinati|
|00003050| 6f 6e 2e 0d 10 f4 22 20 | 20 20 20 20 20 20 20 4c |on...." | L|
|00003060| 44 4d 46 44 20 20 20 28 | 73 70 29 21 2c 20 7b 52 |DMFD (|sp)!, {R|
|00003070| 33 2d 52 34 7d 0d 10 fe | 1c 20 20 20 20 20 20 20 |3-R4}...|. |
|00003080| 20 4d 4f 56 53 20 20 20 | 20 70 63 2c 20 6c 69 6e | MOVS | pc, lin|
|00003090| 6b 0d 11 08 05 5d 0d 11 | 12 07 3d 20 30 0d 11 1c |k....]..|..= 0...|
|000030a0| 05 3a 0d 11 26 1c dd 20 | a4 5f 61 73 73 65 6d 62 |.:..&.. |._assemb|
|000030b0| 6c 65 5f 57 69 6d 70 53 | 74 72 4e 43 70 79 0d 11 |le_WimpS|trNCpy..|
|000030c0| 30 0a ea 20 6c 6f 6f 70 | 0d 11 3a 07 ea 20 85 0d |0.. loop|..:.. ..|
|000030d0| 11 44 34 ee 20 85 20 ea | 20 f7 20 85 20 20 3a 20 |.D4. . .| . . : |
|000030e0| 20 f2 5f 65 28 20 22 25 | 2e 43 3a 20 61 73 73 65 | ._e( "%|.C: asse|
|000030f0| 6d 62 6c 65 5f 57 69 6d | 70 53 74 72 4e 43 70 79 |mble_Wim|pStrNCpy|
|00003100| 22 20 29 0d 11 4e 0e 5b | 4f 50 54 20 70 61 73 73 |" )..N.[|OPT pass|
|00003110| 25 0d 11 58 11 20 20 20 | 20 20 20 20 20 41 4c 49 |%..X. | ALI|
|00003120| 47 4e 0d 11 62 10 2e 57 | 69 6d 70 53 74 72 4e 43 |GN..b..W|impStrNC|
|00003130| 70 79 0d 11 6c 22 20 20 | 20 20 20 20 20 20 53 54 |py..l" | ST|
|00003140| 4d 46 44 20 20 20 28 73 | 70 29 21 2c 20 7b 52 33 |MFD (s|p)!, {R3|
|00003150| 2d 52 34 7d 0d 11 76 1a | 20 20 20 20 20 20 20 20 |-R4}..v.| |
|00003160| 4d 4f 56 20 20 20 20 20 | 52 33 2c 20 23 30 0d 11 |MOV |R3, #0..|
|00003170| 80 3e 20 20 20 20 20 20 | 20 20 43 4d 50 20 20 20 |.> | CMP |
|00003180| 20 20 52 32 2c 20 52 33 | 20 20 20 20 20 20 20 20 | R2, R3| |
|00003190| 20 20 20 20 20 20 20 20 | 20 20 5c 20 49 6e 20 63 | | \ In c|
|000031a0| 61 73 65 20 52 32 20 3d | 3d 20 30 2e 0d 11 8a 09 |ase R2 =|= 0.....|
|000031b0| 2e 6c 6f 6f 70 0d 11 94 | 20 20 20 20 20 20 20 20 |.loop...| |
|000031c0| 20 4c 44 52 48 49 42 20 | 20 52 34 2c 20 5b 52 31 | LDRHIB | R4, [R1|
|000031d0| 2c 20 52 33 5d 0d 11 9e | 20 20 20 20 20 20 20 20 |, R3]...| |
|000031e0| 20 53 54 52 48 49 42 20 | 20 52 34 2c 20 5b 52 30 | STRHIB | R4, [R0|
|000031f0| 2c 20 52 33 5d 0d 11 a8 | 1b 20 20 20 20 20 20 20 |, R3]...|. |
|00003200| 20 43 4d 50 48 49 20 20 | 20 52 34 2c 20 23 33 31 | CMPHI | R4, #31|
|00003210| 0d 11 b2 1e 20 20 20 20 | 20 20 20 20 41 44 44 48 |.... | ADDH|
|00003220| 49 20 20 20 52 33 2c 20 | 52 33 2c 20 23 31 0d 11 |I R3, |R3, #1..|
|00003230| bc 1a 20 20 20 20 20 20 | 20 20 43 4d 50 48 49 20 |.. | CMPHI |
|00003240| 20 20 52 32 2c 20 52 33 | 0d 11 c6 18 20 20 20 20 | R2, R3|.... |
|00003250| 20 20 20 20 42 48 49 20 | 20 20 20 20 6c 6f 6f 70 | BHI | loop|
|00003260| 0d 11 d0 22 20 20 20 20 | 20 20 20 20 4c 44 4d 46 |..." | LDMF|
|00003270| 44 20 20 20 28 73 70 29 | 21 2c 20 7b 52 33 2d 52 |D (sp)|!, {R3-R|
|00003280| 34 7d 0d 11 da 1c 20 20 | 20 20 20 20 20 20 4d 4f |4}.... | MO|
|00003290| 56 53 20 20 20 20 70 63 | 2c 20 6c 69 6e 6b 0d 11 |VS pc|, link..|
|000032a0| e4 05 5d 0d 11 ee 07 3d | 20 30 0d 11 f8 05 3a 0d |..]....=| 0....:.|
|000032b0| 12 02 4b f4 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..K.----|--------|
|000032c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000032d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000032e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000032f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 12 0c 05 f4 0d |--------|--......|
|00003300| 12 16 4a f4 20 20 20 20 | 20 49 4e 20 20 20 20 20 |..J. | IN |
|00003310| 20 52 30 20 5e 3d 20 44 | 65 73 74 69 6e 61 74 69 | R0 ^= D|estinati|
|00003320| 6f 6e 2c 20 62 65 67 69 | 6e 6e 69 6e 67 20 77 69 |on, begi|nning wi|
|00003330| 74 68 20 7a 65 72 6f 20 | 74 65 72 6d 69 6e 61 74 |th zero |terminat|
|00003340| 65 64 20 73 74 72 69 6e | 67 0d 12 20 32 f4 20 20 |ed strin|g.. 2. |
|00003350| 20 20 20 20 20 20 20 20 | 20 20 20 52 31 20 5e 3d | | R1 ^=|
|00003360| 20 5a 65 72 6f 20 74 65 | 72 6d 69 6e 61 74 65 64 | Zero te|rminated|
|00003370| 20 62 79 74 65 20 61 72 | 72 61 79 0d 12 2a 39 f4 | byte ar|ray..*9.|
|00003380| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 52 32 20 | | R2 |
|00003390| 3d 3d 20 4c 65 6e 67 74 | 68 20 6f 66 20 64 65 73 |== Lengt|h of des|
|000033a0| 74 69 6e 61 74 69 6f 6e | 20 62 75 66 66 65 72 20 |tination| buffer |
|000033b0| 2d 20 31 2c 0d 12 34 35 | f4 20 20 20 20 20 20 20 |- 1,..45|. |
|000033c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 55 6e 73 69 | | Unsi|
|000033d0| 67 6e 65 64 20 33 32 2d | 62 69 74 20 69 6e 74 65 |gned 32-|bit inte|
|000033e0| 67 65 72 20 28 3e 3d 30 | 29 0d 12 3e 37 f4 20 20 |ger (>=0|)..>7. |
|000033f0| 20 20 20 4f 55 54 20 20 | 20 20 20 5b 52 30 2e 2e | OUT | [R0..|
|00003400| 5d 20 3c 2d 2d 20 5b 52 | 31 2e 2e 5d 20 69 6e 63 |] <-- [R|1..] inc|
|00003410| 6c 75 64 69 6e 67 20 7a | 65 72 6f 20 62 79 74 65 |luding z|ero byte|
|00003420| 0d 12 48 3e f4 20 20 20 | 20 20 20 20 20 20 20 20 |..H>. | |
|00003430| 20 20 44 65 73 74 69 6e | 61 74 69 6f 6e 20 67 75 | Destin|ation gu|
|00003440| 61 72 61 6e 74 65 65 64 | 20 74 6f 20 62 65 20 7a |aranteed| to be z|
|00003450| 65 72 6f 20 74 65 72 6d | 69 6e 61 74 65 64 0d 12 |ero term|inated..|
|00003460| 52 18 f4 20 20 20 20 20 | 42 41 44 20 20 20 20 20 |R.. |BAD |
|00003470| 28 6e 6f 6e 65 29 0d 12 | 5c 16 f4 20 20 20 20 20 |(none)..|\.. |
|00003480| 46 4c 41 47 53 20 20 20 | 4c 69 6e 6b 0d 12 66 18 |FLAGS |Link..f.|
|00003490| dd 20 a4 5f 61 73 73 65 | 6d 62 6c 65 5f 73 74 72 |. ._asse|mble_str|
|000034a0| 6e 63 61 74 0d 12 70 0a | ea 20 6c 6f 6f 70 0d 12 |ncat..p.|. loop..|
|000034b0| 7a 07 ea 20 85 0d 12 84 | 30 ee 20 85 20 ea 20 f7 |z.. ....|0. . . .|
|000034c0| 20 85 20 20 3a 20 20 f2 | 5f 65 28 20 22 25 2e 43 | . : .|_e( "%.C|
|000034d0| 3a 20 61 73 73 65 6d 62 | 6c 65 5f 73 74 72 6e 63 |: assemb|le_strnc|
|000034e0| 61 74 22 20 29 0d 12 8e | 0e 5b 4f 50 54 20 70 61 |at" )...|.[OPT pa|
|000034f0| 73 73 25 0d 12 98 11 20 | 20 20 20 20 20 20 20 41 |ss%.... | A|
|00003500| 4c 49 47 4e 0d 12 a2 0c | 2e 73 74 72 6e 63 61 74 |LIGN....|.strncat|
|00003510| 0d 12 ac 26 20 20 20 20 | 20 20 20 20 53 54 4d 46 |...& | STMF|
|00003520| 44 20 20 20 28 73 70 29 | 21 2c 20 7b 52 31 2c 20 |D (sp)|!, {R1, |
|00003530| 52 33 2d 52 34 7d 0d 12 | b6 1a 20 20 20 20 20 20 |R3-R4}..|.. |
|00003540| 20 20 4d 4f 56 20 20 20 | 20 20 52 33 2c 20 23 30 | MOV | R3, #0|
|00003550| 0d 12 c0 09 2e 6c 6f 6f | 70 0d 12 ca 44 20 20 20 |.....loo|p...D |
|00003560| 20 20 20 20 20 54 45 51 | 20 20 20 20 20 52 33 2c | TEQ| R3,|
|00003570| 20 52 32 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | R2 | |
|00003580| 20 20 20 20 20 5c 20 4d | 61 6b 65 20 73 75 72 65 | \ M|ake sure|
|00003590| 20 6e 6f 20 6f 76 65 72 | 66 6c 6f 77 2e 0d 12 d4 | no over|flow....|
|000035a0| 20 20 20 20 20 20 20 20 | 20 4c 44 52 4e 45 42 20 | | LDRNEB |
|000035b0| 20 52 34 2c 20 5b 52 30 | 2c 20 52 33 5d 0d 12 de | R4, [R0|, R3]...|
|000035c0| 1a 20 20 20 20 20 20 20 | 20 54 45 51 4e 45 20 20 |. | TEQNE |
|000035d0| 20 52 34 2c 20 23 30 0d | 12 e8 1e 20 20 20 20 20 | R4, #0.|... |
|000035e0| 20 20 20 41 44 44 4e 45 | 20 20 20 52 33 2c 20 52 | ADDNE| R3, R|
|000035f0| 33 2c 20 23 31 0d 12 f2 | 18 20 20 20 20 20 20 20 |3, #1...|. |
|00003600| 20 42 4e 45 20 20 20 20 | 20 6c 6f 6f 70 0d 12 fc | BNE | loop...|
|00003610| 09 2e 6c 6f 6f 70 0d 13 | 06 1a 20 20 20 20 20 20 |..loop..|.. |
|00003620| 20 20 54 45 51 20 20 20 | 20 20 52 33 2c 20 52 32 | TEQ | R3, R2|
|00003630| 0d 13 10 32 20 20 20 20 | 20 20 20 20 4c 44 52 4e |...2 | LDRN|
|00003640| 45 42 20 20 52 34 2c 20 | 5b 52 31 5d 2c 20 23 31 |EB R4, |[R1], #1|
|00003650| 20 20 20 20 5c 20 53 6f | 75 72 63 65 20 62 79 74 | \ So|urce byt|
|00003660| 65 2e 0d 13 1a 1a 20 20 | 20 20 20 20 20 20 54 45 |e..... | TE|
|00003670| 51 4e 45 20 20 20 52 34 | 2c 20 23 30 0d 13 24 20 |QNE R4|, #0..$ |
|00003680| 20 20 20 20 20 20 20 20 | 53 54 52 4e 45 42 20 20 | |STRNEB |
|00003690| 52 34 2c 20 5b 52 30 2c | 20 52 33 5d 0d 13 2e 1e |R4, [R0,| R3]....|
|000036a0| 20 20 20 20 20 20 20 20 | 41 44 44 4e 45 20 20 20 | |ADDNE |
|000036b0| 52 33 2c 20 52 33 2c 20 | 23 31 0d 13 38 18 20 20 |R3, R3, |#1..8. |
|000036c0| 20 20 20 20 20 20 42 4e | 45 20 20 20 20 20 6c 6f | BN|E lo|
|000036d0| 6f 70 0d 13 42 1a 20 20 | 20 20 20 20 20 20 4d 4f |op..B. | MO|
|000036e0| 56 20 20 20 20 20 52 34 | 2c 20 23 30 0d 13 4c 48 |V R4|, #0..LH|
|000036f0| 20 20 20 20 20 20 20 20 | 53 54 52 42 20 20 20 20 | |STRB |
|00003700| 52 34 2c 20 5b 52 30 2c | 20 52 33 5d 20 20 20 20 |R4, [R0,| R3] |
|00003710| 5c 20 41 6c 77 61 79 73 | 20 7a 65 72 6f 2d 74 65 |\ Always| zero-te|
|00003720| 72 6d 69 6e 61 74 65 20 | 64 65 73 74 69 6e 61 74 |rminate |destinat|
|00003730| 69 6f 6e 2e 0d 13 56 26 | 20 20 20 20 20 20 20 20 |ion...V&| |
|00003740| 4c 44 4d 46 44 20 20 20 | 28 73 70 29 21 2c 20 7b |LDMFD |(sp)!, {|
|00003750| 52 31 2c 20 52 33 2d 52 | 34 7d 0d 13 60 1c 20 20 |R1, R3-R|4}..`. |
|00003760| 20 20 20 20 20 20 4d 4f | 56 53 20 20 20 20 70 63 | MO|VS pc|
|00003770| 2c 20 6c 69 6e 6b 0d 13 | 6a 05 5d 0d 13 74 07 3d |, link..|j.]..t.=|
|00003780| 20 30 0d 13 7e 05 3a 0d | 13 88 4b f4 2d 2d 2d 2d | 0..~.:.|..K.----|
|00003790| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000037a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000037b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000037c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000037d0| 2d 2d 0d 13 92 05 f4 0d | 13 9c 4a f4 20 20 20 20 |--......|..J. |
|000037e0| 20 49 4e 20 20 20 20 20 | 20 52 30 20 5e 3d 20 44 | IN | R0 ^= D|
|000037f0| 65 73 74 69 6e 61 74 69 | 6f 6e 2c 20 62 65 67 69 |estinati|on, begi|
|00003800| 6e 6e 69 6e 67 20 77 69 | 74 68 20 7a 65 72 6f 20 |nning wi|th zero |
|00003810| 74 65 72 6d 69 6e 61 74 | 65 64 20 73 74 72 69 6e |terminat|ed strin|
|00003820| 67 0d 13 a6 32 f4 20 20 | 20 20 20 20 20 20 20 20 |g...2. | |
|00003830| 20 20 20 52 31 20 5e 3d | 20 5a 65 72 6f 20 74 65 | R1 ^=| Zero te|
|00003840| 72 6d 69 6e 61 74 65 64 | 20 62 79 74 65 20 61 72 |rminated| byte ar|
|00003850| 72 61 79 0d 13 b0 37 f4 | 20 20 20 20 20 4f 55 54 |ray...7.| OUT|
|00003860| 20 20 20 20 20 5b 52 30 | 2e 2e 5d 20 3c 2d 2d 20 | [R0|..] <-- |
|00003870| 5b 52 31 2e 2e 5d 20 69 | 6e 63 6c 75 64 69 6e 67 |[R1..] i|ncluding|
|00003880| 20 7a 65 72 6f 20 62 79 | 74 65 0d 13 ba 18 f4 20 | zero by|te..... |
|00003890| 20 20 20 20 42 41 44 20 | 20 20 20 20 28 6e 6f 6e | BAD | (non|
|000038a0| 65 29 0d 13 c4 16 f4 20 | 20 20 20 20 46 4c 41 47 |e)..... | FLAG|
|000038b0| 53 20 20 20 4c 69 6e 6b | 0d 13 ce 17 dd 20 a4 5f |S Link|..... ._|
|000038c0| 61 73 73 65 6d 62 6c 65 | 5f 73 74 72 63 61 74 0d |assemble|_strcat.|
|000038d0| 13 d8 0a ea 20 6c 6f 6f | 70 0d 13 e2 07 ea 20 85 |.... loo|p..... .|
|000038e0| 0d 13 ec 2f ee 20 85 20 | ea 20 f7 20 85 20 20 3a |.../. . |. . . :|
|000038f0| 20 20 f2 5f 65 28 20 22 | 25 2e 43 3a 20 61 73 73 | ._e( "|%.C: ass|
|00003900| 65 6d 62 6c 65 5f 73 74 | 72 63 61 74 22 20 29 0d |emble_st|rcat" ).|
|00003910| 13 f6 0e 5b 4f 50 54 20 | 70 61 73 73 25 0d 14 00 |...[OPT |pass%...|
|00003920| 11 20 20 20 20 20 20 20 | 20 41 4c 49 47 4e 0d 14 |. | ALIGN..|
|00003930| 0a 0b 2e 73 74 72 63 61 | 74 0d 14 14 22 20 20 20 |...strca|t..." |
|00003940| 20 20 20 20 20 53 54 4d | 46 44 20 20 20 28 73 70 | STM|FD (sp|
|00003950| 29 21 2c 20 7b 52 30 2d | 52 32 7d 0d 14 1e 09 2e |)!, {R0-|R2}.....|
|00003960| 6c 6f 6f 70 0d 14 28 20 | 20 20 20 20 20 20 20 20 |loop..( | |
|00003970| 4c 44 52 42 20 20 20 20 | 52 32 2c 20 5b 52 30 5d |LDRB |R2, [R0]|
|00003980| 2c 20 23 31 0d 14 32 1a | 20 20 20 20 20 20 20 20 |, #1..2.| |
|00003990| 54 45 51 20 20 20 20 20 | 52 32 2c 20 23 30 0d 14 |TEQ |R2, #0..|
|000039a0| 3c 18 20 20 20 20 20 20 | 20 20 42 4e 45 20 20 20 |<. | BNE |
|000039b0| 20 20 6c 6f 6f 70 0d 14 | 46 1e 20 20 20 20 20 20 | loop..|F. |
|000039c0| 20 20 53 55 42 20 20 20 | 20 20 52 30 2c 20 52 30 | SUB | R0, R0|
|000039d0| 2c 20 23 31 0d 14 50 09 | 2e 6c 6f 6f 70 0d 14 5a |, #1..P.|.loop..Z|
|000039e0| 32 20 20 20 20 20 20 20 | 20 4c 44 52 42 20 20 20 |2 | LDRB |
|000039f0| 20 52 32 2c 20 5b 52 31 | 5d 2c 20 23 31 20 20 20 | R2, [R1|], #1 |
|00003a00| 20 5c 20 53 6f 75 72 63 | 65 20 62 79 74 65 2e 0d | \ Sourc|e byte..|
|00003a10| 14 64 20 20 20 20 20 20 | 20 20 20 53 54 52 42 20 |.d | STRB |
|00003a20| 20 20 20 52 32 2c 20 5b | 52 30 5d 2c 20 23 31 0d | R2, [|R0], #1.|
|00003a30| 14 6e 1a 20 20 20 20 20 | 20 20 20 54 45 51 20 20 |.n. | TEQ |
|00003a40| 20 20 20 52 32 2c 20 23 | 30 0d 14 78 18 20 20 20 | R2, #|0..x. |
|00003a50| 20 20 20 20 20 42 4e 45 | 20 20 20 20 20 6c 6f 6f | BNE| loo|
|00003a60| 70 0d 14 82 22 20 20 20 | 20 20 20 20 20 4c 44 4d |p..." | LDM|
|00003a70| 46 44 20 20 20 28 73 70 | 29 21 2c 20 7b 52 30 2d |FD (sp|)!, {R0-|
|00003a80| 52 32 7d 0d 14 8c 1c 20 | 20 20 20 20 20 20 20 4d |R2}.... | M|
|00003a90| 4f 56 53 20 20 20 20 70 | 63 2c 20 6c 69 6e 6b 0d |OVS p|c, link.|
|00003aa0| 14 96 05 5d 0d 14 a0 07 | 3d 20 30 0d 14 aa 05 3a |...]....|= 0....:|
|00003ab0| 0d 14 b4 4b f4 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |...K.---|--------|
|00003ac0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003ad0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003ae0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003af0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 14 be 05 f4 |--------|---.....|
|00003b00| 0d 14 c8 4a f4 20 20 20 | 20 20 49 4e 20 20 20 20 |...J. | IN |
|00003b10| 20 20 52 30 20 5e 3d 20 | 44 65 73 74 69 6e 61 74 | R0 ^= |Destinat|
|00003b20| 69 6f 6e 2c 20 62 65 67 | 69 6e 6e 69 6e 67 20 77 |ion, beg|inning w|
|00003b30| 69 74 68 20 7a 65 72 6f | 20 74 65 72 6d 69 6e 61 |ith zero| termina|
|00003b40| 74 65 64 20 73 74 72 69 | 6e 67 0d 14 d2 32 f4 20 |ted stri|ng...2. |
|00003b50| 20 20 20 20 20 20 20 20 | 20 20 20 20 52 31 20 5e | | R1 ^|
|00003b60| 3d 20 5a 65 72 6f 20 74 | 65 72 6d 69 6e 61 74 65 |= Zero t|erminate|
|00003b70| 64 20 62 79 74 65 20 61 | 72 72 61 79 0d 14 dc 37 |d byte a|rray...7|
|00003b80| f4 20 20 20 20 20 4f 55 | 54 20 20 20 20 20 5b 52 |. OU|T [R|
|00003b90| 30 2e 2e 5d 20 3c 2d 2d | 20 5b 52 31 2e 2e 5d 20 |0..] <--| [R1..] |
|00003ba0| 69 6e 63 6c 75 64 69 6e | 67 20 7a 65 72 6f 20 62 |includin|g zero b|
|00003bb0| 79 74 65 0d 14 e6 3c f4 | 20 20 20 20 20 20 20 20 |yte...<.| |
|00003bc0| 20 20 20 20 20 52 30 20 | 3c 2d 2d 20 45 6e 64 20 | R0 |<-- End |
|00003bd0| 6f 66 20 73 74 72 69 6e | 67 20 28 70 6f 69 6e 74 |of strin|g (point|
|00003be0| 73 20 74 6f 20 7a 65 72 | 6f 20 62 79 74 65 29 0d |s to zer|o byte).|
|00003bf0| 14 f0 17 dd 20 a4 5f 61 | 73 73 65 6d 62 6c 65 5f |.... ._a|ssemble_|
|00003c00| 73 74 70 63 61 74 0d 14 | fa 0a ea 20 6c 6f 6f 70 |stpcat..|... loop|
|00003c10| 0d 15 04 07 ea 20 85 0d | 15 0e 2f ee 20 85 20 ea |..... ..|../. . .|
|00003c20| 20 f7 20 85 20 20 3a 20 | 20 f2 5f 65 28 20 22 25 | . . : | ._e( "%|
|00003c30| 2e 43 3a 20 61 73 73 65 | 6d 62 6c 65 5f 73 74 70 |.C: asse|mble_stp|
|00003c40| 63 61 74 22 20 29 0d 15 | 18 0e 5b 4f 50 54 20 70 |cat" )..|..[OPT p|
|00003c50| 61 73 73 25 0d 15 22 11 | 20 20 20 20 20 20 20 20 |ass%..".| |
|00003c60| 41 4c 49 47 4e 0d 15 2c | 0b 2e 73 74 70 63 61 74 |ALIGN..,|..stpcat|
|00003c70| 0d 15 36 25 20 20 20 20 | 20 20 20 20 53 54 4d 46 |..6% | STMF|
|00003c80| 44 20 20 20 28 73 70 29 | 21 2c 20 7b 52 31 2c 20 |D (sp)|!, {R1, |
|00003c90| 6c 69 6e 6b 7d 0d 15 40 | 09 2e 6c 6f 6f 70 0d 15 |link}..@|..loop..|
|00003ca0| 4a 22 20 20 20 20 20 20 | 20 20 4c 44 52 42 20 20 |J" | LDRB |
|00003cb0| 20 20 6c 69 6e 6b 2c 20 | 5b 52 30 5d 2c 20 23 31 | link, |[R0], #1|
|00003cc0| 0d 15 54 1c 20 20 20 20 | 20 20 20 20 54 45 51 20 |..T. | TEQ |
|00003cd0| 20 20 20 20 6c 69 6e 6b | 2c 20 23 30 0d 15 5e 18 | link|, #0..^.|
|00003ce0| 20 20 20 20 20 20 20 20 | 42 4e 45 20 20 20 20 20 | |BNE |
|00003cf0| 6c 6f 6f 70 0d 15 68 1e | 20 20 20 20 20 20 20 20 |loop..h.| |
|00003d00| 53 55 42 20 20 20 20 20 | 52 30 2c 20 52 30 2c 20 |SUB |R0, R0, |
|00003d10| 23 31 0d 15 72 09 2e 6c | 6f 6f 70 0d 15 7c 31 20 |#1..r..l|oop..|1 |
|00003d20| 20 20 20 20 20 20 20 4c | 44 52 42 20 20 20 20 6c | L|DRB l|
|00003d30| 69 6e 6b 2c 20 5b 52 31 | 5d 2c 20 23 31 20 20 5c |ink, [R1|], #1 \|
|00003d40| 20 53 6f 75 72 63 65 20 | 62 79 74 65 0d 15 86 22 | Source |byte..."|
|00003d50| 20 20 20 20 20 20 20 20 | 53 54 52 42 20 20 20 20 | |STRB |
|00003d60| 6c 69 6e 6b 2c 20 5b 52 | 30 5d 2c 20 23 31 0d 15 |link, [R|0], #1..|
|00003d70| 90 1c 20 20 20 20 20 20 | 20 20 54 45 51 20 20 20 |.. | TEQ |
|00003d80| 20 20 6c 69 6e 6b 2c 20 | 23 30 0d 15 9a 18 20 20 | link, |#0.... |
|00003d90| 20 20 20 20 20 20 42 6e | 65 20 20 20 20 20 6c 6f | Bn|e lo|
|00003da0| 6f 70 0d 15 a4 1e 20 20 | 20 20 20 20 20 20 53 55 |op.... | SU|
|00003db0| 42 20 20 20 20 20 52 30 | 2c 20 52 30 2c 20 23 31 |B R0|, R0, #1|
|00003dc0| 0d 15 ae 24 20 20 20 20 | 20 20 20 20 4c 44 4d 46 |...$ | LDMF|
|00003dd0| 44 20 20 20 28 73 70 29 | 21 2c 20 7b 52 31 2c 20 |D (sp)|!, {R1, |
|00003de0| 70 63 7d 5e 0d 15 b8 05 | 5d 0d 15 c2 07 3d 20 30 |pc}^....|]....= 0|
|00003df0| 0d 15 cc 05 3a 0d 15 d6 | 4a f4 2d 2d 2d 2d 2d 2d |....:...|J.------|
|00003e00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003e10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003e20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003e30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00003e40| 15 e0 05 f4 0d 15 ea 3b | f4 20 20 20 20 20 49 4e |.......;|. IN|
|00003e50| 20 20 20 20 20 20 52 30 | 20 5e 3d 20 44 65 73 74 | R0| ^= Dest|
|00003e60| 69 6e 61 74 69 6f 6e 2c | 20 7a 65 72 6f 20 74 65 |ination,| zero te|
|00003e70| 72 6d 69 6e 61 74 65 64 | 20 73 74 72 69 6e 67 0d |rminated| string.|
|00003e80| 15 f4 44 f4 20 20 20 20 | 20 20 20 20 20 20 20 20 |..D. | |
|00003e90| 20 52 31 20 5e 3d 20 53 | 6f 75 72 63 65 2c 20 6e | R1 ^= S|ource, n|
|00003ea0| 75 6c 6c 2d 74 65 72 6d | 69 6e 61 74 65 64 20 2f |ull-term|inated /|
|00003eb0| 20 6d 61 78 20 52 33 20 | 63 68 61 72 61 63 74 65 | max R3 |characte|
|00003ec0| 72 73 2e 0d 15 fe 2a f4 | 20 20 20 20 20 20 20 20 |rs....*.| |
|00003ed0| 20 20 20 20 20 52 32 20 | 3d 3d 20 53 69 7a 65 20 | R2 |== Size |
|00003ee0| 6f 66 20 62 75 66 66 65 | 72 20 2d 20 31 0d 16 08 |of buffe|r - 1...|
|00003ef0| 42 f4 20 20 20 20 20 20 | 20 20 20 20 20 20 20 52 |B. | R|
|00003f00| 33 20 3d 3d 20 4d 61 78 | 69 6d 75 6d 20 6e 75 6d |3 == Max|imum num|
|00003f10| 62 65 72 20 6f 66 20 63 | 68 61 72 61 63 74 65 72 |ber of c|haracter|
|00003f20| 73 20 74 6f 20 63 6f 70 | 79 20 28 31 2b 29 2e 0d |s to cop|y (1+)..|
|00003f30| 16 12 39 f4 20 20 20 20 | 20 4f 55 54 20 20 20 20 |..9. | OUT |
|00003f40| 20 5b 52 30 5d 20 3c 2d | 2d 20 53 74 72 69 6e 67 | [R0] <-|- String|
|00003f50| 20 63 6f 6e 63 61 74 65 | 6e 61 74 65 64 2c 20 75 | concate|nated, u|
|00003f60| 73 69 6e 67 20 52 32 2e | 0d 16 1c 16 f4 20 20 20 |sing R2.|..... |
|00003f70| 20 20 42 41 44 20 20 20 | 20 20 6c 69 6e 6b 0d 16 | BAD | link..|
|00003f80| 26 16 f4 20 20 20 20 20 | 46 4c 41 47 53 20 20 20 |&.. |FLAGS |
|00003f90| 4c 69 6e 6b 0d 16 30 19 | dd 20 a4 5f 61 73 73 65 |Link..0.|. ._asse|
|00003fa0| 6d 62 6c 65 5f 73 74 72 | 6e 63 61 74 6e 0d 16 3a |mble_str|ncatn..:|
|00003fb0| 0a ea 20 6c 6f 6f 70 0d | 16 44 07 ea 20 85 0d 16 |.. loop.|.D.. ...|
|00003fc0| 4e 31 ee 20 85 20 ea 20 | f7 20 85 20 20 3a 20 20 |N1. . . |. . : |
|00003fd0| f2 5f 65 28 20 22 25 2e | 43 3a 20 61 73 73 65 6d |._e( "%.|C: assem|
|00003fe0| 62 6c 65 5f 73 74 72 6e | 63 61 74 6e 22 20 29 0d |ble_strn|catn" ).|
|00003ff0| 16 58 0e 5b 4f 50 54 20 | 70 61 73 73 25 0d 16 62 |.X.[OPT |pass%..b|
|00004000| 11 20 20 20 20 20 20 20 | 20 41 4c 49 47 4e 0d 16 |. | ALIGN..|
|00004010| 6c 0d 2e 73 74 72 6e 63 | 61 74 6e 0d 16 76 26 20 |l..strnc|atn..v& |
|00004020| 20 20 20 20 20 20 20 53 | 54 4d 46 44 20 20 20 28 | S|TMFD (|
|00004030| 73 70 29 21 2c 20 7b 52 | 31 2c 20 52 33 2d 52 35 |sp)!, {R|1, R3-R5|
|00004040| 7d 0d 16 80 1a 20 20 20 | 20 20 20 20 20 4d 4f 56 |}.... | MOV|
|00004050| 20 20 20 20 20 52 34 2c | 20 23 30 0d 16 8a 09 2e | R4,| #0.....|
|00004060| 6c 6f 6f 70 0d 16 94 1a | 20 20 20 20 20 20 20 20 |loop....| |
|00004070| 54 45 51 20 20 20 20 20 | 52 34 2c 20 52 32 0d 16 |TEQ |R4, R2..|
|00004080| 9e 20 20 20 20 20 20 20 | 20 20 4c 44 52 4e 45 42 |. | LDRNEB|
|00004090| 20 20 52 35 2c 20 5b 52 | 30 2c 20 52 34 5d 0d 16 | R5, [R|0, R4]..|
|000040a0| a8 1a 20 20 20 20 20 20 | 20 20 54 45 51 4e 45 20 |.. | TEQNE |
|000040b0| 20 20 52 35 2c 20 23 30 | 0d 16 b2 1e 20 20 20 20 | R5, #0|.... |
|000040c0| 20 20 20 20 41 44 44 4e | 45 20 20 20 52 34 2c 20 | ADDN|E R4, |
|000040d0| 52 34 2c 20 23 31 0d 16 | bc 18 20 20 20 20 20 20 |R4, #1..|.. |
|000040e0| 20 20 42 4e 45 20 20 20 | 20 20 6c 6f 6f 70 0d 16 | BNE | loop..|
|000040f0| c6 09 2e 6c 6f 6f 70 0d | 16 d0 1a 20 20 20 20 20 |...loop.|... |
|00004100| 20 20 20 54 45 51 20 20 | 20 20 20 52 34 2c 20 52 | TEQ | R4, R|
|00004110| 32 0d 16 da 42 20 20 20 | 20 20 20 20 20 4c 44 52 |2...B | LDR|
|00004120| 4e 45 42 20 20 52 35 2c | 20 5b 52 31 5d 2c 20 23 |NEB R5,| [R1], #|
|00004130| 31 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |1 | |
|00004140| 20 20 20 20 20 5c 20 53 | 6f 75 72 63 65 20 62 79 | \ S|ource by|
|00004150| 74 65 2e 0d 16 e4 1a 20 | 20 20 20 20 20 20 20 54 |te..... | T|
|00004160| 45 51 4e 45 20 20 20 52 | 35 2c 20 23 30 0d 16 ee |EQNE R|5, #0...|
|00004170| 20 20 20 20 20 20 20 20 | 20 53 54 52 4e 45 42 20 | | STRNEB |
|00004180| 20 52 35 2c 20 5b 52 30 | 2c 20 52 34 5d 0d 16 f8 | R5, [R0|, R4]...|
|00004190| 1e 20 20 20 20 20 20 20 | 20 41 44 44 4e 45 20 20 |. | ADDNE |
|000041a0| 20 52 34 2c 20 52 34 2c | 20 23 31 0d 17 02 4d 20 | R4, R4,| #1...M |
|000041b0| 20 20 20 20 20 20 20 53 | 55 42 4e 45 53 20 20 52 | S|UBNES R|
|000041c0| 33 2c 20 52 33 2c 20 23 | 31 20 20 20 20 20 20 20 |3, R3, #|1 |
|000041d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 5c | | \|
|000041e0| 20 4e 6f 77 20 64 65 63 | 20 73 6f 75 72 63 65 20 | Now dec| source |
|000041f0| 63 6f 75 6e 74 65 72 2e | 0d 17 0c 18 20 20 20 20 |counter.|.... |
|00004200| 20 20 20 20 42 4e 45 20 | 20 20 20 20 6c 6f 6f 70 | BNE | loop|
|00004210| 0d 17 16 1a 20 20 20 20 | 20 20 20 20 4d 4f 56 20 |.... | MOV |
|00004220| 20 20 20 20 52 35 2c 20 | 23 30 0d 17 20 4c 20 20 | R5, |#0.. L |
|00004230| 20 20 20 20 20 20 53 54 | 52 42 20 20 20 20 52 35 | ST|RB R5|
|00004240| 2c 20 5b 52 30 2c 20 52 | 34 5d 20 20 20 20 20 20 |, [R0, R|4] |
|00004250| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 5c 20 | | \ |
|00004260| 41 6c 77 61 79 73 20 7a | 65 72 6f 2d 74 65 72 6d |Always z|ero-term|
|00004270| 69 6e 61 74 65 2e 0d 17 | 2a 26 20 20 20 20 20 20 |inate...|*& |
|00004280| 20 20 4c 44 4d 46 44 20 | 20 20 28 73 70 29 21 2c | LDMFD | (sp)!,|
|00004290| 20 7b 52 31 2c 20 52 33 | 2d 52 35 7d 0d 17 34 1c | {R1, R3|-R5}..4.|
|000042a0| 20 20 20 20 20 20 20 20 | 4d 4f 56 53 20 20 20 20 | |MOVS |
|000042b0| 70 63 2c 20 6c 69 6e 6b | 0d 17 3e 05 5d 0d 17 48 |pc, link|..>.]..H|
|000042c0| 07 3d 20 30 0d 17 52 05 | 3a 0d 17 5c 17 dd 20 a4 |.= 0..R.|:..\.. .|
|000042d0| 5f 61 73 73 65 6d 62 6c | 65 5f 6d 65 6d 63 70 79 |_assembl|e_memcpy|
|000042e0| 0d 17 66 10 ea 20 6c 6f | 6f 70 2c 20 66 61 73 74 |..f.. lo|op, fast|
|000042f0| 0d 17 70 07 ea 20 85 0d | 17 7a 2f ee 20 85 20 ea |..p.. ..|.z/. . .|
|00004300| 20 f7 20 85 20 20 3a 20 | 20 f2 5f 65 28 20 22 25 | . . : | ._e( "%|
|00004310| 2e 43 3a 20 61 73 73 65 | 6d 62 6c 65 5f 6d 65 6d |.C: asse|mble_mem|
|00004320| 63 70 79 22 20 29 0d 17 | 84 0e 5b 4f 50 54 20 70 |cpy" )..|..[OPT p|
|00004330| 61 73 73 25 0d 17 8e 11 | 20 20 20 20 20 20 20 20 |ass%....| |
|00004340| 41 4c 49 47 4e 0d 17 98 | 4b 3b 20 2d 2d 2d 2d 2d |ALIGN...|K; -----|
|00004350| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004360| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004370| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004380| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004390| 0d 17 a2 2e 3b 20 41 4e | 53 49 20 43 20 66 75 6e |....; AN|SI C fun|
|000043a0| 63 74 69 6f 6e 20 74 6f | 20 63 6f 70 79 20 62 6c |ction to| copy bl|
|000043b0| 6f 63 6b 73 20 6f 66 20 | 6d 65 6d 6f 72 79 0d 17 |ocks of |memory..|
|000043c0| ac 4e 3b 20 4e 6f 74 65 | 20 74 68 61 74 20 74 68 |.N; Note| that th|
|000043d0| 65 20 62 65 68 61 76 69 | 6f 75 72 20 6f 66 20 74 |e behavi|our of t|
|000043e0| 68 69 73 20 66 75 6e 63 | 74 69 6f 6e 20 69 73 20 |his func|tion is |
|000043f0| 75 6e 64 65 66 69 6e 65 | 64 20 69 66 20 62 6c 6f |undefine|d if blo|
|00004400| 63 6b 73 20 6f 76 65 72 | 6c 61 70 2c 0d 17 b6 27 |cks over|lap,...'|
|00004410| 3b 20 75 73 65 20 6d 65 | 6d 6d 6f 76 65 28 29 20 |; use me|mmove() |
|00004420| 69 66 20 74 68 65 79 20 | 6d 61 79 20 6f 76 65 72 |if they |may over|
|00004430| 6c 61 70 0d 17 c0 05 3b | 0d 17 ca 44 3b 20 20 20 |lap....;|...D; |
|00004440| 20 20 20 20 6d 65 6d 63 | 70 79 28 20 72 65 66 20 | memc|py( ref |
|00004450| 63 68 61 72 20 74 6f 2c | 20 66 72 6f 6d 3b 20 75 |char to,| from; u|
|00004460| 6e 73 69 67 6e 65 64 20 | 69 6e 74 20 6e 20 29 20 |nsigned |int n ) |
|00004470| 72 65 66 20 63 68 61 72 | 20 74 6f 3b 0d 17 d4 05 |ref char| to;....|
|00004480| 3b 0d 17 de 4c 3b 20 53 | 6c 69 67 68 74 6c 79 20 |;...L; S|lightly |
|00004490| 6f 70 74 69 6d 69 73 65 | 64 20 2d 20 61 73 73 75 |optimise|d - assu|
|000044a0| 6d 65 73 20 74 68 61 74 | 20 6d 65 6d 6f 72 79 20 |mes that| memory |
|000044b0| 70 72 6f 74 65 63 74 69 | 6f 6e 20 69 73 20 57 4f |protecti|on is WO|
|000044c0| 52 44 20 61 6c 69 67 6e | 65 64 20 61 74 0d 17 e8 |RD align|ed at...|
|000044d0| 3f 3b 20 6c 65 61 73 74 | 2c 20 73 6f 20 77 6f 6e |?; least|, so won|
|000044e0| 27 74 20 67 65 74 20 66 | 65 74 63 68 20 61 62 6f |'t get f|etch abo|
|000044f0| 72 74 73 20 69 66 20 72 | 65 61 64 20 74 6f 20 77 |rts if r|ead to w|
|00004500| 6f 72 64 20 62 6f 75 6e | 64 61 72 79 0d 17 f2 04 |ord boun|dary....|
|00004510| 0d 17 fc 3e 3b 20 48 65 | 72 65 20 77 68 65 6e 20 |...>; He|re when |
|00004520| 62 6f 74 68 20 52 30 2c | 20 52 31 20 77 6f 72 64 |both R0,| R1 word|
|00004530| 20 61 6c 69 67 6e 65 64 | 2c 20 74 68 6f 75 67 68 | aligned|, though|
|00004540| 20 52 32 20 6d 61 79 20 | 6e 6f 74 20 62 65 0d 18 | R2 may |not be..|
|00004550| 06 04 0d 18 10 1e 2e 66 | 61 73 74 20 20 20 53 55 |.......f|ast SU|
|00004560| 42 53 20 20 20 20 52 32 | 2c 20 52 32 2c 20 23 34 |BS R2|, R2, #4|
|00004570| 0d 18 1a 45 20 20 20 20 | 20 20 20 20 4c 44 52 20 |...E | LDR |
|00004580| 20 20 20 20 6c 72 2c 20 | 5b 52 31 5d 2c 20 23 34 | lr, |[R1], #4|
|00004590| 20 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 41 6c | | ; Al|
|000045a0| 77 61 79 73 20 72 65 61 | 64 20 66 72 6f 6d 20 73 |ways rea|d from s|
|000045b0| 6f 75 72 63 65 0d 18 24 | 48 20 20 20 20 20 20 20 |ource..$|H |
|000045c0| 20 53 54 52 70 6c 20 20 | 20 6c 72 2c 20 5b 52 30 | STRpl | lr, [R0|
|000045d0| 5d 2c 20 23 34 20 20 20 | 20 20 20 20 20 20 20 20 |], #4 | |
|000045e0| 20 3b 20 4f 6e 6c 79 20 | 69 66 20 61 6c 6c 20 6f | ; Only |if all o|
|000045f0| 66 20 77 6f 72 64 20 6e | 65 65 64 65 64 0d 18 2e |f word n|eeded...|
|00004600| 40 20 20 20 20 20 20 20 | 20 42 68 69 20 20 20 20 |@ | Bhi |
|00004610| 20 66 61 73 74 20 20 20 | 20 20 20 20 20 20 20 20 | fast | |
|00004620| 20 20 20 20 20 20 20 20 | 20 3b 20 57 68 69 6c 65 | | ; While|
|00004630| 20 6d 6f 72 65 20 74 6f | 20 63 6f 70 79 0d 18 38 | more to| copy..8|
|00004640| 42 20 20 20 20 20 20 20 | 20 4c 44 4d 65 71 46 44 |B | LDMeqFD|
|00004650| 20 28 73 70 29 21 2c 20 | 7b 52 30 2d 52 32 2c 20 | (sp)!, |{R0-R2, |
|00004660| 70 63 7d 5e 20 20 20 20 | 3b 20 53 69 6d 70 6c 65 |pc}^ |; Simple|
|00004670| 2c 20 77 61 73 20 61 6c | 6c 20 77 6f 72 64 73 0d |, was al|l words.|
|00004680| 18 42 04 0d 18 4c 3a 3b | 20 48 65 72 65 20 77 68 |.B...L:;| Here wh|
|00004690| 65 6e 20 67 6f 74 20 31 | 2c 20 32 2c 20 6f 72 20 |en got 1|, 2, or |
|000046a0| 33 20 62 79 74 65 73 20 | 28 52 32 20 2b 20 34 29 |3 bytes |(R2 + 4)|
|000046b0| 20 6c 65 66 74 20 74 6f | 20 63 6f 70 79 0d 18 56 | left to| copy..V|
|000046c0| 04 0d 18 60 1e 20 20 20 | 20 20 20 20 20 41 44 44 |...`. | ADD|
|000046d0| 20 20 20 20 20 52 32 2c | 20 52 32 2c 20 23 34 0d | R2,| R2, #4.|
|000046e0| 18 6a 20 2e 6c 6f 6f 70 | 20 20 20 53 54 52 42 20 |.j .loop| STRB |
|000046f0| 20 20 20 6c 72 2c 20 5b | 52 30 5d 2c 20 23 31 0d | lr, [|R0], #1.|
|00004700| 18 74 1e 20 20 20 20 20 | 20 20 20 53 55 42 53 20 |.t. | SUBS |
|00004710| 20 20 20 52 32 2c 20 52 | 32 2c 20 23 31 0d 18 7e | R2, R|2, #1..~|
|00004720| 43 20 20 20 20 20 20 20 | 20 4d 4f 56 68 69 20 20 |C | MOVhi |
|00004730| 20 6c 72 2c 20 6c 72 2c | 20 4c 53 52 20 23 38 20 | lr, lr,| LSR #8 |
|00004740| 20 20 20 20 20 20 20 20 | 20 3b 20 51 75 69 63 6b | | ; Quick|
|00004750| 65 72 20 74 68 61 6e 20 | 4c 44 52 42 27 69 6e 67 |er than |LDRB'ing|
|00004760| 0d 18 88 18 20 20 20 20 | 20 20 20 20 42 68 69 20 |.... | Bhi |
|00004770| 20 20 20 20 6c 6f 6f 70 | 0d 18 92 27 20 20 20 20 | loop|...' |
|00004780| 20 20 20 20 4c 44 4d 46 | 44 20 20 20 28 73 70 29 | LDMF|D (sp)|
|00004790| 21 2c 20 7b 52 30 2d 52 | 32 2c 20 70 63 7d 5e 0d |!, {R0-R|2, pc}^.|
|000047a0| 18 9c 04 0d 18 a6 0b 2e | 6d 65 6d 63 70 79 0d 18 |........|memcpy..|
|000047b0| b0 26 20 20 20 20 20 20 | 20 20 53 54 4d 46 44 20 |.& | STMFD |
|000047c0| 20 20 28 73 70 29 21 2c | 20 7b 52 30 2d 52 32 2c | (sp)!,| {R0-R2,|
|000047d0| 20 6c 72 7d 0d 18 ba 1d | 20 20 20 20 20 20 20 20 | lr}....| |
|000047e0| 84 52 20 20 20 20 20 6c | 72 2c 20 52 31 2c 20 52 |.R l|r, R1, R|
|000047f0| 30 0d 18 c4 1a 20 20 20 | 20 20 20 20 20 54 53 54 |0.... | TST|
|00004800| 20 20 20 20 20 6c 72 2c | 20 23 33 0d 18 ce 47 20 | lr,| #3...G |
|00004810| 20 20 20 20 20 20 20 42 | 65 71 20 20 20 20 20 66 | B|eq f|
|00004820| 61 73 74 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |ast | |
|00004830| 20 20 20 20 20 20 20 3b | 20 4a 75 6d 70 20 69 66 | ;| Jump if|
|00004840| 20 62 6f 74 68 20 77 6f | 72 64 20 61 6c 69 67 6e | both wo|rd align|
|00004850| 65 64 0d 18 d8 1e 2e 6c | 6f 6f 70 20 20 20 53 55 |ed.....l|oop SU|
|00004860| 42 53 20 20 20 20 52 32 | 2c 20 52 32 2c 20 23 31 |BS R2|, R2, #1|
|00004870| 0d 18 e2 20 20 20 20 20 | 20 20 20 20 4c 44 52 70 |... | LDRp|
|00004880| 6c 42 20 20 6c 72 2c 20 | 5b 52 31 5d 2c 20 23 31 |lB lr, |[R1], #1|
|00004890| 0d 18 ec 20 20 20 20 20 | 20 20 20 20 53 54 52 70 |... | STRp|
|000048a0| 6c 42 20 20 6c 72 2c 20 | 5b 52 30 5d 2c 20 23 31 |lB lr, |[R0], #1|
|000048b0| 0d 18 f6 18 20 20 20 20 | 20 20 20 20 42 68 69 20 |.... | Bhi |
|000048c0| 20 20 20 20 6c 6f 6f 70 | 0d 19 00 27 20 20 20 20 | loop|...' |
|000048d0| 20 20 20 20 4c 44 4d 46 | 44 20 20 20 28 73 70 29 | LDMF|D (sp)|
|000048e0| 21 2c 20 7b 52 30 2d 52 | 32 2c 20 70 63 7d 5e 0d |!, {R0-R|2, pc}^.|
|000048f0| 19 0a 05 5d 0d 19 14 07 | 3d 20 30 0d 19 1e 05 3a |...]....|= 0....:|
|00004900| 0d 19 28 18 dd 20 a4 5f | 61 73 73 65 6d 62 6c 65 |..(.. ._|assemble|
|00004910| 5f 6d 65 6d 6d 6f 76 65 | 0d 19 32 10 ea 20 6c 6f |_memmove|..2.. lo|
|00004920| 6f 70 2c 20 66 61 73 74 | 0d 19 3c 07 ea 20 85 0d |op, fast|..<.. ..|
|00004930| 19 46 30 ee 20 85 20 ea | 20 f7 20 85 20 20 3a 20 |.F0. . .| . . : |
|00004940| 20 f2 5f 65 28 20 22 25 | 2e 43 3a 20 61 73 73 65 | ._e( "%|.C: asse|
|00004950| 6d 62 6c 65 5f 6d 65 6d | 6d 6f 76 65 22 20 29 0d |mble_mem|move" ).|
|00004960| 19 50 24 20 20 f2 5f 61 | 73 73 65 6d 62 6c 65 5f |.P$ ._a|ssemble_|
|00004970| 6c 69 62 72 61 72 79 28 | 20 22 6d 65 6d 63 70 79 |library(| "memcpy|
|00004980| 22 20 29 0d 19 5a 0e 5b | 4f 50 54 20 70 61 73 73 |" )..Z.[|OPT pass|
|00004990| 25 0d 19 64 11 20 20 20 | 20 20 20 20 20 41 4c 49 |%..d. | ALI|
|000049a0| 47 4e 0d 19 6e 4b 3b 20 | 2d 2d 2d 2d 2d 2d 2d 2d |GN..nK; |--------|
|000049b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000049c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000049d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000049e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 19 78 |--------|-----..x|
|000049f0| 2e 3b 20 41 4e 53 49 20 | 43 20 66 75 6e 63 74 69 |.; ANSI |C functi|
|00004a00| 6f 6e 20 74 6f 20 63 6f | 70 79 20 62 6c 6f 63 6b |on to co|py block|
|00004a10| 73 20 6f 66 20 6d 65 6d | 6f 72 79 0d 19 82 2f 3b |s of mem|ory.../;|
|00004a20| 20 54 68 69 73 20 68 61 | 6e 64 6c 65 73 20 6f 76 | This ha|ndles ov|
|00004a30| 65 72 6c 61 70 70 69 6e | 67 20 62 6c 6f 63 6b 73 |erlappin|g blocks|
|00004a40| 20 63 6f 72 72 65 63 74 | 6c 79 0d 19 8c 3f 3b 20 | correct|ly...?; |
|00004a50| 49 66 20 6b 6e 6f 77 20 | 62 6c 6f 63 6b 73 20 77 |If know |blocks w|
|00004a60| 69 6c 6c 20 6e 65 76 65 | 72 20 6f 76 65 72 6c 61 |ill neve|r overla|
|00004a70| 70 2c 20 62 65 74 74 65 | 72 20 74 6f 20 75 73 65 |p, bette|r to use|
|00004a80| 20 6d 65 6d 63 70 79 28 | 29 0d 19 96 05 3b 0d 19 | memcpy(|)....;..|
|00004a90| a0 45 3b 20 20 20 20 20 | 20 20 6d 65 6d 6d 6f 76 |.E; | memmov|
|00004aa0| 65 28 20 72 65 66 20 63 | 68 61 72 20 74 6f 2c 20 |e( ref c|har to, |
|00004ab0| 66 72 6f 6d 3b 20 75 6e | 73 69 67 6e 65 64 20 69 |from; un|signed i|
|00004ac0| 6e 74 20 6e 20 29 20 72 | 65 66 20 63 68 61 72 20 |nt n ) r|ef char |
|00004ad0| 74 6f 3b 0d 19 aa 04 0d | 19 b4 1e 2e 66 61 73 74 |to;.....|....fast|
|00004ae0| 20 20 20 53 55 42 53 20 | 20 20 20 52 32 2c 20 52 | SUBS | R2, R|
|00004af0| 32 2c 20 23 34 0d 19 be | 45 20 20 20 20 20 20 20 |2, #4...|E |
|00004b00| 20 4c 44 52 20 20 20 20 | 20 52 31 2c 20 5b 6c 72 | LDR | R1, [lr|
|00004b10| 2c 20 23 2d 34 5d 21 20 | 20 20 20 20 20 20 20 20 |, #-4]! | |
|00004b20| 20 3b 20 41 6c 77 61 79 | 73 20 72 65 61 64 20 66 | ; Alway|s read f|
|00004b30| 72 6f 6d 20 73 6f 75 72 | 63 65 0d 19 c8 48 20 20 |rom sour|ce...H |
|00004b40| 20 20 20 20 20 20 53 54 | 52 70 6c 20 20 20 52 31 | ST|Rpl R1|
|00004b50| 2c 20 5b 52 30 2c 20 23 | 2d 34 5d 21 20 20 20 20 |, [R0, #|-4]! |
|00004b60| 20 20 20 20 20 20 3b 20 | 4f 6e 6c 79 20 69 66 20 | ; |Only if |
|00004b70| 61 6c 6c 20 6f 66 20 77 | 6f 72 64 20 6e 65 65 64 |all of w|ord need|
|00004b80| 65 64 0d 19 d2 40 20 20 | 20 20 20 20 20 20 42 68 |ed...@ | Bh|
|00004b90| 69 20 20 20 20 20 66 61 | 73 74 20 20 20 20 20 20 |i fa|st |
|00004ba0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|00004bb0| 57 68 69 6c 65 20 6d 6f | 72 65 20 74 6f 20 63 6f |While mo|re to co|
|00004bc0| 70 79 0d 19 dc 43 20 20 | 20 20 20 20 20 20 4c 44 |py...C | LD|
|00004bd0| 4d 65 71 46 44 20 28 73 | 70 29 21 2c 20 7b 52 30 |MeqFD (s|p)!, {R0|
|00004be0| 2d 52 32 2c 20 70 63 7d | 5e 20 20 20 20 20 3b 20 |-R2, pc}|^ ; |
|00004bf0| 53 69 6d 70 6c 65 2c 20 | 77 61 73 20 61 6c 6c 20 |Simple, |was all |
|00004c00| 77 6f 72 64 73 0d 19 e6 | 1e 20 20 20 20 20 20 20 |words...|. |
|00004c10| 20 41 44 44 20 20 20 20 | 20 52 32 2c 20 52 32 2c | ADD | R2, R2,|
|00004c20| 20 23 34 0d 19 f0 4e 2e | 6c 6f 6f 70 20 20 20 4d | #4...N.|loop M|
|00004c30| 4f 56 20 20 20 20 20 52 | 31 2c 20 52 31 2c 20 52 |OV R|1, R1, R|
|00004c40| 4f 52 20 23 32 34 20 20 | 20 20 20 20 20 20 20 3b |OR #24 | ;|
|00004c50| 20 4e 6f 20 52 4f 4c 2c | 20 73 6f 20 68 61 76 65 | No ROL,| so have|
|00004c60| 20 74 6f 20 52 4f 52 20 | 33 32 2d 38 20 3d 20 32 | to ROR |32-8 = 2|
|00004c70| 34 0d 19 fa 22 20 20 20 | 20 20 20 20 20 53 54 52 |4..." | STR|
|00004c80| 42 20 20 20 20 52 31 2c | 20 5b 52 30 2c 20 23 2d |B R1,| [R0, #-|
|00004c90| 31 5d 21 0d 1a 04 1e 20 | 20 20 20 20 20 20 20 53 |1]!.... | S|
|00004ca0| 55 42 53 20 20 20 20 52 | 32 2c 20 52 32 2c 20 23 |UBS R|2, R2, #|
|00004cb0| 31 0d 1a 0e 18 20 20 20 | 20 20 20 20 20 42 6e 65 |1.... | Bne|
|00004cc0| 20 20 20 20 20 6c 6f 6f | 70 0d 1a 18 27 20 20 20 | loo|p...' |
|00004cd0| 20 20 20 20 20 4c 44 4d | 46 44 20 20 20 28 73 70 | LDM|FD (sp|
|00004ce0| 29 21 2c 20 7b 52 30 2d | 52 32 2c 20 70 63 7d 5e |)!, {R0-|R2, pc}^|
|00004cf0| 0d 1a 22 04 0d 1a 2c 0c | 2e 6d 65 6d 6d 6f 76 65 |.."...,.|.memmove|
|00004d00| 0d 1a 36 26 20 20 20 20 | 20 20 20 20 53 54 4d 46 |..6& | STMF|
|00004d10| 44 20 20 20 28 73 70 29 | 21 2c 20 7b 52 30 2d 52 |D (sp)|!, {R0-R|
|00004d20| 32 2c 20 6c 72 7d 0d 1a | 40 1a 20 20 20 20 20 20 |2, lr}..|@. |
|00004d30| 20 20 43 4d 50 20 20 20 | 20 20 52 31 2c 20 52 30 | CMP | R1, R0|
|00004d40| 0d 1a 4a 3d 20 20 20 20 | 20 20 20 20 41 44 44 6c |..J= | ADDl|
|00004d50| 6f 20 20 20 6c 72 2c 20 | 52 31 2c 20 52 32 20 20 |o lr, |R1, R2 |
|00004d60| 20 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 6c 72 | | ; lr|
|00004d70| 20 3c 2d 2d 20 66 72 6f | 6d 20 2b 20 6e 0d 1a 54 | <-- fro|m + n..T|
|00004d80| 1a 20 20 20 20 20 20 20 | 20 43 4d 50 6c 6f 20 20 |. | CMPlo |
|00004d90| 20 52 30 2c 20 6c 72 0d | 1a 5e 46 20 20 20 20 20 | R0, lr.|.^F |
|00004da0| 20 20 20 42 68 73 20 20 | 20 20 20 6d 65 6d 63 70 | Bhs | memcp|
|00004db0| 79 2b 34 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |y+4 | |
|00004dc0| 20 20 20 3b 20 43 61 6e | 20 73 61 66 65 6c 79 20 | ; Can| safely |
|00004dd0| 64 6f 20 61 20 6d 65 6d | 63 70 79 28 29 0d 1a 68 |do a mem|cpy()..h|
|00004de0| 3b 20 20 20 20 20 20 20 | 20 41 44 44 20 20 20 20 |; | ADD |
|00004df0| 20 52 30 2c 20 52 30 2c | 20 52 32 20 20 20 20 20 | R0, R0,| R2 |
|00004e00| 20 20 20 20 20 20 20 20 | 20 3b 20 52 30 20 3c 2d | | ; R0 <-|
|00004e10| 2d 20 74 6f 20 2b 20 6e | 0d 1a 72 1d 20 20 20 20 |- to + n|..r. |
|00004e20| 20 20 20 20 84 52 20 20 | 20 20 20 52 31 2c 20 52 | .R | R1, R|
|00004e30| 30 2c 20 6c 72 0d 1a 7c | 1a 20 20 20 20 20 20 20 |0, lr..||. |
|00004e40| 20 54 53 54 20 20 20 20 | 20 52 31 2c 20 23 33 0d | TST | R1, #3.|
|00004e50| 1a 86 47 20 20 20 20 20 | 20 20 20 42 65 71 20 20 |..G | Beq |
|00004e60| 20 20 20 66 61 73 74 20 | 20 20 20 20 20 20 20 20 | fast | |
|00004e70| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 4a 75 6d | | ; Jum|
|00004e80| 70 20 69 66 20 62 6f 74 | 68 20 77 6f 72 64 20 61 |p if bot|h word a|
|00004e90| 6c 69 67 6e 65 64 0d 1a | 90 1e 2e 6c 6f 6f 70 20 |ligned..|...loop |
|00004ea0| 20 20 53 55 42 53 20 20 | 20 20 52 32 2c 20 52 32 | SUBS | R2, R2|
|00004eb0| 2c 20 23 31 0d 1a 9a 22 | 20 20 20 20 20 20 20 20 |, #1..."| |
|00004ec0| 4c 44 52 70 6c 42 20 20 | 52 31 2c 20 5b 6c 72 2c |LDRplB |R1, [lr,|
|00004ed0| 20 23 2d 31 5d 21 0d 1a | a4 22 20 20 20 20 20 20 | #-1]!..|." |
|00004ee0| 20 20 53 54 52 70 6c 42 | 20 20 52 31 2c 20 5b 52 | STRplB| R1, [R|
|00004ef0| 30 2c 20 23 2d 31 5d 21 | 0d 1a ae 18 20 20 20 20 |0, #-1]!|.... |
|00004f00| 20 20 20 20 42 68 69 20 | 20 20 20 20 6c 6f 6f 70 | Bhi | loop|
|00004f10| 0d 1a b8 27 20 20 20 20 | 20 20 20 20 4c 44 4d 46 |...' | LDMF|
|00004f20| 44 20 20 20 28 73 70 29 | 21 2c 20 7b 52 30 2d 52 |D (sp)|!, {R0-R|
|00004f30| 32 2c 20 70 63 7d 5e 0d | 1a c2 0a 5d 3a 20 3d 20 |2, pc}^.|...]: = |
|00004f40| 30 0d 1a cc 05 3a 0d 1a | d6 4b f4 2d 2d 2d 2d 2d |0....:..|.K.-----|
|00004f50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004f60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004f70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004f80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004f90| 2d 0d 1a e0 05 f4 0d 1a | ea 30 f4 20 20 20 20 20 |-.......|.0. |
|00004fa0| 49 4e 20 20 20 20 20 20 | 52 30 2e 42 20 3d 3d 20 |IN |R0.B == |
|00004fb0| 49 6e 69 74 69 61 6c 20 | 76 61 6c 75 65 20 74 6f |Initial |value to|
|00004fc0| 20 73 74 6f 72 65 0d 1a | f4 37 f4 20 20 20 20 20 | store..|.7. |
|00004fd0| 20 20 20 20 20 20 20 20 | 52 31 20 20 20 3d 3d 20 | |R1 == |
|00004fe0| 44 69 66 66 65 72 65 6e | 63 65 20 62 65 74 77 65 |Differen|ce betwe|
|00004ff0| 65 6e 20 65 61 63 68 20 | 76 61 6c 75 65 0d 1a fe |en each |value...|
|00005000| 37 f4 20 20 20 20 20 20 | 20 20 20 20 20 20 20 52 |7. | R|
|00005010| 32 20 20 20 3d 3d 20 4e | 75 6d 62 65 72 20 6f 66 |2 == N|umber of|
|00005020| 20 62 79 74 65 73 20 74 | 6f 20 73 74 6f 72 65 20 | bytes t|o store |
|00005030| 28 31 2b 29 0d 1b 08 28 | f4 20 20 20 20 20 20 20 |(1+)...(|. |
|00005040| 20 20 20 20 20 20 52 33 | 20 20 20 5e 3d 20 57 68 | R3| ^= Wh|
|00005050| 65 72 65 20 74 6f 20 73 | 74 6f 72 65 0d 1b 12 38 |ere to s|tore...8|
|00005060| f4 20 20 20 20 20 4f 55 | 54 20 20 20 20 20 5b 52 |. OU|T [R|
|00005070| 33 20 2b 20 5b 30 2c 20 | 52 32 29 5d 20 3c 2d 2d |3 + [0, |R2)] <--|
|00005080| 20 53 65 74 20 74 6f 20 | 52 30 2e 42 20 2b 20 52 | Set to |R0.B + R|
|00005090| 31 2e 52 32 0d 1b 1c 18 | f4 20 20 20 20 20 42 41 |1.R2....|. BA|
|000050a0| 44 20 20 20 20 20 28 6e | 6f 6e 65 29 0d 1b 26 16 |D (n|one)..&.|
|000050b0| f4 20 20 20 20 20 46 4c | 41 47 53 20 20 20 4c 69 |. FL|AGS Li|
|000050c0| 6e 6b 0d 1b 30 1d dd 20 | a4 5f 61 73 73 65 6d 62 |nk..0.. |._assemb|
|000050d0| 6c 65 5f 6d 65 6d 66 69 | 6c 6c 5f 64 69 66 66 0d |le_memfi|ll_diff.|
|000050e0| 1b 3a 0a ea 20 6c 6f 6f | 70 0d 1b 44 07 ea 20 85 |.:.. loo|p..D.. .|
|000050f0| 0d 1b 4e 35 ee 20 85 20 | ea 20 f7 20 85 20 20 3a |..N5. . |. . . :|
|00005100| 20 20 f2 5f 65 28 20 22 | 25 2e 43 3a 20 61 73 73 | ._e( "|%.C: ass|
|00005110| 65 6d 62 6c 65 5f 6d 65 | 6d 66 69 6c 6c 5f 64 69 |emble_me|mfill_di|
|00005120| 66 66 22 20 29 0d 1b 58 | 0e 5b 4f 50 54 20 70 61 |ff" )..X|.[OPT pa|
|00005130| 73 73 25 0d 1b 62 11 20 | 20 20 20 20 20 20 20 41 |ss%..b. | A|
|00005140| 4c 49 47 4e 0d 1b 6c 11 | 2e 6d 65 6d 66 69 6c 6c |LIGN..l.|.memfill|
|00005150| 5f 64 69 66 66 0d 1b 76 | 23 20 20 20 20 20 20 20 |_diff..v|# |
|00005160| 20 53 54 4d 46 44 20 20 | 20 28 73 70 29 21 2c 20 | STMFD | (sp)!, |
|00005170| 7b 52 30 2c 20 52 32 7d | 0d 1b 80 09 2e 6c 6f 6f |{R0, R2}|.....loo|
|00005180| 70 0d 1b 8a 1e 20 20 20 | 20 20 20 20 20 53 55 42 |p.... | SUB|
|00005190| 53 20 20 20 20 52 32 2c | 20 52 32 2c 20 23 31 0d |S R2,| R2, #1.|
|000051a0| 1b 94 20 20 20 20 20 20 | 20 20 20 53 54 52 47 45 |.. | STRGE|
|000051b0| 42 20 20 52 30 2c 20 5b | 52 33 2c 20 52 32 5d 0d |B R0, [|R3, R2].|
|000051c0| 1b 9e 1e 20 20 20 20 20 | 20 20 20 41 44 44 47 45 |... | ADDGE|
|000051d0| 20 20 20 52 30 2c 20 52 | 30 2c 20 52 31 0d 1b a8 | R0, R|0, R1...|
|000051e0| 18 20 20 20 20 20 20 20 | 20 42 47 54 20 20 20 20 |. | BGT |
|000051f0| 20 6c 6f 6f 70 0d 1b b2 | 23 20 20 20 20 20 20 20 | loop...|# |
|00005200| 20 4c 44 4d 46 44 20 20 | 20 28 73 70 29 21 2c 20 | LDMFD | (sp)!, |
|00005210| 7b 52 30 2c 20 52 32 7d | 0d 1b bc 1c 20 20 20 20 |{R0, R2}|.... |
|00005220| 20 20 20 20 4d 4f 56 53 | 20 20 20 20 70 63 2c 20 | MOVS| pc, |
|00005230| 6c 69 6e 6b 0d 1b c6 05 | 5d 0d 1b d0 07 3d 20 30 |link....|]....= 0|
|00005240| 0d 1b da 05 3a 0d 1b e4 | 4b f4 2d 2d 2d 2d 2d 2d |....:...|K.------|
|00005250| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005260| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005270| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005280| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005290| 0d 1b ee 05 f4 0d 1b f8 | 28 f4 20 20 20 20 20 49 |........|(. I|
|000052a0| 4e 20 20 20 20 20 20 52 | 30 2e 42 20 3d 3d 20 56 |N R|0.B == V|
|000052b0| 61 6c 75 65 20 74 6f 20 | 73 74 6f 72 65 0d 1c 02 |alue to |store...|
|000052c0| 37 f4 20 20 20 20 20 20 | 20 20 20 20 20 20 20 52 |7. | R|
|000052d0| 31 20 20 20 3d 3d 20 4e | 75 6d 62 65 72 20 6f 66 |1 == N|umber of|
|000052e0| 20 62 79 74 65 73 20 74 | 6f 20 73 74 6f 72 65 20 | bytes t|o store |
|000052f0| 28 31 2b 29 0d 1c 0c 28 | f4 20 20 20 20 20 20 20 |(1+)...(|. |
|00005300| 20 20 20 20 20 20 52 32 | 20 20 20 5e 3d 20 57 68 | R2| ^= Wh|
|00005310| 65 72 65 20 74 6f 20 73 | 74 6f 72 65 0d 1c 16 30 |ere to s|tore...0|
|00005320| f4 20 20 20 20 20 4f 55 | 54 20 20 20 20 20 5b 52 |. OU|T [R|
|00005330| 32 20 2b 20 5b 30 2c 20 | 52 31 29 5d 20 3c 2d 2d |2 + [0, |R1)] <--|
|00005340| 20 53 65 74 20 74 6f 20 | 52 30 2e 42 0d 1c 20 18 | Set to |R0.B.. .|
|00005350| f4 20 20 20 20 20 42 41 | 44 20 20 20 20 20 28 6e |. BA|D (n|
|00005360| 6f 6e 65 29 0d 1c 2a 16 | f4 20 20 20 20 20 46 4c |one)..*.|. FL|
|00005370| 41 47 53 20 20 20 6c 69 | 6e 6b 0d 1c 34 18 dd 20 |AGS li|nk..4.. |
|00005380| a4 5f 61 73 73 65 6d 62 | 6c 65 5f 6d 65 6d 66 69 |._assemb|le_memfi|
|00005390| 6c 6c 0d 1c 3e 0a ea 20 | 6c 6f 6f 70 0d 1c 48 07 |ll..>.. |loop..H.|
|000053a0| ea 20 85 0d 1c 52 30 ee | 20 85 20 ea 20 f7 20 85 |. ...R0.| . . . .|
|000053b0| 20 20 3a 20 20 f2 5f 65 | 28 20 22 25 2e 43 3a 20 | : ._e|( "%.C: |
|000053c0| 61 73 73 65 6d 62 6c 65 | 5f 6d 65 6d 66 69 6c 6c |assemble|_memfill|
|000053d0| 22 20 29 0d 1c 5c 0e 5b | 4f 50 54 20 70 61 73 73 |" )..\.[|OPT pass|
|000053e0| 25 0d 1c 66 11 20 20 20 | 20 20 20 20 20 41 4c 49 |%..f. | ALI|
|000053f0| 47 4e 0d 1c 70 0c 2e 6d | 65 6d 66 69 6c 6c 0d 1c |GN..p..m|emfill..|
|00005400| 7a 22 20 20 20 20 20 20 | 20 20 53 54 52 20 20 20 |z" | STR |
|00005410| 20 20 52 31 2c 20 5b 73 | 70 2c 20 23 2d 34 5d 21 | R1, [s|p, #-4]!|
|00005420| 0d 1c 84 09 2e 6c 6f 6f | 70 0d 1c 8e 1e 20 20 20 |.....loo|p.... |
|00005430| 20 20 20 20 20 53 55 42 | 53 20 20 20 20 52 31 2c | SUB|S R1,|
|00005440| 20 52 31 2c 20 23 31 0d | 1c 98 20 20 20 20 20 20 | R1, #1.|.. |
|00005450| 20 20 20 53 54 52 47 45 | 42 20 20 52 30 2c 20 5b | STRGE|B R0, [|
|00005460| 52 32 2c 20 52 31 5d 0d | 1c a2 18 20 20 20 20 20 |R2, R1].|... |
|00005470| 20 20 20 42 47 54 20 20 | 20 20 20 6c 6f 6f 70 0d | BGT | loop.|
|00005480| 1c ac 20 20 20 20 20 20 | 20 20 20 4c 44 52 20 20 |.. | LDR |
|00005490| 20 20 20 52 31 2c 20 5b | 73 70 5d 2c 20 23 34 0d | R1, [|sp], #4.|
|000054a0| 1c b6 1c 20 20 20 20 20 | 20 20 20 4d 4f 56 53 20 |... | MOVS |
|000054b0| 20 20 20 70 63 2c 20 6c | 69 6e 6b 0d 1c c0 05 5d | pc, l|ink....]|
|000054c0| 0d 1c ca 07 3d 20 30 0d | 1c d4 05 3a 0d 1c de 4b |....= 0.|...:...K|
|000054d0| f4 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.-------|--------|
|000054e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000054f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005500| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005510| 2d 2d 2d 2d 2d 2d 2d 0d | 1c e8 05 f4 0d 1c f2 28 |-------.|.......(|
|00005520| f4 20 20 20 20 20 49 4e | 20 20 20 20 20 20 52 30 |. IN| R0|
|00005530| 20 20 20 5e 3d 20 57 68 | 65 72 65 20 74 6f 20 73 | ^= Wh|ere to s|
|00005540| 74 6f 72 65 0d 1c fc 37 | f4 20 20 20 20 20 20 20 |tore...7|. |
|00005550| 20 20 20 20 20 20 52 31 | 20 20 20 3d 3d 20 4e 75 | R1| == Nu|
|00005560| 6d 62 65 72 20 6f 66 20 | 62 79 74 65 73 20 74 6f |mber of |bytes to|
|00005570| 20 73 74 6f 72 65 20 28 | 31 2b 29 0d 1d 06 28 f4 | store (|1+)...(.|
|00005580| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 52 32 2e | | R2.|
|00005590| 42 20 3d 3d 20 56 61 6c | 75 65 20 74 6f 20 73 74 |B == Val|ue to st|
|000055a0| 6f 72 65 0d 1d 10 30 f4 | 20 20 20 20 20 4f 55 54 |ore...0.| OUT|
|000055b0| 20 20 20 20 20 5b 52 30 | 20 2b 20 5b 30 2c 20 52 | [R0| + [0, R|
|000055c0| 31 29 5d 20 3c 2d 2d 20 | 53 65 74 20 74 6f 20 52 |1)] <-- |Set to R|
|000055d0| 32 2e 42 0d 1d 1a 18 f4 | 20 20 20 20 20 42 41 44 |2.B.....| BAD|
|000055e0| 20 20 20 20 20 28 6e 6f | 6e 65 29 0d 1d 24 16 f4 | (no|ne)..$..|
|000055f0| 20 20 20 20 20 46 4c 41 | 47 53 20 20 20 6c 69 6e | FLA|GS lin|
|00005600| 6b 0d 1d 2e 17 dd 20 a4 | 5f 61 73 73 65 6d 62 6c |k..... .|_assembl|
|00005610| 65 5f 6d 65 6d 73 65 74 | 0d 1d 38 0a ea 20 6c 6f |e_memset|..8.. lo|
|00005620| 6f 70 0d 1d 42 07 ea 20 | 85 0d 1d 4c 2f ee 20 85 |op..B.. |...L/. .|
|00005630| 20 ea 20 f7 20 85 20 20 | 3a 20 20 f2 5f 65 28 20 | . . . |: ._e( |
|00005640| 22 25 2e 43 3a 20 61 73 | 73 65 6d 62 6c 65 5f 6d |"%.C: as|semble_m|
|00005650| 65 6d 73 65 74 22 20 29 | 0d 1d 56 0e 5b 4f 50 54 |emset" )|..V.[OPT|
|00005660| 20 70 61 73 73 25 0d 1d | 60 11 20 20 20 20 20 20 | pass%..|`. |
|00005670| 20 20 41 4c 49 47 4e 0d | 1d 6a 4b 3b 20 2d 2d 2d | ALIGN.|.jK; ---|
|00005680| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005690| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000056a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000056b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000056c0| 2d 2d 0d 1d 74 40 3b 20 | 41 4e 53 49 20 43 20 66 |--..t@; |ANSI C f|
|000056d0| 75 6e 63 74 69 6f 6e 20 | 74 6f 20 66 69 6c 6c 20 |unction |to fill |
|000056e0| 61 20 62 6c 6f 63 6b 20 | 6f 66 20 6d 65 6d 6f 72 |a block |of memor|
|000056f0| 79 20 77 69 74 68 20 61 | 20 63 68 61 72 61 63 74 |y with a| charact|
|00005700| 65 72 0d 1d 7e 05 3b 0d | 1d 88 45 3b 20 20 20 20 |er..~.;.|..E; |
|00005710| 20 20 20 6d 65 6d 73 65 | 74 28 20 72 65 66 20 63 | memse|t( ref c|
|00005720| 68 61 72 20 74 6f 3b 20 | 69 6e 74 20 63 3b 20 75 |har to; |int c; u|
|00005730| 6e 73 69 67 6e 65 64 20 | 69 6e 74 20 6e 20 29 20 |nsigned |int n ) |
|00005740| 72 65 66 20 63 68 61 72 | 20 74 6f 3b 0d 1d 92 04 |ref char| to;....|
|00005750| 0d 1d 9c 37 2e 66 61 73 | 74 20 20 20 80 53 20 20 |...7.fas|t .S |
|00005760| 20 20 6c 72 2c 20 52 30 | 2c 20 23 33 20 20 20 20 | lr, R0|, #3 |
|00005770| 20 20 20 20 20 20 20 20 | 20 20 3b 20 57 6f 72 64 | | ; Word|
|00005780| 20 6f 66 66 73 65 74 0d | 1d a6 1e 20 20 20 20 20 | offset.|... |
|00005790| 20 20 20 52 53 42 6e 65 | 20 20 20 6c 72 2c 20 6c | RSBne| lr, l|
|000057a0| 72 2c 20 23 34 0d 1d b0 | 1e 20 20 20 20 20 20 20 |r, #4...|. |
|000057b0| 20 53 55 42 6e 65 20 20 | 20 52 32 2c 20 52 32 2c | SUBne | R2, R2,|
|000057c0| 20 6c 72 0d 1d ba 20 2e | 6c 6f 6f 70 20 20 20 53 | lr... .|loop S|
|000057d0| 54 52 6e 65 42 20 20 52 | 31 2c 20 5b 52 30 5d 2c |TRneB R|1, [R0],|
|000057e0| 20 23 31 0d 1d c4 1e 20 | 20 20 20 20 20 20 20 53 | #1.... | S|
|000057f0| 55 42 6e 65 53 20 20 6c | 72 2c 20 6c 72 2c 20 23 |UBneS l|r, lr, #|
|00005800| 31 0d 1d ce 18 20 20 20 | 20 20 20 20 20 42 6e 65 |1.... | Bne|
|00005810| 20 20 20 20 20 6c 6f 6f | 70 0d 1d d8 49 20 20 20 | loo|p...I |
|00005820| 20 20 20 20 20 80 20 20 | 20 20 20 52 31 2c 20 52 | . | R1, R|
|00005830| 31 2c 20 23 26 46 46 20 | 20 20 20 20 20 20 20 20 |1, #&FF | |
|00005840| 20 20 20 3b 20 48 65 72 | 65 2c 20 52 30 3d 3d 74 | ; Her|e, R0==t|
|00005850| 6f 20 3c 2d 2d 20 77 6f | 72 64 2d 61 6c 69 67 6e |o <-- wo|rd-align|
|00005860| 65 64 0d 1d e2 26 20 20 | 20 20 20 20 20 20 84 52 |ed...& | .R|
|00005870| 20 20 20 20 20 52 31 2c | 20 52 31 2c 20 52 31 2c | R1,| R1, R1,|
|00005880| 20 4c 53 4c 20 23 31 36 | 0d 1d ec 4c 20 20 20 20 | LSL #16|...L |
|00005890| 20 20 20 20 84 52 20 20 | 20 20 20 52 31 2c 20 52 | .R | R1, R|
|000058a0| 31 2c 20 52 31 2c 20 4c | 53 4c 20 23 38 20 20 20 |1, R1, L|SL #8 |
|000058b0| 20 20 20 3b 20 52 31 20 | 3c 2d 2d 20 45 78 70 61 | ; R1 |<-- Expa|
|000058c0| 6e 64 65 64 20 28 62 79 | 74 65 20 2d 2d 3e 20 77 |nded (by|te --> w|
|000058d0| 6f 72 64 29 0d 1d f6 1e | 2e 6c 6f 6f 70 20 20 20 |ord)....|.loop |
|000058e0| 53 55 42 53 20 20 20 20 | 52 32 2c 20 52 32 2c 20 |SUBS |R2, R2, |
|000058f0| 23 34 0d 1e 00 20 20 20 | 20 20 20 20 20 20 53 54 |#4... | ST|
|00005900| 52 70 6c 20 20 20 52 31 | 2c 20 5b 52 30 5d 2c 20 |Rpl R1|, [R0], |
|00005910| 23 34 0d 1e 0a 18 20 20 | 20 20 20 20 20 20 42 67 |#4.... | Bg|
|00005920| 74 20 20 20 20 20 6c 6f | 6f 70 0d 1e 14 1e 20 20 |t lo|op.... |
|00005930| 20 20 20 20 20 20 41 44 | 44 6e 65 20 20 20 52 32 | AD|Dne R2|
|00005940| 2c 20 52 32 2c 20 23 34 | 0d 1e 1e 20 2e 6c 6f 6f |, R2, #4|... .loo|
|00005950| 70 20 20 20 53 54 52 6e | 65 42 20 20 52 31 2c 20 |p STRn|eB R1, |
|00005960| 5b 52 30 5d 2c 20 23 31 | 0d 1e 28 1e 20 20 20 20 |[R0], #1|..(. |
|00005970| 20 20 20 20 53 55 42 6e | 65 53 20 20 52 32 2c 20 | SUBn|eS R2, |
|00005980| 52 32 2c 20 23 31 0d 1e | 32 18 20 20 20 20 20 20 |R2, #1..|2. |
|00005990| 20 20 42 6e 65 20 20 20 | 20 20 6c 6f 6f 70 0d 1e | Bne | loop..|
|000059a0| 3c 28 20 20 20 20 20 20 | 20 20 4c 44 4d 46 44 20 |<( | LDMFD |
|000059b0| 20 20 28 73 70 29 21 2c | 20 7b 52 30 2c 20 52 32 | (sp)!,| {R0, R2|
|000059c0| 2c 20 70 63 7d 5e 0d 1e | 46 04 0d 1e 50 0b 2e 6d |, pc}^..|F...P..m|
|000059d0| 65 6d 73 65 74 0d 1e 5a | 27 20 20 20 20 20 20 20 |emset..Z|' |
|000059e0| 20 53 54 4d 46 44 20 20 | 20 28 73 70 29 21 2c 20 | STMFD | (sp)!, |
|000059f0| 7b 52 30 2c 20 52 32 2c | 20 6c 72 7d 0d 1e 64 1a |{R0, R2,| lr}..d.|
|00005a00| 20 20 20 20 20 20 20 20 | 43 4d 50 20 20 20 20 20 | |CMP |
|00005a10| 52 32 2c 20 23 36 0d 1e | 6e 18 20 20 20 20 20 20 |R2, #6..|n. |
|00005a20| 20 20 42 67 65 20 20 20 | 20 20 66 61 73 74 0d 1e | Bge | fast..|
|00005a30| 78 1e 2e 6c 6f 6f 70 20 | 20 20 53 55 42 53 20 20 |x..loop | SUBS |
|00005a40| 20 20 52 32 2c 20 52 32 | 2c 20 23 31 0d 1e 82 20 | R2, R2|, #1... |
|00005a50| 20 20 20 20 20 20 20 20 | 53 54 52 67 65 42 20 20 | |STRgeB |
|00005a60| 52 31 2c 20 5b 52 30 2c | 20 52 32 5d 0d 1e 8c 18 |R1, [R0,| R2]....|
|00005a70| 20 20 20 20 20 20 20 20 | 42 67 74 20 20 20 20 20 | |Bgt |
|00005a80| 6c 6f 6f 70 0d 1e 96 28 | 20 20 20 20 20 20 20 20 |loop...(| |
|00005a90| 4c 44 4d 46 44 20 20 20 | 28 73 70 29 21 2c 20 7b |LDMFD |(sp)!, {|
|00005aa0| 52 30 2c 20 52 32 2c 20 | 70 63 7d 5e 0d 1e a0 05 |R0, R2, |pc}^....|
|00005ab0| 5d 0d 1e aa 07 3d 20 30 | 0d 1e b4 05 3a 0d 1e be |]....= 0|....:...|
|00005ac0| 18 dd 20 a4 5f 61 73 73 | 65 6d 62 6c 65 5f 73 74 |.. ._ass|emble_st|
|00005ad0| 72 69 63 6d 70 0d 1e c8 | 10 ea 20 6c 6f 6f 70 2c |ricmp...|.. loop,|
|00005ae0| 20 64 6f 6e 65 0d 1e d2 | 07 ea 20 85 0d 1e dc 30 | done...|.. ....0|
|00005af0| ee 20 85 20 ea 20 f7 20 | 85 20 20 3a 20 20 f2 5f |. . . . |. : ._|
|00005b00| 65 28 20 22 25 2e 43 3a | 20 61 73 73 65 6d 62 6c |e( "%.C:| assembl|
|00005b10| 65 5f 73 74 72 69 63 6d | 70 22 20 29 0d 1e e6 0e |e_stricm|p" )....|
|00005b20| 5b 4f 50 54 20 70 61 73 | 73 25 0d 1e f0 11 20 20 |[OPT pas|s%.... |
|00005b30| 20 20 20 20 20 20 41 4c | 49 47 4e 0d 1e fa 4b 3b | AL|IGN...K;|
|00005b40| 20 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | -------|--------|
|00005b50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005b60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005b70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005b80| 2d 2d 2d 2d 2d 2d 0d 1f | 04 49 3b 20 53 74 61 6e |------..|.I; Stan|
|00005b90| 64 61 72 64 20 66 75 6e | 63 74 69 6f 6e 20 74 6f |dard fun|ction to|
|00005ba0| 20 63 6f 6d 70 61 72 65 | 20 74 77 6f 20 73 74 72 | compare| two str|
|00005bb0| 69 6e 67 73 2c 20 69 67 | 6e 6f 72 69 6e 67 20 63 |ings, ig|noring c|
|00005bc0| 61 73 65 20 64 69 66 66 | 65 72 65 6e 63 65 73 0d |ase diff|erences.|
|00005bd0| 1f 0e 05 3b 0d 1f 18 3e | 3b 20 20 20 20 20 20 20 |...;...>|; |
|00005be0| 73 74 72 69 63 6d 70 28 | 20 63 6f 6e 73 74 20 72 |stricmp(| const r|
|00005bf0| 65 66 20 63 68 61 72 20 | 61 2c 20 63 6f 6e 73 74 |ef char |a, const|
|00005c00| 20 72 65 66 20 63 68 61 | 72 20 62 20 29 20 69 6e | ref cha|r b ) in|
|00005c10| 74 3b 0d 1f 22 20 3b 20 | 20 20 20 20 20 20 3c 2d |t;.." ; | <-|
|00005c20| 2d 20 63 2e 73 67 6e 28 | 7c 61 7c 20 2d 20 7c 62 |- c.sgn(||a| - |b|
|00005c30| 7c 29 0d 1f 2c 04 0d 1f | 36 1a 2e 64 6f 6e 65 20 ||)..,...|6..done |
|00005c40| 20 20 43 4d 50 20 20 20 | 20 20 6c 72 2c 20 52 33 | CMP | lr, R3|
|00005c50| 0d 1f 40 26 20 20 20 20 | 20 20 20 20 4c 44 4d 46 |..@& | LDMF|
|00005c60| 44 20 20 20 28 73 70 29 | 21 2c 20 7b 52 30 2d 52 |D (sp)|!, {R0-R|
|00005c70| 33 2c 20 70 63 7d 0d 1f | 4a 04 0d 1f 54 0c 2e 73 |3, pc}..|J...T..s|
|00005c80| 74 72 69 63 6d 70 0d 1f | 5e 26 20 20 20 20 20 20 |tricmp..|^& |
|00005c90| 20 20 53 54 4d 46 44 20 | 20 20 28 73 70 29 21 2c | STMFD | (sp)!,|
|00005ca0| 20 7b 52 30 2d 52 33 2c | 20 6c 72 7d 0d 1f 68 20 | {R0-R3,| lr}..h |
|00005cb0| 2e 6c 6f 6f 70 20 20 20 | 4c 44 52 42 20 20 20 20 |.loop |LDRB |
|00005cc0| 52 33 2c 20 5b 52 31 5d | 2c 20 23 31 0d 1f 72 20 |R3, [R1]|, #1..r |
|00005cd0| 20 20 20 20 20 20 20 20 | 4c 44 52 42 20 20 20 20 | |LDRB |
|00005ce0| 6c 72 2c 20 5b 52 30 5d | 2c 20 23 31 0d 1f 7c 1a |lr, [R0]|, #1..|.|
|00005cf0| 20 20 20 20 20 20 20 20 | 54 45 51 20 20 20 20 20 | |TEQ |
|00005d00| 6c 72 2c 20 23 30 0d 1f | 86 18 20 20 20 20 20 20 |lr, #0..|.. |
|00005d10| 20 20 42 65 71 20 20 20 | 20 20 64 6f 6e 65 0d 1f | Beq | done..|
|00005d20| 90 23 20 20 20 20 20 20 | 20 20 53 55 42 20 20 20 |.# | SUB |
|00005d30| 20 20 52 32 2c 20 52 33 | 2c 20 23 97 28 22 61 22 | R2, R3|, #.("a"|
|00005d40| 29 0d 1f 9a 1b 20 20 20 | 20 20 20 20 20 43 4d 50 |).... | CMP|
|00005d50| 20 20 20 20 20 52 32 2c | 20 23 32 36 0d 1f a4 2c | R2,| #26...,|
|00005d60| 20 20 20 20 20 20 20 20 | 53 55 42 6c 6f 20 20 20 | |SUBlo |
|00005d70| 52 33 2c 20 52 33 2c 20 | 23 97 28 22 61 22 29 20 |R3, R3, |#.("a") |
|00005d80| 2d 20 97 28 22 41 22 29 | 0d 1f ae 23 20 20 20 20 |- .("A")|...# |
|00005d90| 20 20 20 20 53 55 42 20 | 20 20 20 20 52 32 2c 20 | SUB | R2, |
|00005da0| 6c 72 2c 20 23 97 28 22 | 61 22 29 0d 1f b8 1b 20 |lr, #.("|a").... |
|00005db0| 20 20 20 20 20 20 20 43 | 4d 50 20 20 20 20 20 52 | C|MP R|
|00005dc0| 32 2c 20 23 32 36 0d 1f | c2 2c 20 20 20 20 20 20 |2, #26..|., |
|00005dd0| 20 20 53 55 42 6c 6f 20 | 20 20 6c 72 2c 20 6c 72 | SUBlo | lr, lr|
|00005de0| 2c 20 23 97 28 22 61 22 | 29 20 2d 20 97 28 22 41 |, #.("a"|) - .("A|
|00005df0| 22 29 0d 1f cc 1a 20 20 | 20 20 20 20 20 20 43 4d |").... | CM|
|00005e00| 50 20 20 20 20 20 6c 72 | 2c 20 52 33 0d 1f d6 18 |P lr|, R3....|
|00005e10| 20 20 20 20 20 20 20 20 | 42 65 71 20 20 20 20 20 | |Beq |
|00005e20| 6c 6f 6f 70 0d 1f e0 26 | 20 20 20 20 20 20 20 20 |loop...&| |
|00005e30| 4c 44 4d 46 44 20 20 20 | 28 73 70 29 21 2c 20 7b |LDMFD |(sp)!, {|
|00005e40| 52 30 2d 52 33 2c 20 70 | 63 7d 0d 1f ea 05 5d 0d |R0-R3, p|c}....].|
|00005e50| 1f f4 07 3d 20 30 0d 1f | fe 05 3a 0d 20 08 4b f4 |...= 0..|..:. .K.|
|00005e60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005e70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005e80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005e90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005ea0| 2d 2d 2d 2d 2d 2d 0d 20 | 12 05 f4 0d 20 1c 2d f4 |------. |.... .-.|
|00005eb0| 20 20 20 20 20 49 4e 20 | 20 20 20 20 20 52 30 20 | IN | R0 |
|00005ec0| 5e 3d 20 53 6f 75 72 63 | 65 20 28 62 79 74 65 20 |^= Sourc|e (byte |
|00005ed0| 61 6c 69 67 6e 65 64 29 | 0d 20 26 32 f4 20 20 20 |aligned)|. &2. |
|00005ee0| 20 20 20 20 20 20 20 20 | 20 20 52 31 20 5e 3d 20 | | R1 ^= |
|00005ef0| 44 65 73 74 69 6e 61 74 | 69 6f 6e 20 28 62 79 74 |Destinat|ion (byt|
|00005f00| 65 20 61 6c 69 67 6e 65 | 64 29 0d 20 30 34 f4 20 |e aligne|d). 04. |
|00005f10| 20 20 20 20 20 20 20 20 | 20 20 20 20 52 32 20 3d | | R2 =|
|00005f20| 3d 20 4e 75 6d 62 65 72 | 20 6f 66 20 62 79 74 65 |= Number| of byte|
|00005f30| 73 20 74 6f 20 63 6f 70 | 79 20 28 31 2b 29 0d 20 |s to cop|y (1+). |
|00005f40| 3a 2f f4 20 20 20 20 20 | 4f 55 54 20 20 20 20 20 |:/. |OUT |
|00005f50| 5b 52 31 5d 2b 2b 20 3c | 2d 2d 20 5b 52 30 5d 20 |[R1]++ <|-- [R0] |
|00005f60| 66 6f 72 20 52 32 20 62 | 79 74 65 73 2e 0d 20 44 |for R2 b|ytes.. D|
|00005f70| 37 f4 20 20 20 20 20 20 | 20 20 20 20 20 20 20 52 |7. | R|
|00005f80| 30 20 3c 2d 2d 20 45 6e | 64 20 6f 66 20 73 6f 75 |0 <-- En|d of sou|
|00005f90| 72 63 65 20 2a 2a 77 6f | 72 64 20 61 6c 69 67 6e |rce **wo|rd align|
|00005fa0| 65 64 2a 2a 0d 20 4e 1d | f4 20 20 20 20 20 20 20 |ed**. N.|. |
|00005fb0| 20 20 20 20 20 20 52 32 | 20 3c 2d 2d 20 5a 65 72 | R2| <-- Zer|
|00005fc0| 6f 0d 20 58 1a f4 20 20 | 20 20 20 42 41 44 20 20 |o. X.. | BAD |
|00005fd0| 20 20 20 52 33 2c 20 6c | 69 6e 6b 0d 20 62 16 f4 | R3, l|ink. b..|
|00005fe0| 20 20 20 20 20 46 4c 41 | 47 53 20 20 20 6c 69 6e | FLA|GS lin|
|00005ff0| 6b 0d 20 6c 41 f4 20 20 | 20 20 20 4e 42 20 20 20 |k. lA. | NB |
|00006000| 20 20 20 2d 2d 20 54 72 | 79 20 61 6e 64 20 70 75 | -- Tr|y and pu|
|00006010| 74 20 4c 44 4d 2f 53 54 | 4d 20 6f 6e 20 71 75 61 |t LDM/ST|M on qua|
|00006020| 64 2d 77 6f 72 64 20 62 | 6f 6e 64 61 72 79 73 20 |d-word b|ondarys |
|00006030| 2d 2d 0d 20 76 29 f4 20 | 20 20 20 20 43 6f 70 69 |--. v). | Copi|
|00006040| 65 64 20 66 72 6f 6d 20 | 50 52 4d 20 61 67 65 73 |ed from |PRM ages|
|00006050| 20 31 30 30 30 2e 2e 31 | 30 30 35 0d 20 80 19 dd | 1000..1|005. ...|
|00006060| 20 a4 5f 61 73 73 65 6d | 62 6c 65 5f 5a 6d 65 6d | ._assem|ble_Zmem|
|00006070| 6d 6f 76 65 0d 20 8a 27 | ea 20 73 6f 75 72 63 65 |move. .'|. source|
|00006080| 2c 20 64 65 73 74 2c 20 | 6e 2c 20 73 68 69 66 74 |, dest, |n, shift|
|00006090| 5f 4c 2c 20 73 68 69 66 | 74 5f 52 0d 20 94 1b ea |_L, shif|t_R. ...|
|000060a0| 20 6c 6f 6f 70 2c 20 74 | 65 73 74 5f 73 6f 75 72 | loop, t|est_sour|
|000060b0| 63 65 5f 6f 64 64 0d 20 | 9e 07 ea 20 85 0d 20 a8 |ce_odd. |... .. .|
|000060c0| 31 ee 20 85 20 ea 20 f7 | 20 85 20 20 3a 20 20 f2 |1. . . .| . : .|
|000060d0| 5f 65 28 20 22 25 2e 43 | 3a 20 61 73 73 65 6d 62 |_e( "%.C|: assemb|
|000060e0| 6c 65 5f 5a 6d 65 6d 6d | 6f 76 65 22 20 29 0d 20 |le_Zmemm|ove" ). |
|000060f0| b2 17 20 20 20 20 20 20 | 20 20 73 6f 75 72 63 65 |.. | source|
|00006100| 20 20 3d 20 30 0d 20 bc | 17 20 20 20 20 20 20 20 | = 0. .|. |
|00006110| 20 64 65 73 74 20 20 20 | 20 3d 20 31 0d 20 c6 17 | dest | = 1. ..|
|00006120| 20 20 20 20 20 20 20 20 | 6e 20 20 20 20 20 20 20 | |n |
|00006130| 3d 20 32 0d 20 d0 18 20 | 20 20 20 20 20 20 20 73 |= 2. .. | s|
|00006140| 68 69 66 74 5f 52 20 3d | 20 31 31 0d 20 da 18 20 |hift_R =| 11. .. |
|00006150| 20 20 20 20 20 20 20 73 | 68 69 66 74 5f 4c 20 3d | s|hift_L =|
|00006160| 20 31 32 0d 20 e4 0e 5b | 4f 50 54 20 70 61 73 73 | 12. ..[|OPT pass|
|00006170| 25 0d 20 ee 11 20 20 20 | 20 20 20 20 20 41 4c 49 |%. .. | ALI|
|00006180| 47 4e 0d 20 f8 0d 2e 5a | 6d 65 6d 6d 6f 76 65 0d |GN. ...Z|memmove.|
|00006190| 21 02 21 20 20 20 20 20 | 20 20 20 53 54 4d 46 44 |!.! | STMFD|
|000061a0| 20 20 20 28 73 70 29 21 | 2c 20 7b 6c 69 6e 6b 7d | (sp)!|, {link}|
|000061b0| 0d 21 0c 1c 20 20 20 20 | 20 20 20 20 54 53 54 20 |.!.. | TST |
|000061c0| 20 20 20 20 64 65 73 74 | 2c 20 23 33 0d 21 16 1c | dest|, #3.!..|
|000061d0| 20 20 20 20 20 20 20 20 | 42 6e 65 20 20 20 20 20 | |Bne |
|000061e0| 64 65 73 74 5f 6f 64 64 | 0d 21 20 14 2e 74 65 73 |dest_odd|.! ..tes|
|000061f0| 74 5f 73 6f 75 72 63 65 | 5f 6f 64 64 0d 21 2a 1e |t_source|_odd.!*.|
|00006200| 20 20 20 20 20 20 20 20 | 54 53 54 20 20 20 20 20 | |TST |
|00006210| 73 6f 75 72 63 65 2c 20 | 23 33 0d 21 34 1e 20 20 |source, |#3.!4. |
|00006220| 20 20 20 20 20 20 42 6e | 65 20 20 20 20 20 73 6f | Bn|e so|
|00006230| 75 72 63 65 5f 6f 64 64 | 0d 21 3e 37 20 20 20 20 |urce_odd|.!>7 |
|00006240| 20 20 20 20 53 55 42 53 | 20 20 20 20 6e 2c 20 6e | SUBS| n, n|
|00006250| 2c 20 23 34 20 3c 3c 20 | 32 20 20 20 20 20 20 20 |, #4 << |2 |
|00006260| 20 20 20 20 3b 20 34 2b | 20 77 6f 72 64 73 3f 0d | ; 4+| words?.|
|00006270| 21 48 1d 20 20 20 20 20 | 20 20 20 42 6c 74 20 20 |!H. | Blt |
|00006280| 20 20 20 77 6f 72 64 5f | 6c 74 5f 34 0d 21 52 37 | word_|lt_4.!R7|
|00006290| 20 20 20 20 20 20 20 20 | 53 55 42 53 20 20 20 20 | |SUBS |
|000062a0| 6e 2c 20 6e 2c 20 23 28 | 38 20 2d 20 34 29 20 3c |n, n, #(|8 - 4) <|
|000062b0| 3c 20 32 20 20 20 20 20 | 3b 20 38 2b 20 77 6f 72 |< 2 |; 8+ wor|
|000062c0| 64 73 3f 0d 21 5c 1d 20 | 20 20 20 20 20 20 20 42 |ds?.!\. | B|
|000062d0| 6c 74 20 20 20 20 20 77 | 6f 72 64 5f 6c 74 5f 38 |lt w|ord_lt_8|
|000062e0| 0d 21 66 22 20 20 20 20 | 20 20 20 20 53 54 4d 46 |.!f" | STMF|
|000062f0| 44 20 20 20 28 73 70 29 | 21 2c 20 7b 52 34 2d 52 |D (sp)|!, {R4-R|
|00006300| 39 7d 0d 21 70 09 2e 6c | 6f 6f 70 0d 21 7a 2c 20 |9}.!p..l|oop.!z, |
|00006310| 20 20 20 20 20 20 20 4c | 44 4d 49 41 20 20 20 28 | L|DMIA (|
|00006320| 73 6f 75 72 63 65 29 21 | 2c 20 7b 52 33 2d 52 39 |source)!|, {R3-R9|
|00006330| 2c 20 6c 69 6e 6b 7d 0d | 21 84 2a 20 20 20 20 20 |, link}.|!.* |
|00006340| 20 20 20 53 54 4d 49 41 | 20 20 20 28 64 65 73 74 | STMIA| (dest|
|00006350| 29 21 2c 20 7b 52 33 2d | 52 39 2c 20 6c 69 6e 6b |)!, {R3-|R9, link|
|00006360| 7d 0d 21 8e 21 20 20 20 | 20 20 20 20 20 53 55 42 |}.!.! | SUB|
|00006370| 53 20 20 20 20 6e 2c 20 | 6e 2c 20 23 38 20 3c 3c |S n, |n, #8 <<|
|00006380| 20 32 0d 21 98 18 20 20 | 20 20 20 20 20 20 42 67 | 2.!.. | Bg|
|00006390| 65 20 20 20 20 20 6c 6f | 6f 70 0d 21 a2 46 20 20 |e lo|op.!.F |
|000063a0| 20 20 20 20 20 20 43 4d | 4e 20 20 20 20 20 6e 2c | CM|N n,|
|000063b0| 20 23 38 20 3c 3c 20 32 | 20 20 20 20 20 20 20 20 | #8 << 2| |
|000063c0| 20 20 20 20 20 20 3b 20 | 51 75 69 63 6b 20 74 65 | ; |Quick te|
|000063d0| 73 74 2c 20 73 65 65 20 | 69 66 20 64 6f 6e 65 2e |st, see |if done.|
|000063e0| 0d 21 ac 33 20 20 20 20 | 20 20 20 20 4c 44 4d 65 |.!.3 | LDMe|
|000063f0| 71 46 44 20 28 73 70 29 | 21 2c 20 7b 52 34 2d 52 |qFD (sp)|!, {R4-R|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.