home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: ARJ Archive
(archive/arj).
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| ARJ Archive (archive/arj)
| magic
| Supported |
100%
| file
| ARJ archive data, v6, slash-switched, created 22 jul 1980+17, original name: ZENDISK2.ARJ, os: MS-DOS
| default
| |
99%
| file
| data
| default
| |
66%
| TrID
| ARJ compressed archive (standard)
| default
| |
33%
| TrID
| ARJ compressed archive
| default
| |
100%
| dearkID
| deark: arj (ARJ)
| default
| |
100%
| siegfried
| fmt/610 ARJ File Format
| default
| |
100%
| lsar
| ARJ
| default
| |
100%
| gt2
| ARJ Archiv gefunden (Auflistung ist deaktiviert)
| default
| |
100%
| detectItEasy
| Archive: ARJ(6)
| default
| |
100%
| binwalkID
| ARJ archive data, header size: 133, version 6, minimum version to extract: 1, slash-switched, compression method: stored, file type: comment header, original name: "ZENDISK2.ARJ", original file date: 1988-08-03 03:31:32, compressed file size: 586582292, uncompressed file size: 0, os: MS-DOS
| default
| |
100%
| xdgMime
| application/x-arj
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 60 ea 85 00 1e 06 01 00 | 10 00 02 14 14 89 f6 22 |`.......|......."|
|00000010| 14 89 f6 22 00 00 00 00 | 00 00 00 00 00 00 00 00 |..."....|........|
|00000020| 00 00 5a 45 4e 44 49 53 | 4b 32 2e 41 52 4a 00 0a |..ZENDIS|K2.ARJ..|
|00000030| 20 20 20 20 41 72 63 68 | 69 76 65 20 46 72 6f 6d | Arch|ive From|
|00000040| 0a 20 48 20 41 20 43 20 | 4b 20 45 20 52 27 73 20 |. H A C |K E R's |
|00000050| 20 20 43 20 44 0a 20 20 | 20 20 20 43 72 65 61 74 | C D. | Creat|
|00000060| 65 64 20 42 79 0a 20 20 | 57 68 69 74 65 20 45 61 |ed By. |White Ea|
|00000070| 67 6c 65 20 5b 52 43 44 | 5d 0a 20 20 20 20 20 20 |gle [RCD|]. |
|00000080| 20 20 31 39 39 37 0a 0a | 00 9a c6 fe 79 00 00 60 | 1997..|....y..`|
|00000090| ea 2b 00 1e 06 01 00 10 | 00 00 14 a8 6e 4f 14 37 |.+......|....nO.7|
|000000a0| 06 00 00 37 06 00 00 1f | 46 97 3e 00 00 20 00 00 |...7....|F.>.. ..|
|000000b0| 00 4c 53 54 31 31 2d 31 | 2e 41 53 4d 00 00 d6 be |.LST11-1|.ASM....|
|000000c0| a6 09 00 00 3b 0d 0a 3b | 20 2a 2a 2a 20 4c 69 73 |....;..;| *** Lis|
|000000d0| 74 69 6e 67 20 31 31 2d | 31 20 2a 2a 2a 0d 0a 3b |ting 11-|1 ***..;|
|000000e0| 0d 0a 3b 20 43 6f 70 69 | 65 73 20 61 20 73 74 72 |..; Copi|es a str|
|000000f0| 69 6e 67 20 74 6f 20 61 | 6e 6f 74 68 65 72 20 73 |ing to a|nother s|
|00000100| 74 72 69 6e 67 2c 20 63 | 6f 6e 76 65 72 74 69 6e |tring, c|onvertin|
|00000110| 67 20 61 6c 6c 0d 0a 3b | 20 63 68 61 72 61 63 74 |g all..;| charact|
|00000120| 65 72 73 20 74 6f 20 75 | 70 70 65 72 63 61 73 65 |ers to u|ppercase|
|00000130| 20 69 6e 20 74 68 65 20 | 70 72 6f 63 65 73 73 2c | in the |process,|
|00000140| 20 75 73 69 6e 67 20 61 | 20 6c 6f 6f 70 0d 0a 3b | using a| loop..;|
|00000150| 20 63 6f 6e 74 61 69 6e | 69 6e 67 20 4c 4f 44 53 | contain|ing LODS|
|00000160| 42 20 61 6e 64 20 53 54 | 4f 53 42 2e 0d 0a 3b 0d |B and ST|OSB...;.|
|00000170| 0a 09 6a 6d 70 09 53 6b | 69 70 0d 0a 3b 0d 0a 53 |..jmp.Sk|ip..;..S|
|00000180| 6f 75 72 63 65 53 74 72 | 69 6e 67 09 6c 61 62 65 |ourceStr|ing.labe|
|00000190| 6c 09 77 6f 72 64 0d 0a | 09 64 62 09 27 54 68 69 |l.word..|.db.'Thi|
|000001a0| 73 20 73 70 61 63 65 20 | 69 6e 74 65 6e 74 69 6f |s space |intentio|
|000001b0| 6e 61 6c 6c 79 20 6c 65 | 66 74 20 6e 6f 74 20 62 |nally le|ft not b|
|000001c0| 6c 61 6e 6b 27 2c 30 0d | 0a 44 65 73 74 53 74 72 |lank',0.|.DestStr|
|000001d0| 69 6e 67 09 64 62 09 31 | 30 30 20 64 75 70 20 28 |ing.db.1|00 dup (|
|000001e0| 3f 29 0d 0a 3b 0d 0a 3b | 20 43 6f 70 69 65 73 20 |?)..;..;| Copies |
|000001f0| 6f 6e 65 20 7a 65 72 6f | 2d 74 65 72 6d 69 6e 61 |one zero|-termina|
|00000200| 74 65 64 20 73 74 72 69 | 6e 67 20 74 6f 20 61 6e |ted stri|ng to an|
|00000210| 6f 74 68 65 72 20 73 74 | 72 69 6e 67 2c 0d 0a 3b |other st|ring,..;|
|00000220| 20 63 6f 6e 76 65 72 74 | 69 6e 67 20 61 6c 6c 20 | convert|ing all |
|00000230| 63 68 61 72 61 63 74 65 | 72 73 20 74 6f 20 75 70 |characte|rs to up|
|00000240| 70 65 72 63 61 73 65 2e | 0d 0a 3b 0d 0a 3b 20 49 |percase.|..;..; I|
|00000250| 6e 70 75 74 3a 0d 0a 3b | 09 44 53 3a 53 49 20 3d |nput:..;|.DS:SI =|
|00000260| 20 73 74 61 72 74 20 6f | 66 20 73 6f 75 72 63 65 | start o|f source|
|00000270| 20 73 74 72 69 6e 67 0d | 0a 3b 09 45 53 3a 44 49 | string.|.;.ES:DI|
|00000280| 20 3d 20 73 74 61 72 74 | 20 6f 66 20 64 65 73 74 | = start| of dest|
|00000290| 69 6e 61 74 69 6f 6e 20 | 73 74 72 69 6e 67 0d 0a |ination |string..|
|000002a0| 3b 0d 0a 3b 20 4f 75 74 | 70 75 74 3a 0d 0a 3b 09 |;..; Out|put:..;.|
|000002b0| 6e 6f 6e 65 0d 0a 3b 0d | 0a 3b 20 52 65 67 69 73 |none..;.|.; Regis|
|000002c0| 74 65 72 73 20 61 6c 74 | 65 72 65 64 3a 20 41 4c |ters alt|ered: AL|
|000002d0| 2c 20 42 58 2c 20 53 49 | 2c 20 44 49 0d 0a 3b 0d |, BX, SI|, DI..;.|
|000002e0| 0a 3b 20 44 69 72 65 63 | 74 69 6f 6e 20 66 6c 61 |.; Direc|tion fla|
|000002f0| 67 20 63 6c 65 61 72 65 | 64 0d 0a 3b 0d 0a 3b 20 |g cleare|d..;..; |
|00000300| 4e 6f 74 65 3a 20 44 6f | 65 73 20 6e 6f 74 20 68 |Note: Do|es not h|
|00000310| 61 6e 64 6c 65 20 73 74 | 72 69 6e 67 73 20 74 68 |andle st|rings th|
|00000320| 61 74 20 61 72 65 20 6c | 6f 6e 67 65 72 20 74 68 |at are l|onger th|
|00000330| 61 6e 20 36 34 4b 0d 0a | 3b 09 62 79 74 65 73 20 |an 64K..|;.bytes |
|00000340| 6f 72 20 63 72 6f 73 73 | 20 73 65 67 6d 65 6e 74 |or cross| segment|
|00000350| 20 62 6f 75 6e 64 61 72 | 69 65 73 2e 20 44 6f 65 | boundar|ies. Doe|
|00000360| 73 20 6e 6f 74 20 68 61 | 6e 64 6c 65 0d 0a 3b 09 |s not ha|ndle..;.|
|00000370| 6f 76 65 72 6c 61 70 70 | 69 6e 67 20 73 74 72 69 |overlapp|ing stri|
|00000380| 6e 67 73 2e 0d 0a 3b 0d | 0a 43 6f 70 79 53 74 72 |ngs...;.|.CopyStr|
|00000390| 69 6e 67 55 70 70 65 72 | 3a 0d 0a 09 6d 6f 76 09 |ingUpper|:...mov.|
|000003a0| 62 6c 2c 27 61 27 09 3b | 73 65 74 20 75 70 20 66 |bl,'a'.;|set up f|
|000003b0| 6f 72 20 66 61 73 74 20 | 72 65 67 69 73 74 65 72 |or fast |register|
|000003c0| 2d 72 65 67 69 73 74 65 | 72 0d 0a 09 6d 6f 76 09 |-registe|r...mov.|
|000003d0| 62 68 2c 27 7a 27 09 3b | 20 63 6f 6d 70 61 72 69 |bh,'z'.;| compari|
|000003e0| 73 6f 6e 73 0d 0a 09 63 | 6c 64 0d 0a 53 74 72 69 |sons...c|ld..Stri|
|000003f0| 6e 67 55 70 70 65 72 4c | 6f 6f 70 3a 0d 0a 09 6c |ngUpperL|oop:...l|
|00000400| 6f 64 73 62 09 09 3b 67 | 65 74 20 74 68 65 20 6e |odsb..;g|et the n|
|00000410| 65 78 74 20 63 68 61 72 | 61 63 74 65 72 20 61 6e |ext char|acter an|
|00000420| 64 0d 0a 09 09 09 3b 20 | 70 6f 69 6e 74 20 74 6f |d.....; |point to|
|00000430| 20 74 68 65 20 66 6f 6c | 6c 6f 77 69 6e 67 20 63 | the fol|lowing c|
|00000440| 68 61 72 61 63 74 65 72 | 0d 0a 09 63 6d 70 09 61 |haracter|...cmp.a|
|00000450| 6c 2c 62 6c 09 3b 62 65 | 6c 6f 77 20 27 61 27 3f |l,bl.;be|low 'a'?|
|00000460| 0d 0a 09 6a 62 09 49 73 | 55 70 70 65 72 09 3b 79 |...jb.Is|Upper.;y|
|00000470| 65 73 2c 20 6e 6f 74 20 | 6c 6f 77 65 72 63 61 73 |es, not |lowercas|
|00000480| 65 0d 0a 09 63 6d 70 09 | 61 6c 2c 62 68 09 3b 61 |e...cmp.|al,bh.;a|
|00000490| 62 6f 76 65 20 27 7a 27 | 3f 0d 0a 09 6a 61 09 49 |bove 'z'|?...ja.I|
|000004a0| 73 55 70 70 65 72 09 3b | 79 65 73 2c 20 6e 6f 74 |sUpper.;|yes, not|
|000004b0| 20 6c 6f 77 65 72 63 61 | 73 65 0d 0a 09 61 6e 64 | lowerca|se...and|
|000004c0| 09 61 6c 2c 6e 6f 74 20 | 32 30 68 20 3b 69 73 20 |.al,not |20h ;is |
|000004d0| 6c 6f 77 65 72 63 61 73 | 65 2d 6d 61 6b 65 20 75 |lowercas|e-make u|
|000004e0| 70 70 65 72 63 61 73 65 | 0d 0a 49 73 55 70 70 65 |ppercase|..IsUppe|
|000004f0| 72 3a 0d 0a 09 73 74 6f | 73 62 09 09 3b 70 75 74 |r:...sto|sb..;put|
|00000500| 20 74 68 65 20 75 70 70 | 65 72 63 61 73 65 20 63 | the upp|ercase c|
|00000510| 68 61 72 61 63 74 65 72 | 20 69 6e 74 6f 0d 0a 09 |haracter| into...|
|00000520| 09 09 3b 20 74 68 65 20 | 6e 65 77 20 73 74 72 69 |..; the |new stri|
|00000530| 6e 67 20 61 6e 64 20 70 | 6f 69 6e 74 20 74 6f 20 |ng and p|oint to |
|00000540| 74 68 65 0d 0a 09 09 09 | 3b 20 66 6f 6c 6c 6f 77 |the.....|; follow|
|00000550| 69 6e 67 20 63 68 61 72 | 61 63 74 65 72 0d 0a 09 |ing char|acter...|
|00000560| 61 6e 64 09 61 6c 2c 61 | 6c 09 3b 69 73 20 74 68 |and.al,a|l.;is th|
|00000570| 69 73 20 74 68 65 20 7a | 65 72 6f 20 74 68 61 74 |is the z|ero that|
|00000580| 20 6d 61 72 6b 73 20 74 | 68 65 0d 0a 09 09 09 3b | marks t|he.....;|
|00000590| 20 65 6e 64 20 6f 66 20 | 74 68 65 20 73 74 72 69 | end of |the stri|
|000005a0| 6e 67 3f 0d 0a 09 6a 6e | 7a 09 53 74 72 69 6e 67 |ng?...jn|z.String|
|000005b0| 55 70 70 65 72 4c 6f 6f | 70 20 3b 6e 6f 2c 20 64 |UpperLoo|p ;no, d|
|000005c0| 6f 20 74 68 65 20 6e 65 | 78 74 20 63 68 61 72 61 |o the ne|xt chara|
|000005d0| 63 74 65 72 0d 0a 09 72 | 65 74 0d 0a 3b 0d 0a 53 |cter...r|et..;..S|
|000005e0| 6b 69 70 3a 0d 0a 09 63 | 61 6c 6c 09 5a 54 69 6d |kip:...c|all.ZTim|
|000005f0| 65 72 4f 6e 0d 0a 09 6d | 6f 76 09 73 69 2c 6f 66 |erOn...m|ov.si,of|
|00000600| 66 73 65 74 20 53 6f 75 | 72 63 65 53 74 72 69 6e |fset Sou|rceStrin|
|00000610| 67 09 3b 70 6f 69 6e 74 | 20 44 53 3a 53 49 20 74 |g.;point| DS:SI t|
|00000620| 6f 20 74 68 65 0d 0a 09 | 09 09 09 09 3b 20 73 74 |o the...|....; st|
|00000630| 72 69 6e 67 20 74 6f 20 | 63 6f 70 79 20 66 72 6f |ring to |copy fro|
|00000640| 6d 0d 0a 09 6d 6f 76 09 | 64 69 2c 73 65 67 20 44 |m...mov.|di,seg D|
|00000650| 65 73 74 53 74 72 69 6e | 67 0d 0a 09 6d 6f 76 09 |estStrin|g...mov.|
|00000660| 65 73 2c 64 69 09 09 09 | 3b 70 6f 69 6e 74 20 45 |es,di...|;point E|
|00000670| 53 3a 44 49 20 74 6f 20 | 74 68 65 0d 0a 09 6d 6f |S:DI to |the...mo|
|00000680| 76 09 64 69 2c 6f 66 66 | 73 65 74 20 44 65 73 74 |v.di,off|set Dest|
|00000690| 53 74 72 69 6e 67 09 3b | 20 73 74 72 69 6e 67 20 |String.;| string |
|000006a0| 74 6f 20 63 6f 70 79 20 | 74 6f 0d 0a 09 63 61 6c |to copy |to...cal|
|000006b0| 6c 09 43 6f 70 79 53 74 | 72 69 6e 67 55 70 70 65 |l.CopySt|ringUppe|
|000006c0| 72 09 09 3b 63 6f 70 79 | 20 26 20 63 6f 6e 76 65 |r..;copy| & conve|
|000006d0| 72 74 20 74 6f 0d 0a 09 | 09 09 09 09 3b 20 75 70 |rt to...|....; up|
|000006e0| 70 65 72 63 61 73 65 0d | 0a 09 63 61 6c 6c 09 5a |percase.|..call.Z|
|000006f0| 54 69 6d 65 72 4f 66 66 | 0d 0a 1a 60 ea 2b 00 1e |TimerOff|...`.+..|
|00000700| 06 01 00 10 00 00 14 a8 | 6e 4f 14 01 06 00 00 01 |........|nO......|
|00000710| 06 00 00 18 22 57 e1 00 | 00 20 00 00 00 4c 53 54 |...."W..|. ...LST|
|00000720| 31 31 2d 32 2e 41 53 4d | 00 00 22 b6 e3 c5 00 00 |11-2.ASM|..".....|
|00000730| 3b 0d 0a 3b 20 2a 2a 2a | 20 4c 69 73 74 69 6e 67 |;..; ***| Listing|
|00000740| 20 31 31 2d 32 20 2a 2a | 2a 0d 0a 3b 0d 0a 3b 20 | 11-2 **|*..;..; |
|00000750| 43 6f 70 69 65 73 20 61 | 20 73 74 72 69 6e 67 20 |Copies a| string |
|00000760| 74 6f 20 61 6e 6f 74 68 | 65 72 20 73 74 72 69 6e |to anoth|er strin|
|00000770| 67 2c 20 63 6f 6e 76 65 | 72 74 69 6e 67 20 61 6c |g, conve|rting al|
|00000780| 6c 0d 0a 3b 20 63 68 61 | 72 61 63 74 65 72 73 20 |l..; cha|racters |
|00000790| 74 6f 20 75 70 70 65 72 | 63 61 73 65 20 69 6e 20 |to upper|case in |
|000007a0| 74 68 65 20 70 72 6f 63 | 65 73 73 2c 20 75 73 69 |the proc|ess, usi|
|000007b0| 6e 67 20 61 20 6c 6f 6f | 70 0d 0a 3b 20 63 6f 6e |ng a loo|p..; con|
|000007c0| 74 61 69 6e 69 6e 67 20 | 6e 6f 6e 2d 73 74 72 69 |taining |non-stri|
|000007d0| 6e 67 20 69 6e 73 74 72 | 75 63 74 69 6f 6e 73 2e |ng instr|uctions.|
|000007e0| 0d 0a 3b 0d 0a 09 6a 6d | 70 09 53 6b 69 70 0d 0a |..;...jm|p.Skip..|
|000007f0| 3b 0d 0a 53 6f 75 72 63 | 65 53 74 72 69 6e 67 09 |;..Sourc|eString.|
|00000800| 6c 61 62 65 6c 09 77 6f | 72 64 0d 0a 09 64 62 09 |label.wo|rd...db.|
|00000810| 27 54 68 69 73 20 73 70 | 61 63 65 20 69 6e 74 65 |'This sp|ace inte|
|00000820| 6e 74 69 6f 6e 61 6c 6c | 79 20 6c 65 66 74 20 6e |ntionall|y left n|
|00000830| 6f 74 20 62 6c 61 6e 6b | 27 2c 30 0d 0a 44 65 73 |ot blank|',0..Des|
|00000840| 74 53 74 72 69 6e 67 09 | 64 62 09 31 30 30 20 64 |tString.|db.100 d|
|00000850| 75 70 20 28 3f 29 0d 0a | 3b 0d 0a 3b 20 43 6f 70 |up (?)..|;..; Cop|
|00000860| 69 65 73 20 6f 6e 65 20 | 7a 65 72 6f 2d 74 65 72 |ies one |zero-ter|
|00000870| 6d 69 6e 61 74 65 64 20 | 73 74 72 69 6e 67 20 74 |minated |string t|
|00000880| 6f 20 61 6e 6f 74 68 65 | 72 20 73 74 72 69 6e 67 |o anothe|r string|
|00000890| 2c 0d 0a 3b 20 63 6f 6e | 76 65 72 74 69 6e 67 20 |,..; con|verting |
|000008a0| 61 6c 6c 20 63 68 61 72 | 61 63 74 65 72 73 20 74 |all char|acters t|
|000008b0| 6f 20 75 70 70 65 72 63 | 61 73 65 2e 0d 0a 3b 0d |o upperc|ase...;.|
|000008c0| 0a 3b 20 49 6e 70 75 74 | 3a 0d 0a 3b 09 44 53 3a |.; Input|:..;.DS:|
|000008d0| 53 49 20 3d 20 73 74 61 | 72 74 20 6f 66 20 73 6f |SI = sta|rt of so|
|000008e0| 75 72 63 65 20 73 74 72 | 69 6e 67 0d 0a 3b 09 45 |urce str|ing..;.E|
|000008f0| 53 3a 44 49 20 3d 20 73 | 74 61 72 74 20 6f 66 20 |S:DI = s|tart of |
|00000900| 64 65 73 74 69 6e 61 74 | 69 6f 6e 20 73 74 72 69 |destinat|ion stri|
|00000910| 6e 67 0d 0a 3b 0d 0a 3b | 20 4f 75 74 70 75 74 3a |ng..;..;| Output:|
|00000920| 0d 0a 3b 09 6e 6f 6e 65 | 0d 0a 3b 0d 0a 3b 20 52 |..;.none|..;..; R|
|00000930| 65 67 69 73 74 65 72 73 | 20 61 6c 74 65 72 65 64 |egisters| altered|
|00000940| 3a 20 41 4c 2c 20 42 58 | 2c 20 53 49 2c 20 44 49 |: AL, BX|, SI, DI|
|00000950| 0d 0a 3b 0d 0a 3b 20 4e | 6f 74 65 3a 20 44 6f 65 |..;..; N|ote: Doe|
|00000960| 73 20 6e 6f 74 20 68 61 | 6e 64 6c 65 20 73 74 72 |s not ha|ndle str|
|00000970| 69 6e 67 73 20 74 68 61 | 74 20 61 72 65 20 6c 6f |ings tha|t are lo|
|00000980| 6e 67 65 72 20 74 68 61 | 6e 20 36 34 4b 0d 0a 3b |nger tha|n 64K..;|
|00000990| 09 62 79 74 65 73 20 6f | 72 20 63 72 6f 73 73 20 |.bytes o|r cross |
|000009a0| 73 65 67 6d 65 6e 74 20 | 62 6f 75 6e 64 61 72 69 |segment |boundari|
|000009b0| 65 73 2e 0d 0a 3b 0d 0a | 43 6f 70 79 53 74 72 69 |es...;..|CopyStri|
|000009c0| 6e 67 55 70 70 65 72 3a | 0d 0a 09 6d 6f 76 09 62 |ngUpper:|...mov.b|
|000009d0| 6c 2c 27 61 27 09 3b 73 | 65 74 20 75 70 20 66 6f |l,'a'.;s|et up fo|
|000009e0| 72 20 66 61 73 74 20 72 | 65 67 69 73 74 65 72 2d |r fast r|egister-|
|000009f0| 72 65 67 69 73 74 65 72 | 0d 0a 09 6d 6f 76 09 62 |register|...mov.b|
|00000a00| 68 2c 27 7a 27 09 3b 20 | 63 6f 6d 70 61 72 69 73 |h,'z'.; |comparis|
|00000a10| 6f 6e 73 0d 0a 53 74 72 | 69 6e 67 55 70 70 65 72 |ons..Str|ingUpper|
|00000a20| 4c 6f 6f 70 3a 0d 0a 09 | 6d 6f 76 09 61 6c 2c 5b |Loop:...|mov.al,[|
|00000a30| 73 69 5d 09 3b 67 65 74 | 20 74 68 65 20 6e 65 78 |si].;get| the nex|
|00000a40| 74 20 63 68 61 72 61 63 | 74 65 72 0d 0a 09 69 6e |t charac|ter...in|
|00000a50| 63 09 73 69 09 3b 70 6f | 69 6e 74 20 74 6f 20 74 |c.si.;po|int to t|
|00000a60| 68 65 20 66 6f 6c 6c 6f | 77 69 6e 67 20 63 68 61 |he follo|wing cha|
|00000a70| 72 61 63 74 65 72 0d 0a | 09 63 6d 70 09 61 6c 2c |racter..|.cmp.al,|
|00000a80| 62 6c 09 3b 62 65 6c 6f | 77 20 27 61 27 3f 0d 0a |bl.;belo|w 'a'?..|
|00000a90| 09 6a 62 09 49 73 55 70 | 70 65 72 09 3b 79 65 73 |.jb.IsUp|per.;yes|
|00000aa0| 2c 20 6e 6f 74 20 6c 6f | 77 65 72 63 61 73 65 0d |, not lo|wercase.|
|00000ab0| 0a 09 63 6d 70 09 61 6c | 2c 62 68 09 3b 61 62 6f |..cmp.al|,bh.;abo|
|00000ac0| 76 65 20 27 7a 27 3f 0d | 0a 09 6a 61 09 49 73 55 |ve 'z'?.|..ja.IsU|
|00000ad0| 70 70 65 72 09 3b 79 65 | 73 2c 20 6e 6f 74 20 6c |pper.;ye|s, not l|
|00000ae0| 6f 77 65 72 63 61 73 65 | 0d 0a 09 61 6e 64 09 61 |owercase|...and.a|
|00000af0| 6c 2c 6e 6f 74 20 32 30 | 68 20 3b 69 73 20 6c 6f |l,not 20|h ;is lo|
|00000b00| 77 65 72 63 61 73 65 2d | 6d 61 6b 65 20 75 70 70 |wercase-|make upp|
|00000b10| 65 72 63 61 73 65 0d 0a | 49 73 55 70 70 65 72 3a |ercase..|IsUpper:|
|00000b20| 0d 0a 09 6d 6f 76 09 65 | 73 3a 5b 64 69 5d 2c 61 |...mov.e|s:[di],a|
|00000b30| 6c 20 3b 70 75 74 20 74 | 68 65 20 75 70 70 65 72 |l ;put t|he upper|
|00000b40| 63 61 73 65 20 63 68 61 | 72 61 63 74 65 72 20 69 |case cha|racter i|
|00000b50| 6e 74 6f 0d 0a 09 09 09 | 3b 20 74 68 65 20 6e 65 |nto.....|; the ne|
|00000b60| 77 20 73 74 72 69 6e 67 | 0d 0a 09 69 6e 63 09 64 |w string|...inc.d|
|00000b70| 69 09 3b 70 6f 69 6e 74 | 20 74 6f 20 74 68 65 20 |i.;point| to the |
|00000b80| 66 6f 6c 6c 6f 77 69 6e | 67 20 63 68 61 72 61 63 |followin|g charac|
|00000b90| 74 65 72 0d 0a 09 61 6e | 64 09 61 6c 2c 61 6c 09 |ter...an|d.al,al.|
|00000ba0| 3b 69 73 20 74 68 69 73 | 20 74 68 65 20 7a 65 72 |;is this| the zer|
|00000bb0| 6f 20 74 68 61 74 20 6d | 61 72 6b 73 20 74 68 65 |o that m|arks the|
|00000bc0| 0d 0a 09 09 09 3b 20 65 | 6e 64 20 6f 66 20 74 68 |.....; e|nd of th|
|00000bd0| 65 20 73 74 72 69 6e 67 | 3f 0d 0a 09 6a 6e 7a 09 |e string|?...jnz.|
|00000be0| 53 74 72 69 6e 67 55 70 | 70 65 72 4c 6f 6f 70 20 |StringUp|perLoop |
|00000bf0| 3b 6e 6f 2c 20 64 6f 20 | 74 68 65 20 6e 65 78 74 |;no, do |the next|
|00000c00| 20 63 68 61 72 61 63 74 | 65 72 0d 0a 09 72 65 74 | charact|er...ret|
|00000c10| 0d 0a 3b 0d 0a 53 6b 69 | 70 3a 0d 0a 09 63 61 6c |..;..Ski|p:...cal|
|00000c20| 6c 09 5a 54 69 6d 65 72 | 4f 6e 0d 0a 09 6d 6f 76 |l.ZTimer|On...mov|
|00000c30| 09 73 69 2c 6f 66 66 73 | 65 74 20 53 6f 75 72 63 |.si,offs|et Sourc|
|00000c40| 65 53 74 72 69 6e 67 09 | 3b 70 6f 69 6e 74 20 44 |eString.|;point D|
|00000c50| 53 3a 53 49 20 74 6f 20 | 74 68 65 0d 0a 09 09 09 |S:SI to |the.....|
|00000c60| 09 09 3b 20 73 74 72 69 | 6e 67 20 74 6f 20 63 6f |..; stri|ng to co|
|00000c70| 70 79 20 66 72 6f 6d 0d | 0a 09 6d 6f 76 09 64 69 |py from.|..mov.di|
|00000c80| 2c 73 65 67 20 44 65 73 | 74 53 74 72 69 6e 67 0d |,seg Des|tString.|
|00000c90| 0a 09 6d 6f 76 09 65 73 | 2c 64 69 09 09 09 3b 70 |..mov.es|,di...;p|
|00000ca0| 6f 69 6e 74 20 45 53 3a | 44 49 20 74 6f 20 74 68 |oint ES:|DI to th|
|00000cb0| 65 0d 0a 09 6d 6f 76 09 | 64 69 2c 6f 66 66 73 65 |e...mov.|di,offse|
|00000cc0| 74 20 44 65 73 74 53 74 | 72 69 6e 67 09 3b 20 73 |t DestSt|ring.; s|
|00000cd0| 74 72 69 6e 67 20 74 6f | 20 63 6f 70 79 20 74 6f |tring to| copy to|
|00000ce0| 0d 0a 09 63 61 6c 6c 09 | 43 6f 70 79 53 74 72 69 |...call.|CopyStri|
|00000cf0| 6e 67 55 70 70 65 72 09 | 09 3b 63 6f 70 79 20 26 |ngUpper.|.;copy &|
|00000d00| 20 63 6f 6e 76 65 72 74 | 20 74 6f 0d 0a 09 09 09 | convert| to.....|
|00000d10| 09 09 3b 20 75 70 70 65 | 72 63 61 73 65 0d 0a 09 |..; uppe|rcase...|
|00000d20| 63 61 6c 6c 09 5a 54 69 | 6d 65 72 4f 66 66 0d 0a |call.ZTi|merOff..|
|00000d30| 1a 60 ea 2b 00 1e 06 01 | 00 10 00 00 14 a8 6e 4f |.`.+....|......nO|
|00000d40| 14 c4 05 00 00 c4 05 00 | 00 4b 91 2e 82 00 00 20 |........|.K..... |
|00000d50| 00 00 00 4c 53 54 31 31 | 2d 33 2e 41 53 4d 00 00 |...LST11|-3.ASM..|
|00000d60| 69 23 82 f5 00 00 3b 0d | 0a 3b 20 2a 2a 2a 20 4c |i#....;.|.; *** L|
|00000d70| 69 73 74 69 6e 67 20 31 | 31 2d 33 20 2a 2a 2a 0d |isting 1|1-3 ***.|
|00000d80| 0a 3b 0d 0a 3b 20 43 6f | 6e 76 65 72 74 73 20 61 |.;..; Co|nverts a|
|00000d90| 6c 6c 20 63 68 61 72 61 | 63 74 65 72 73 20 69 6e |ll chara|cters in|
|00000da0| 20 61 20 73 74 72 69 6e | 67 20 74 6f 20 75 70 70 | a strin|g to upp|
|00000db0| 65 72 63 61 73 65 2c 0d | 0a 3b 20 75 73 69 6e 67 |ercase,.|.; using|
|00000dc0| 20 61 20 6c 6f 6f 70 20 | 63 6f 6e 74 61 69 6e 69 | a loop |containi|
|00000dd0| 6e 67 20 4c 4f 44 53 42 | 20 61 6e 64 20 53 54 4f |ng LODSB| and STO|
|00000de0| 53 42 20 61 6e 64 20 75 | 73 69 6e 67 0d 0a 3b 20 |SB and u|sing..; |
|00000df0| 74 77 6f 20 70 6f 69 6e | 74 65 72 73 2e 0d 0a 3b |two poin|ters...;|
|00000e00| 0d 0a 09 6a 6d 70 09 53 | 6b 69 70 0d 0a 3b 0d 0a |...jmp.S|kip..;..|
|00000e10| 53 6f 75 72 63 65 53 74 | 72 69 6e 67 09 6c 61 62 |SourceSt|ring.lab|
|00000e20| 65 6c 09 77 6f 72 64 0d | 0a 09 64 62 09 27 54 68 |el.word.|..db.'Th|
|00000e30| 69 73 20 73 70 61 63 65 | 20 69 6e 74 65 6e 74 69 |is space| intenti|
|00000e40| 6f 6e 61 6c 6c 79 20 6c | 65 66 74 20 6e 6f 74 20 |onally l|eft not |
|00000e50| 62 6c 61 6e 6b 27 2c 30 | 0d 0a 3b 0d 0a 3b 20 43 |blank',0|..;..; C|
|00000e60| 6f 70 69 65 73 20 6f 6e | 65 20 7a 65 72 6f 2d 74 |opies on|e zero-t|
|00000e70| 65 72 6d 69 6e 61 74 65 | 64 20 73 74 72 69 6e 67 |erminate|d string|
|00000e80| 20 74 6f 20 61 6e 6f 74 | 68 65 72 20 73 74 72 69 | to anot|her stri|
|00000e90| 6e 67 2c 0d 0a 3b 20 63 | 6f 6e 76 65 72 74 69 6e |ng,..; c|onvertin|
|00000ea0| 67 20 61 6c 6c 20 63 68 | 61 72 61 63 74 65 72 73 |g all ch|aracters|
|00000eb0| 20 74 6f 20 75 70 70 65 | 72 63 61 73 65 2e 0d 0a | to uppe|rcase...|
|00000ec0| 3b 0d 0a 3b 20 49 6e 70 | 75 74 3a 0d 0a 3b 09 44 |;..; Inp|ut:..;.D|
|00000ed0| 53 3a 53 49 20 3d 20 73 | 74 61 72 74 20 6f 66 20 |S:SI = s|tart of |
|00000ee0| 73 6f 75 72 63 65 20 73 | 74 72 69 6e 67 0d 0a 3b |source s|tring..;|
|00000ef0| 09 45 53 3a 44 49 20 3d | 20 73 74 61 72 74 20 6f |.ES:DI =| start o|
|00000f00| 66 20 64 65 73 74 69 6e | 61 74 69 6f 6e 20 73 74 |f destin|ation st|
|00000f10| 72 69 6e 67 0d 0a 3b 0d | 0a 3b 20 4f 75 74 70 75 |ring..;.|.; Outpu|
|00000f20| 74 3a 0d 0a 3b 09 6e 6f | 6e 65 0d 0a 3b 0d 0a 3b |t:..;.no|ne..;..;|
|00000f30| 20 52 65 67 69 73 74 65 | 72 73 20 61 6c 74 65 72 | Registe|rs alter|
|00000f40| 65 64 3a 20 41 4c 2c 20 | 42 58 2c 20 53 49 2c 20 |ed: AL, |BX, SI, |
|00000f50| 44 49 0d 0a 3b 0d 0a 3b | 20 44 69 72 65 63 74 69 |DI..;..;| Directi|
|00000f60| 6f 6e 20 66 6c 61 67 20 | 63 6c 65 61 72 65 64 0d |on flag |cleared.|
|00000f70| 0a 3b 0d 0a 3b 20 4e 6f | 74 65 3a 20 44 6f 65 73 |.;..; No|te: Does|
|00000f80| 20 6e 6f 74 20 68 61 6e | 64 6c 65 20 73 74 72 69 | not han|dle stri|
|00000f90| 6e 67 73 20 74 68 61 74 | 20 61 72 65 20 6c 6f 6e |ngs that| are lon|
|00000fa0| 67 65 72 20 74 68 61 6e | 20 36 34 4b 0d 0a 3b 09 |ger than| 64K..;.|
|00000fb0| 62 79 74 65 73 20 6f 72 | 20 63 72 6f 73 73 20 73 |bytes or| cross s|
|00000fc0| 65 67 6d 65 6e 74 20 62 | 6f 75 6e 64 61 72 69 65 |egment b|oundarie|
|00000fd0| 73 2e 0d 0a 3b 0d 0a 43 | 6f 70 79 53 74 72 69 6e |s...;..C|opyStrin|
|00000fe0| 67 55 70 70 65 72 3a 0d | 0a 09 6d 6f 76 09 62 6c |gUpper:.|..mov.bl|
|00000ff0| 2c 27 61 27 09 3b 73 65 | 74 20 75 70 20 66 6f 72 |,'a'.;se|t up for|
|00001000| 20 66 61 73 74 20 72 65 | 67 69 73 74 65 72 2d 72 | fast re|gister-r|
|00001010| 65 67 69 73 74 65 72 0d | 0a 09 6d 6f 76 09 62 68 |egister.|..mov.bh|
|00001020| 2c 27 7a 27 09 3b 20 63 | 6f 6d 70 61 72 69 73 6f |,'z'.; c|ompariso|
|00001030| 6e 73 0d 0a 09 63 6c 64 | 0d 0a 53 74 72 69 6e 67 |ns...cld|..String|
|00001040| 55 70 70 65 72 4c 6f 6f | 70 3a 0d 0a 09 6c 6f 64 |UpperLoo|p:...lod|
|00001050| 73 62 09 09 3b 67 65 74 | 20 74 68 65 20 6e 65 78 |sb..;get| the nex|
|00001060| 74 20 63 68 61 72 61 63 | 74 65 72 20 61 6e 64 0d |t charac|ter and.|
|00001070| 0a 09 09 09 3b 20 70 6f | 69 6e 74 20 74 6f 20 74 |....; po|int to t|
|00001080| 68 65 20 66 6f 6c 6c 6f | 77 69 6e 67 20 63 68 61 |he follo|wing cha|
|00001090| 72 61 63 74 65 72 0d 0a | 09 63 6d 70 09 61 6c 2c |racter..|.cmp.al,|
|000010a0| 62 6c 09 3b 62 65 6c 6f | 77 20 27 61 27 3f 0d 0a |bl.;belo|w 'a'?..|
|000010b0| 09 6a 62 09 49 73 55 70 | 70 65 72 09 3b 79 65 73 |.jb.IsUp|per.;yes|
|000010c0| 2c 20 6e 6f 74 20 6c 6f | 77 65 72 63 61 73 65 0d |, not lo|wercase.|
|000010d0| 0a 09 63 6d 70 09 61 6c | 2c 62 68 09 3b 61 62 6f |..cmp.al|,bh.;abo|
|000010e0| 76 65 20 27 7a 27 3f 0d | 0a 09 6a 61 09 49 73 55 |ve 'z'?.|..ja.IsU|
|000010f0| 70 70 65 72 09 3b 79 65 | 73 2c 20 6e 6f 74 20 6c |pper.;ye|s, not l|
|00001100| 6f 77 65 72 63 61 73 65 | 0d 0a 09 61 6e 64 09 61 |owercase|...and.a|
|00001110| 6c 2c 6e 6f 74 20 32 30 | 68 20 3b 69 73 20 6c 6f |l,not 20|h ;is lo|
|00001120| 77 65 72 63 61 73 65 2d | 6d 61 6b 65 20 75 70 70 |wercase-|make upp|
|00001130| 65 72 63 61 73 65 0d 0a | 49 73 55 70 70 65 72 3a |ercase..|IsUpper:|
|00001140| 0d 0a 09 73 74 6f 73 62 | 09 09 3b 70 75 74 20 74 |...stosb|..;put t|
|00001150| 68 65 20 75 70 70 65 72 | 63 61 73 65 20 63 68 61 |he upper|case cha|
|00001160| 72 61 63 74 65 72 20 69 | 6e 74 6f 0d 0a 09 09 09 |racter i|nto.....|
|00001170| 3b 20 74 68 65 20 6e 65 | 77 20 73 74 72 69 6e 67 |; the ne|w string|
|00001180| 20 61 6e 64 20 70 6f 69 | 6e 74 20 74 6f 20 74 68 | and poi|nt to th|
|00001190| 65 0d 0a 09 09 09 3b 20 | 66 6f 6c 6c 6f 77 69 6e |e.....; |followin|
|000011a0| 67 20 63 68 61 72 61 63 | 74 65 72 0d 0a 09 61 6e |g charac|ter...an|
|000011b0| 64 09 61 6c 2c 61 6c 09 | 3b 69 73 20 74 68 69 73 |d.al,al.|;is this|
|000011c0| 20 74 68 65 20 7a 65 72 | 6f 20 74 68 61 74 20 6d | the zer|o that m|
|000011d0| 61 72 6b 73 20 74 68 65 | 0d 0a 09 09 09 3b 20 65 |arks the|.....; e|
|000011e0| 6e 64 20 6f 66 20 74 68 | 65 20 73 74 72 69 6e 67 |nd of th|e string|
|000011f0| 3f 0d 0a 09 6a 6e 7a 09 | 53 74 72 69 6e 67 55 70 |?...jnz.|StringUp|
|00001200| 70 65 72 4c 6f 6f 70 20 | 3b 6e 6f 2c 20 64 6f 20 |perLoop |;no, do |
|00001210| 74 68 65 20 6e 65 78 74 | 20 63 68 61 72 61 63 74 |the next| charact|
|00001220| 65 72 0d 0a 09 72 65 74 | 0d 0a 3b 0d 0a 53 6b 69 |er...ret|..;..Ski|
|00001230| 70 3a 0d 0a 09 63 61 6c | 6c 09 5a 54 69 6d 65 72 |p:...cal|l.ZTimer|
|00001240| 4f 6e 0d 0a 09 6d 6f 76 | 09 73 69 2c 6f 66 66 73 |On...mov|.si,offs|
|00001250| 65 74 20 53 6f 75 72 63 | 65 53 74 72 69 6e 67 09 |et Sourc|eString.|
|00001260| 3b 70 6f 69 6e 74 20 44 | 53 3a 53 49 20 74 6f 20 |;point D|S:SI to |
|00001270| 74 68 65 0d 0a 09 09 09 | 09 09 3b 20 73 74 72 69 |the.....|..; stri|
|00001280| 6e 67 20 74 6f 20 63 6f | 6e 76 65 72 74 0d 0a 09 |ng to co|nvert...|
|00001290| 6d 6f 76 09 64 69 2c 64 | 73 0d 0a 09 6d 6f 76 09 |mov.di,d|s...mov.|
|000012a0| 65 73 2c 64 69 09 09 09 | 3b 70 6f 69 6e 74 20 45 |es,di...|;point E|
|000012b0| 53 3a 44 49 20 74 6f 20 | 74 68 65 0d 0a 09 6d 6f |S:DI to |the...mo|
|000012c0| 76 09 64 69 2c 73 69 09 | 09 09 3b 20 73 61 6d 65 |v.di,si.|..; same|
|000012d0| 20 73 74 72 69 6e 67 0d | 0a 09 63 61 6c 6c 09 43 | string.|..call.C|
|000012e0| 6f 70 79 53 74 72 69 6e | 67 55 70 70 65 72 09 09 |opyStrin|gUpper..|
|000012f0| 3b 63 6f 6e 76 65 72 74 | 20 74 6f 0d 0a 09 09 09 |;convert| to.....|
|00001300| 09 09 3b 20 75 70 70 65 | 72 63 61 73 65 20 69 6e |..; uppe|rcase in|
|00001310| 20 70 6c 61 63 65 0d 0a | 09 63 61 6c 6c 09 5a 54 | place..|.call.ZT|
|00001320| 69 6d 65 72 4f 66 66 0d | 0a 1a 60 ea 2b 00 1e 06 |imerOff.|..`.+...|
|00001330| 01 00 10 00 00 14 a8 6e | 4f 14 ca 04 00 00 ca 04 |.......n|O.......|
|00001340| 00 00 e1 17 8a b8 00 00 | 20 00 00 00 4c 53 54 31 |........| ...LST1|
|00001350| 31 2d 34 2e 41 53 4d 00 | 00 f3 b5 03 07 00 00 3b |1-4.ASM.|.......;|
|00001360| 0d 0a 3b 20 2a 2a 2a 20 | 4c 69 73 74 69 6e 67 20 |..; *** |Listing |
|00001370| 31 31 2d 34 20 2a 2a 2a | 0d 0a 3b 0d 0a 3b 20 43 |11-4 ***|..;..; C|
|00001380| 6f 6e 76 65 72 74 73 20 | 61 6c 6c 20 63 68 61 72 |onverts |all char|
|00001390| 61 63 74 65 72 73 20 69 | 6e 20 61 20 73 74 72 69 |acters i|n a stri|
|000013a0| 6e 67 20 74 6f 20 75 70 | 70 65 72 63 61 73 65 2c |ng to up|percase,|
|000013b0| 0d 0a 3b 20 75 73 69 6e | 67 20 61 20 6c 6f 6f 70 |..; usin|g a loop|
|000013c0| 20 63 6f 6e 74 61 69 6e | 69 6e 67 20 6e 6f 6e 2d | contain|ing non-|
|000013d0| 73 74 72 69 6e 67 20 69 | 6e 73 74 72 75 63 74 69 |string i|nstructi|
|000013e0| 6f 6e 73 0d 0a 3b 20 61 | 6e 64 20 75 73 69 6e 67 |ons..; a|nd using|
|000013f0| 20 6f 6e 6c 79 20 6f 6e | 65 20 70 6f 69 6e 74 65 | only on|e pointe|
|00001400| 72 2e 0d 0a 3b 0d 0a 09 | 6a 6d 70 09 53 6b 69 70 |r...;...|jmp.Skip|
|00001410| 0d 0a 3b 0d 0a 53 6f 75 | 72 63 65 53 74 72 69 6e |..;..Sou|rceStrin|
|00001420| 67 09 6c 61 62 65 6c 09 | 77 6f 72 64 0d 0a 09 64 |g.label.|word...d|
|00001430| 62 09 27 54 68 69 73 20 | 73 70 61 63 65 20 69 6e |b.'This |space in|
|00001440| 74 65 6e 74 69 6f 6e 61 | 6c 6c 79 20 6c 65 66 74 |tentiona|lly left|
|00001450| 20 6e 6f 74 20 62 6c 61 | 6e 6b 27 2c 30 0d 0a 3b | not bla|nk',0..;|
|00001460| 0d 0a 3b 20 43 6f 6e 76 | 65 72 74 73 20 61 20 73 |..; Conv|erts a s|
|00001470| 74 72 69 6e 67 20 74 6f | 20 75 70 70 65 72 63 61 |tring to| upperca|
|00001480| 73 65 2e 0d 0a 3b 0d 0a | 3b 20 49 6e 70 75 74 3a |se...;..|; Input:|
|00001490| 0d 0a 3b 09 44 53 3a 53 | 49 20 3d 20 73 74 61 72 |..;.DS:S|I = star|
|000014a0| 74 20 6f 66 20 73 74 72 | 69 6e 67 0d 0a 3b 0d 0a |t of str|ing..;..|
|000014b0| 3b 20 4f 75 74 70 75 74 | 3a 0d 0a 3b 09 6e 6f 6e |; Output|:..;.non|
|000014c0| 65 0d 0a 3b 0d 0a 3b 20 | 52 65 67 69 73 74 65 72 |e..;..; |Register|
|000014d0| 73 20 61 6c 74 65 72 65 | 64 3a 20 41 4c 2c 20 42 |s altere|d: AL, B|
|000014e0| 58 2c 20 53 49 0d 0a 3b | 0d 0a 3b 20 4e 6f 74 65 |X, SI..;|..; Note|
|000014f0| 3a 20 44 6f 65 73 20 6e | 6f 74 20 68 61 6e 64 6c |: Does n|ot handl|
|00001500| 65 20 73 74 72 69 6e 67 | 73 20 74 68 61 74 20 61 |e string|s that a|
|00001510| 72 65 20 6c 6f 6e 67 65 | 72 20 74 68 61 6e 20 36 |re longe|r than 6|
|00001520| 34 4b 0d 0a 3b 09 62 79 | 74 65 73 20 6f 72 20 63 |4K..;.by|tes or c|
|00001530| 72 6f 73 73 20 73 65 67 | 6d 65 6e 74 20 62 6f 75 |ross seg|ment bou|
|00001540| 6e 64 61 72 69 65 73 2e | 0d 0a 3b 0d 0a 53 74 72 |ndaries.|..;..Str|
|00001550| 69 6e 67 54 6f 55 70 70 | 65 72 3a 0d 0a 09 6d 6f |ingToUpp|er:...mo|
|00001560| 76 09 62 6c 2c 27 61 27 | 09 3b 73 65 74 20 75 70 |v.bl,'a'|.;set up|
|00001570| 20 66 6f 72 20 66 61 73 | 74 20 72 65 67 69 73 74 | for fas|t regist|
|00001580| 65 72 2d 72 65 67 69 73 | 74 65 72 0d 0a 09 6d 6f |er-regis|ter...mo|
|00001590| 76 09 62 68 2c 27 7a 27 | 09 3b 20 63 6f 6d 70 61 |v.bh,'z'|.; compa|
|000015a0| 72 69 73 6f 6e 73 0d 0a | 53 74 72 69 6e 67 54 6f |risons..|StringTo|
|000015b0| 55 70 70 65 72 4c 6f 6f | 70 3a 0d 0a 09 6d 6f 76 |UpperLoo|p:...mov|
|000015c0| 09 61 6c 2c 5b 73 69 5d | 09 3b 67 65 74 20 74 68 |.al,[si]|.;get th|
|000015d0| 65 20 6e 65 78 74 20 63 | 68 61 72 61 63 74 65 72 |e next c|haracter|
|000015e0| 0d 0a 09 63 6d 70 09 61 | 6c 2c 62 6c 09 3b 62 65 |...cmp.a|l,bl.;be|
|000015f0| 6c 6f 77 20 27 61 27 3f | 0d 0a 09 6a 62 09 49 73 |low 'a'?|...jb.Is|
|00001600| 55 70 70 65 72 09 3b 79 | 65 73 2c 20 6e 6f 74 20 |Upper.;y|es, not |
|00001610| 6c 6f 77 65 72 63 61 73 | 65 0d 0a 09 63 6d 70 09 |lowercas|e...cmp.|
|00001620| 61 6c 2c 62 68 09 3b 61 | 62 6f 76 65 20 27 7a 27 |al,bh.;a|bove 'z'|
|00001630| 3f 0d 0a 09 6a 61 09 49 | 73 55 70 70 65 72 09 3b |?...ja.I|sUpper.;|
|00001640| 79 65 73 2c 20 6e 6f 74 | 20 6c 6f 77 65 72 63 61 |yes, not| lowerca|
|00001650| 73 65 0d 0a 09 61 6e 64 | 09 61 6c 2c 6e 6f 74 20 |se...and|.al,not |
|00001660| 32 30 68 20 3b 69 73 20 | 6c 6f 77 65 72 63 61 73 |20h ;is |lowercas|
|00001670| 65 2d 6d 61 6b 65 20 75 | 70 70 65 72 63 61 73 65 |e-make u|ppercase|
|00001680| 0d 0a 49 73 55 70 70 65 | 72 3a 0d 0a 09 6d 6f 76 |..IsUppe|r:...mov|
|00001690| 09 5b 73 69 5d 2c 61 6c | 09 3b 70 75 74 20 74 68 |.[si],al|.;put th|
|000016a0| 65 20 75 70 70 65 72 63 | 61 73 65 20 63 68 61 72 |e upperc|ase char|
|000016b0| 61 63 74 65 72 20 62 61 | 63 6b 0d 0a 09 69 6e 63 |acter ba|ck...inc|
|000016c0| 09 73 69 09 3b 20 69 6e | 74 6f 20 74 68 65 20 73 |.si.; in|to the s|
|000016d0| 74 72 69 6e 67 20 61 6e | 64 20 70 6f 69 6e 74 20 |tring an|d point |
|000016e0| 74 6f 20 74 68 65 0d 0a | 09 09 09 3b 20 66 6f 6c |to the..|...; fol|
|000016f0| 6c 6f 77 69 6e 67 20 63 | 68 61 72 61 63 74 65 72 |lowing c|haracter|
|00001700| 0d 0a 09 61 6e 64 09 61 | 6c 2c 61 6c 09 3b 69 73 |...and.a|l,al.;is|
|00001710| 20 74 68 69 73 20 74 68 | 65 20 7a 65 72 6f 20 74 | this th|e zero t|
|00001720| 68 61 74 20 6d 61 72 6b | 73 20 74 68 65 0d 0a 09 |hat mark|s the...|
|00001730| 09 09 3b 20 65 6e 64 20 | 6f 66 20 74 68 65 20 73 |..; end |of the s|
|00001740| 74 72 69 6e 67 3f 0d 0a | 09 6a 6e 7a 09 53 74 72 |tring?..|.jnz.Str|
|00001750| 69 6e 67 54 6f 55 70 70 | 65 72 4c 6f 6f 70 20 3b |ingToUpp|erLoop ;|
|00001760| 6e 6f 2c 20 64 6f 20 74 | 68 65 20 6e 65 78 74 20 |no, do t|he next |
|00001770| 63 68 61 72 61 63 74 65 | 72 0d 0a 09 72 65 74 0d |characte|r...ret.|
|00001780| 0a 3b 0d 0a 53 6b 69 70 | 3a 0d 0a 09 63 61 6c 6c |.;..Skip|:...call|
|00001790| 09 5a 54 69 6d 65 72 4f | 6e 0d 0a 09 6d 6f 76 09 |.ZTimerO|n...mov.|
|000017a0| 73 69 2c 6f 66 66 73 65 | 74 20 53 6f 75 72 63 65 |si,offse|t Source|
|000017b0| 53 74 72 69 6e 67 09 3b | 70 6f 69 6e 74 20 74 6f |String.;|point to|
|000017c0| 20 74 68 65 20 73 74 72 | 69 6e 67 0d 0a 09 09 09 | the str|ing.....|
|000017d0| 09 09 3b 20 74 6f 20 63 | 6f 6e 76 65 72 74 0d 0a |..; to c|onvert..|
|000017e0| 09 63 61 6c 6c 09 53 74 | 72 69 6e 67 54 6f 55 70 |.call.St|ringToUp|
|000017f0| 70 65 72 09 09 3b 63 6f | 6e 76 65 72 74 20 69 74 |per..;co|nvert it|
|00001800| 20 74 6f 0d 0a 09 09 09 | 09 09 3b 20 75 70 70 65 | to.....|..; uppe|
|00001810| 72 63 61 73 65 0d 0a 09 | 63 61 6c 6c 09 5a 54 69 |rcase...|call.ZTi|
|00001820| 6d 65 72 4f 66 66 0d 0a | 1a 60 ea 2b 00 1e 06 01 |merOff..|.`.+....|
|00001830| 00 10 00 00 14 a8 6e 4f | 14 1d 02 00 00 1d 02 00 |......nO|........|
|00001840| 00 b4 58 c7 94 00 00 20 | 00 00 00 4c 53 54 31 31 |..X.... |...LST11|
|00001850| 2d 35 2e 41 53 4d 00 00 | f4 20 84 6c 00 00 3b 0d |-5.ASM..|. .l..;.|
|00001860| 0a 3b 20 2a 2a 2a 20 4c | 69 73 74 69 6e 67 20 31 |.; *** L|isting 1|
|00001870| 31 2d 35 20 2a 2a 2a 0d | 0a 3b 0d 0a 3b 20 53 65 |1-5 ***.|.;..; Se|
|00001880| 74 73 20 74 68 65 20 68 | 69 67 68 20 62 69 74 20 |ts the h|igh bit |
|00001890| 6f 66 20 65 76 65 72 79 | 20 65 6c 65 6d 65 6e 74 |of every| element|
|000018a0| 20 69 6e 20 61 20 62 79 | 74 65 0d 0a 3b 20 61 72 | in a by|te..; ar|
|000018b0| 72 61 79 20 75 73 69 6e | 67 20 4c 4f 44 53 42 20 |ray usin|g LODSB |
|000018c0| 61 6e 64 20 53 54 4f 53 | 42 2e 0d 0a 3b 0d 0a 09 |and STOS|B...;...|
|000018d0| 6a 6d 70 09 53 6b 69 70 | 0d 0a 3b 0d 0a 3b 0d 0a |jmp.Skip|..;..;..|
|000018e0| 41 52 52 41 59 5f 4c 45 | 4e 47 54 48 09 65 71 75 |ARRAY_LE|NGTH.equ|
|000018f0| 09 31 30 30 30 0d 0a 42 | 79 74 65 41 72 72 61 79 |.1000..B|yteArray|
|00001900| 09 64 62 09 41 52 52 41 | 59 5f 4c 45 4e 47 54 48 |.db.ARRA|Y_LENGTH|
|00001910| 20 64 75 70 20 28 3f 29 | 0d 0a 3b 0d 0a 53 6b 69 | dup (?)|..;..Ski|
|00001920| 70 3a 0d 0a 09 63 61 6c | 6c 09 5a 54 69 6d 65 72 |p:...cal|l.ZTimer|
|00001930| 4f 6e 0d 0a 09 6d 6f 76 | 09 73 69 2c 6f 66 66 73 |On...mov|.si,offs|
|00001940| 65 74 20 42 79 74 65 41 | 72 72 61 79 09 3b 70 6f |et ByteA|rray.;po|
|00001950| 69 6e 74 20 74 6f 20 74 | 68 65 20 61 72 72 61 79 |int to t|he array|
|00001960| 0d 0a 09 6d 6f 76 09 64 | 69 2c 64 73 09 09 09 3b |...mov.d|i,ds...;|
|00001970| 20 61 73 20 62 6f 74 68 | 20 73 6f 75 72 63 65 20 | as both| source |
|00001980| 61 6e 64 0d 0a 09 6d 6f | 76 09 65 73 2c 64 69 09 |and...mo|v.es,di.|
|00001990| 09 09 3b 20 64 65 73 74 | 69 6e 61 74 69 6f 6e 0d |..; dest|ination.|
|000019a0| 0a 09 6d 6f 76 09 64 69 | 2c 73 69 0d 0a 09 6d 6f |..mov.di|,si...mo|
|000019b0| 76 09 63 78 2c 41 52 52 | 41 59 5f 4c 45 4e 47 54 |v.cx,ARR|AY_LENGT|
|000019c0| 48 0d 0a 09 6d 6f 76 09 | 61 68 2c 38 30 68 09 09 |H...mov.|ah,80h..|
|000019d0| 09 3b 62 69 74 20 70 61 | 74 74 65 72 6e 20 74 6f |.;bit pa|ttern to|
|000019e0| 20 4f 52 0d 0a 09 63 6c | 64 0d 0a 53 65 74 48 69 | OR...cl|d..SetHi|
|000019f0| 67 68 42 69 74 4c 6f 6f | 70 3a 0d 0a 09 6c 6f 64 |ghBitLoo|p:...lod|
|00001a00| 73 62 09 09 09 09 3b 67 | 65 74 20 74 68 65 20 6e |sb....;g|et the n|
|00001a10| 65 78 74 20 62 79 74 65 | 0d 0a 09 6f 72 09 61 6c |ext byte|...or.al|
|00001a20| 2c 61 68 09 09 09 3b 73 | 65 74 20 74 68 65 20 68 |,ah...;s|et the h|
|00001a30| 69 67 68 20 62 69 74 0d | 0a 09 73 74 6f 73 62 09 |igh bit.|..stosb.|
|00001a40| 09 09 09 3b 73 61 76 65 | 20 74 68 65 20 62 79 74 |...;save| the byt|
|00001a50| 65 0d 0a 09 6c 6f 6f 70 | 09 53 65 74 48 69 67 68 |e...loop|.SetHigh|
|00001a60| 42 69 74 4c 6f 6f 70 0d | 0a 09 63 61 6c 6c 09 5a |BitLoop.|..call.Z|
|00001a70| 54 69 6d 65 72 4f 66 66 | 0d 0a 1a 60 ea 2b 00 1e |TimerOff|...`.+..|
|00001a80| 06 01 00 10 00 00 14 a8 | 6e 4f 14 c7 01 00 00 c7 |........|nO......|
|00001a90| 01 00 00 cd 2d 5c 0b 00 | 00 20 00 00 00 4c 53 54 |....-\..|. ...LST|
|00001aa0| 31 31 2d 36 2e 41 53 4d | 00 00 b7 b8 6c ee 00 00 |11-6.ASM|....l...|
|00001ab0| 3b 0d 0a 3b 20 2a 2a 2a | 20 4c 69 73 74 69 6e 67 |;..; ***| Listing|
|00001ac0| 20 31 31 2d 36 20 2a 2a | 2a 0d 0a 3b 0d 0a 3b 20 | 11-6 **|*..;..; |
|00001ad0| 53 65 74 73 20 74 68 65 | 20 68 69 67 68 20 62 69 |Sets the| high bi|
|00001ae0| 74 20 6f 66 20 65 76 65 | 72 79 20 65 6c 65 6d 65 |t of eve|ry eleme|
|00001af0| 6e 74 20 69 6e 20 61 20 | 62 79 74 65 0d 0a 3b 20 |nt in a |byte..; |
|00001b00| 61 72 72 61 79 20 62 79 | 20 4f 52 69 6e 67 20 64 |array by| ORing d|
|00001b10| 69 72 65 63 74 6c 79 20 | 74 6f 20 6d 65 6d 6f 72 |irectly |to memor|
|00001b20| 79 2e 0d 0a 3b 0d 0a 09 | 6a 6d 70 09 53 6b 69 70 |y...;...|jmp.Skip|
|00001b30| 0d 0a 3b 0d 0a 3b 0d 0a | 41 52 52 41 59 5f 4c 45 |..;..;..|ARRAY_LE|
|00001b40| 4e 47 54 48 09 65 71 75 | 09 31 30 30 30 0d 0a 42 |NGTH.equ|.1000..B|
|00001b50| 79 74 65 41 72 72 61 79 | 09 64 62 09 41 52 52 41 |yteArray|.db.ARRA|
|00001b60| 59 5f 4c 45 4e 47 54 48 | 20 64 75 70 20 28 3f 29 |Y_LENGTH| dup (?)|
|00001b70| 0d 0a 3b 0d 0a 53 6b 69 | 70 3a 0d 0a 09 63 61 6c |..;..Ski|p:...cal|
|00001b80| 6c 09 5a 54 69 6d 65 72 | 4f 6e 0d 0a 09 6d 6f 76 |l.ZTimer|On...mov|
|00001b90| 09 73 69 2c 6f 66 66 73 | 65 74 20 42 79 74 65 41 |.si,offs|et ByteA|
|00001ba0| 72 72 61 79 09 3b 70 6f | 69 6e 74 20 74 6f 20 74 |rray.;po|int to t|
|00001bb0| 68 65 20 61 72 72 61 79 | 0d 0a 09 6d 6f 76 09 63 |he array|...mov.c|
|00001bc0| 78 2c 41 52 52 41 59 5f | 4c 45 4e 47 54 48 0d 0a |x,ARRAY_|LENGTH..|
|00001bd0| 09 6d 6f 76 09 61 6c 2c | 38 30 68 09 09 09 3b 62 |.mov.al,|80h...;b|
|00001be0| 69 74 20 70 61 74 74 65 | 72 6e 20 74 6f 20 4f 52 |it patte|rn to OR|
|00001bf0| 0d 0a 53 65 74 48 69 67 | 68 42 69 74 4c 6f 6f 70 |..SetHig|hBitLoop|
|00001c00| 3a 0d 0a 09 6f 72 09 5b | 73 69 5d 2c 61 6c 09 09 |:...or.[|si],al..|
|00001c10| 09 3b 73 65 74 20 74 68 | 65 20 68 69 67 68 20 62 |.;set th|e high b|
|00001c20| 69 74 0d 0a 09 69 6e 63 | 09 73 69 09 09 09 3b 70 |it...inc|.si...;p|
|00001c30| 6f 69 6e 74 20 74 6f 20 | 74 68 65 20 6e 65 78 74 |oint to |the next|
|00001c40| 0d 0a 09 09 09 09 09 3b | 20 62 79 74 65 0d 0a 09 |.......;| byte...|
|00001c50| 6c 6f 6f 70 09 53 65 74 | 48 69 67 68 42 69 74 4c |loop.Set|HighBitL|
|00001c60| 6f 6f 70 0d 0a 09 63 61 | 6c 6c 09 5a 54 69 6d 65 |oop...ca|ll.ZTime|
|00001c70| 72 4f 66 66 0d 0a 1a 60 | ea 2b 00 1e 06 01 00 10 |rOff...`|.+......|
|00001c80| 00 00 14 a8 6e 4f 14 7a | 09 00 00 7a 09 00 00 c9 |....nO.z|...z....|
|00001c90| aa 1f 15 00 00 20 00 00 | 00 4c 53 54 31 31 2d 37 |..... ..|.LST11-7|
|00001ca0| 2e 41 53 4d 00 00 00 97 | 8c 7d 00 00 3b 0d 0a 3b |.ASM....|.}..;..;|
|00001cb0| 20 2a 2a 2a 20 4c 69 73 | 74 69 6e 67 20 31 31 2d | *** Lis|ting 11-|
|00001cc0| 37 20 2a 2a 2a 0d 0a 3b | 0d 0a 3b 20 43 6f 70 69 |7 ***..;|..; Copi|
|00001cd0| 65 73 20 6f 76 65 72 6c | 61 70 70 69 6e 67 20 62 |es overl|apping b|
|00001ce0| 6c 6f 63 6b 73 20 6f 66 | 20 6d 65 6d 6f 72 79 20 |locks of| memory |
|00001cf0| 77 69 74 68 20 4d 4f 56 | 53 2e 0d 0a 3b 20 54 6f |with MOV|S...; To|
|00001d00| 20 74 68 65 20 67 72 65 | 61 74 65 73 74 20 70 6f | the gre|atest po|
|00001d10| 73 73 69 62 6c 65 20 65 | 78 74 65 6e 74 2c 20 74 |ssible e|xtent, t|
|00001d20| 68 65 20 63 6f 70 79 20 | 69 73 0d 0a 3b 20 70 65 |he copy |is..; pe|
|00001d30| 72 66 6f 72 6d 65 64 20 | 61 20 77 6f 72 64 20 61 |rformed |a word a|
|00001d40| 74 20 61 20 74 69 6d 65 | 2e 0d 0a 3b 0d 0a 09 6a |t a time|...;...j|
|00001d50| 6d 70 09 53 6b 69 70 0d | 0a 3b 0d 0a 54 45 53 54 |mp.Skip.|.;..TEST|
|00001d60| 5f 4c 45 4e 47 54 48 31 | 09 65 71 75 09 35 30 31 |_LENGTH1|.equ.501|
|00001d70| 09 3b 73 61 6d 70 6c 65 | 20 63 6f 70 79 20 6c 65 |.;sample| copy le|
|00001d80| 6e 67 74 68 20 23 31 0d | 0a 54 45 53 54 5f 4c 45 |ngth #1.|.TEST_LE|
|00001d90| 4e 47 54 48 32 09 65 71 | 75 09 31 34 39 39 09 3b |NGTH2.eq|u.1499.;|
|00001da0| 73 61 6d 70 6c 65 20 63 | 6f 70 79 20 6c 65 6e 67 |sample c|opy leng|
|00001db0| 74 68 20 23 32 0d 0a 54 | 65 73 74 41 72 72 61 79 |th #2..T|estArray|
|00001dc0| 09 64 62 09 31 35 30 30 | 20 64 75 70 20 28 30 29 |.db.1500| dup (0)|
|00001dd0| 0d 0a 3b 0d 0a 3b 20 43 | 6f 70 69 65 73 20 61 20 |..;..; C|opies a |
|00001de0| 62 6c 6f 63 6b 20 6f 66 | 20 6d 65 6d 6f 72 79 20 |block of| memory |
|00001df0| 43 58 20 62 79 74 65 73 | 20 69 6e 20 6c 65 6e 67 |CX bytes| in leng|
|00001e00| 74 68 2e 20 41 20 76 61 | 6c 75 65 0d 0a 3b 20 6f |th. A va|lue..; o|
|00001e10| 66 20 30 20 6d 65 61 6e | 73 20 22 63 6f 70 79 20 |f 0 mean|s "copy |
|00001e20| 7a 65 72 6f 20 62 79 74 | 65 73 2c 22 20 73 69 6e |zero byt|es," sin|
|00001e30| 63 65 20 69 74 20 77 6f | 75 6c 64 6e 27 74 20 6d |ce it wo|uldn't m|
|00001e40| 61 6b 65 0d 0a 3b 20 6d | 75 63 68 20 73 65 6e 73 |ake..; m|uch sens|
|00001e50| 65 20 74 6f 20 63 6f 70 | 79 20 6f 6e 65 20 36 34 |e to cop|y one 64|
|00001e60| 4b 20 62 6c 6f 63 6b 20 | 74 6f 20 61 6e 6f 74 68 |K block |to anoth|
|00001e70| 65 72 20 36 34 4b 20 62 | 6c 6f 63 6b 0d 0a 3b 20 |er 64K b|lock..; |
|00001e80| 69 6e 20 74 68 65 20 73 | 61 6d 65 20 73 65 67 6d |in the s|ame segm|
|00001e90| 65 6e 74 2c 20 73 6f 20 | 74 68 65 20 6d 61 78 69 |ent, so |the maxi|
|00001ea0| 6d 75 6d 20 6c 65 6e 67 | 74 68 20 74 68 61 74 20 |mum leng|th that |
|00001eb0| 63 61 6e 0d 0a 3b 20 62 | 65 20 63 6f 70 69 65 64 |can..; b|e copied|
|00001ec0| 20 69 73 20 36 34 4b 2d | 31 20 62 79 74 65 73 20 | is 64K-|1 bytes |
|00001ed0| 61 6e 64 20 74 68 65 20 | 6d 69 6e 69 6d 75 6d 20 |and the |minimum |
|00001ee0| 6c 65 6e 67 74 68 0d 0a | 3b 20 69 73 20 30 20 62 |length..|; is 0 b|
|00001ef0| 79 74 65 73 2e 20 4e 6f | 74 65 20 74 68 61 74 20 |ytes. No|te that |
|00001f00| 62 6f 74 68 20 62 6c 6f | 63 6b 73 20 6d 75 73 74 |both blo|cks must|
|00001f10| 20 62 65 20 69 6e 20 44 | 53 2e 20 4e 6f 74 65 0d | be in D|S. Note.|
|00001f20| 0a 3b 20 61 6c 73 6f 20 | 74 68 61 74 20 6f 76 65 |.; also |that ove|
|00001f30| 72 6c 61 70 20 68 61 6e | 64 6c 69 6e 67 20 69 73 |rlap han|dling is|
|00001f40| 20 6e 6f 74 20 67 75 61 | 72 61 6e 74 65 65 64 20 | not gua|ranteed |
|00001f50| 69 66 20 65 69 74 68 65 | 72 0d 0a 3b 20 62 6c 6f |if eithe|r..; blo|
|00001f60| 63 6b 20 77 72 61 70 73 | 20 61 74 20 74 68 65 20 |ck wraps| at the |
|00001f70| 65 6e 64 20 6f 66 20 74 | 68 65 20 73 65 67 6d 65 |end of t|he segme|
|00001f80| 6e 74 2e 0d 0a 3b 0d 0a | 3b 20 49 6e 70 75 74 3a |nt...;..|; Input:|
|00001f90| 0d 0a 3b 09 43 58 20 3d | 20 6e 75 6d 62 65 72 20 |..;.CX =| number |
|00001fa0| 6f 66 20 62 79 74 65 73 | 20 74 6f 20 63 6c 65 61 |of bytes| to clea|
|00001fb0| 72 0d 0a 3b 09 44 53 3a | 53 49 20 3d 20 73 74 61 |r..;.DS:|SI = sta|
|00001fc0| 72 74 20 6f 66 20 62 6c | 6f 63 6b 20 74 6f 20 63 |rt of bl|ock to c|
|00001fd0| 6f 70 79 0d 0a 3b 09 44 | 53 3a 44 49 20 3d 20 73 |opy..;.D|S:DI = s|
|00001fe0| 74 61 72 74 20 6f 66 20 | 64 65 73 74 69 6e 61 74 |tart of |destinat|
|00001ff0| 69 6f 6e 20 62 6c 6f 63 | 6b 0d 0a 3b 0d 0a 3b 20 |ion bloc|k..;..; |
|00002000| 4f 75 74 70 75 74 3a 0d | 0a 3b 09 6e 6f 6e 65 0d |Output:.|.;.none.|
|00002010| 0a 3b 0d 0a 3b 20 52 65 | 67 69 73 74 65 72 73 20 |.;..; Re|gisters |
|00002020| 61 6c 74 65 72 65 64 3a | 20 43 58 2c 20 44 58 2c |altered:| CX, DX,|
|00002030| 20 53 49 2c 20 44 49 2c | 20 45 53 0d 0a 3b 0d 0a | SI, DI,| ES..;..|
|00002040| 3b 20 44 69 72 65 63 74 | 69 6f 6e 20 66 6c 61 67 |; Direct|ion flag|
|00002050| 20 63 6c 65 61 72 65 64 | 0d 0a 3b 0d 0a 42 6c 6f | cleared|..;..Blo|
|00002060| 63 6b 43 6f 70 79 57 69 | 74 68 4f 76 65 72 6c 61 |ckCopyWi|thOverla|
|00002070| 70 3a 0d 0a 09 6d 6f 76 | 09 64 78 2c 64 73 09 3b |p:...mov|.dx,ds.;|
|00002080| 73 6f 75 72 63 65 20 61 | 6e 64 20 64 65 73 74 69 |source a|nd desti|
|00002090| 6e 61 74 69 6f 6e 20 61 | 72 65 20 69 6e 20 74 68 |nation a|re in th|
|000020a0| 65 0d 0a 09 6d 6f 76 09 | 65 73 2c 64 78 09 3b 20 |e...mov.|es,dx.; |
|000020b0| 73 61 6d 65 20 73 65 67 | 6d 65 6e 74 0d 0a 09 63 |same seg|ment...c|
|000020c0| 6d 70 09 73 69 2c 64 69 | 09 3b 77 68 69 63 68 20 |mp.si,di|.;which |
|000020d0| 77 61 79 20 64 6f 20 74 | 68 65 20 62 6c 6f 63 6b |way do t|he block|
|000020e0| 73 20 6f 76 65 72 6c 61 | 70 2c 20 69 66 0d 0a 09 |s overla|p, if...|
|000020f0| 09 09 3b 20 74 68 65 79 | 20 64 6f 20 6f 76 65 72 |..; they| do over|
|00002100| 6c 61 70 3f 0d 0a 09 6a | 61 65 09 4c 6f 77 54 6f |lap?...j|ae.LowTo|
|00002110| 48 69 67 68 0d 0a 09 09 | 09 3b 73 6f 75 72 63 65 |High....|.;source|
|00002120| 20 69 73 20 6e 6f 74 20 | 62 65 6c 6f 77 20 64 65 | is not |below de|
|00002130| 73 74 69 6e 61 74 69 6f | 6e 2c 20 73 6f 0d 0a 09 |stinatio|n, so...|
|00002140| 09 09 3b 20 77 65 20 63 | 61 6e 20 63 6f 70 79 20 |..; we c|an copy |
|00002150| 66 72 6f 6d 20 6c 6f 77 | 20 74 6f 20 68 69 67 68 |from low| to high|
|00002160| 0d 0a 0d 0a 09 09 09 3b | 73 6f 75 72 63 65 20 69 |.......;|source i|
|00002170| 73 20 62 65 6c 6f 77 20 | 64 65 73 74 69 6e 61 74 |s below |destinat|
|00002180| 69 6f 6e 2c 20 73 6f 20 | 77 65 0d 0a 09 09 09 3b |ion, so |we.....;|
|00002190| 20 6d 75 73 74 20 63 6f | 70 79 20 66 72 6f 6d 20 | must co|py from |
|000021a0| 68 69 67 68 20 74 6f 20 | 6c 6f 77 0d 0a 09 61 64 |high to |low...ad|
|000021b0| 64 09 73 69 2c 63 78 09 | 3b 70 6f 69 6e 74 20 74 |d.si,cx.|;point t|
|000021c0| 6f 20 74 68 65 20 65 6e | 64 20 6f 66 20 74 68 65 |o the en|d of the|
|000021d0| 20 73 6f 75 72 63 65 0d | 0a 09 64 65 63 09 73 69 | source.|..dec.si|
|000021e0| 09 3b 20 62 6c 6f 63 6b | 0d 0a 09 61 64 64 09 64 |.; block|...add.d|
|000021f0| 69 2c 63 78 09 3b 70 6f | 69 6e 74 20 74 6f 20 74 |i,cx.;po|int to t|
|00002200| 68 65 20 65 6e 64 20 6f | 66 20 74 68 65 20 64 65 |he end o|f the de|
|00002210| 73 74 69 6e 61 74 69 6f | 6e 0d 0a 09 64 65 63 09 |stinatio|n...dec.|
|00002220| 64 69 09 3b 20 62 6c 6f | 63 6b 0d 0a 09 73 74 64 |di.; blo|ck...std|
|00002230| 09 09 3b 63 6f 70 79 20 | 66 72 6f 6d 20 68 69 67 |..;copy |from hig|
|00002240| 68 20 61 64 64 72 65 73 | 73 65 73 20 74 6f 20 6c |h addres|ses to l|
|00002250| 6f 77 0d 0a 09 73 68 72 | 09 63 78 2c 31 09 3b 64 |ow...shr|.cx,1.;d|
|00002260| 69 76 69 64 65 20 62 79 | 20 32 2c 20 63 6f 70 79 |ivide by| 2, copy|
|00002270| 69 6e 67 20 74 68 65 20 | 6f 64 64 2d 62 79 74 65 |ing the |odd-byte|
|00002280| 0d 0a 09 09 09 3b 20 73 | 74 61 74 75 73 20 74 6f |.....; s|tatus to|
|00002290| 20 74 68 65 20 43 61 72 | 72 79 20 66 6c 61 67 0d | the Car|ry flag.|
|000022a0| 0a 09 6a 6e 63 09 43 6f | 70 79 57 6f 72 64 48 69 |..jnc.Co|pyWordHi|
|000022b0| 67 68 54 6f 4c 6f 77 20 | 3b 6e 6f 20 6f 64 64 20 |ghToLow |;no odd |
|000022c0| 62 79 74 65 20 74 6f 20 | 63 6f 70 79 0d 0a 09 6d |byte to |copy...m|
|000022d0| 6f 76 73 62 09 09 3b 63 | 6f 70 79 20 74 68 65 20 |ovsb..;c|opy the |
|000022e0| 6f 64 64 20 62 79 74 65 | 0d 0a 43 6f 70 79 57 6f |odd byte|..CopyWo|
|000022f0| 72 64 48 69 67 68 54 6f | 4c 6f 77 3a 0d 0a 09 64 |rdHighTo|Low:...d|
|00002300| 65 63 09 73 69 09 3b 70 | 6f 69 6e 74 20 6f 6e 65 |ec.si.;p|oint one|
|00002310| 20 77 6f 72 64 20 6c 6f | 77 65 72 20 69 6e 20 6d | word lo|wer in m|
|00002320| 65 6d 6f 72 79 2c 20 6e | 6f 74 0d 0a 09 64 65 63 |emory, n|ot...dec|
|00002330| 09 64 69 09 3b 20 6f 6e | 65 20 62 79 74 65 0d 0a |.di.; on|e byte..|
|00002340| 09 72 65 70 09 6d 6f 76 | 73 77 09 3b 6d 6f 76 65 |.rep.mov|sw.;move|
|00002350| 20 74 68 65 20 72 65 73 | 74 20 6f 66 20 74 68 65 | the res|t of the|
|00002360| 20 62 6c 6f 63 6b 0d 0a | 09 63 6c 64 0d 0a 09 72 | block..|.cld...r|
|00002370| 65 74 0d 0a 3b 0d 0a 4c | 6f 77 54 6f 48 69 67 68 |et..;..L|owToHigh|
|00002380| 3a 0d 0a 09 63 6c 64 09 | 09 3b 63 6f 70 79 20 66 |:...cld.|.;copy f|
|00002390| 72 6f 6d 20 6c 6f 77 20 | 61 64 64 72 65 73 73 65 |rom low |addresse|
|000023a0| 73 20 74 6f 20 68 69 67 | 68 0d 0a 09 73 68 72 09 |s to hig|h...shr.|
|000023b0| 63 78 2c 31 09 3b 64 69 | 76 69 64 65 20 62 79 20 |cx,1.;di|vide by |
|000023c0| 32 2c 20 63 6f 70 79 69 | 6e 67 20 74 68 65 20 6f |2, copyi|ng the o|
|000023d0| 64 64 2d 62 79 74 65 0d | 0a 09 09 09 3b 20 73 74 |dd-byte.|....; st|
|000023e0| 61 74 75 73 20 74 6f 20 | 74 68 65 20 43 61 72 72 |atus to |the Carr|
|000023f0| 79 20 66 6c 61 67 0d 0a | 09 6a 6e 63 09 43 6f 70 |y flag..|.jnc.Cop|
|00002400| 79 57 6f 72 64 4c 6f 77 | 54 6f 48 69 67 68 09 3b |yWordLow|ToHigh.;|
|00002410| 6e 6f 20 6f 64 64 20 62 | 79 74 65 20 74 6f 20 63 |no odd b|yte to c|
|00002420| 6f 70 79 0d 0a 09 6d 6f | 76 73 62 09 09 3b 63 6f |opy...mo|vsb..;co|
|00002430| 70 79 20 74 68 65 20 6f | 64 64 20 62 79 74 65 0d |py the o|dd byte.|
|00002440| 0a 43 6f 70 79 57 6f 72 | 64 4c 6f 77 54 6f 48 69 |.CopyWor|dLowToHi|
|00002450| 67 68 3a 0d 0a 09 72 65 | 70 09 6d 6f 76 73 77 09 |gh:...re|p.movsw.|
|00002460| 3b 6d 6f 76 65 20 74 68 | 65 20 72 65 73 74 20 6f |;move th|e rest o|
|00002470| 66 20 74 68 65 20 62 6c | 6f 63 6b 0d 0a 09 72 65 |f the bl|ock...re|
|00002480| 74 0d 0a 3b 0d 0a 53 6b | 69 70 3a 0d 0a 09 63 61 |t..;..Sk|ip:...ca|
|00002490| 6c 6c 09 5a 54 69 6d 65 | 72 4f 6e 0d 0a 3b 0d 0a |ll.ZTime|rOn..;..|
|000024a0| 3b 20 46 69 72 73 74 20 | 72 75 6e 20 74 68 65 20 |; First |run the |
|000024b0| 63 61 73 65 20 77 68 65 | 72 65 20 74 68 65 20 64 |case whe|re the d|
|000024c0| 65 73 74 69 6e 61 74 69 | 6f 6e 20 6f 76 65 72 6c |estinati|on overl|
|000024d0| 61 70 73 20 26 20 69 73 | 0d 0a 3b 20 68 69 67 68 |aps & is|..; high|
|000024e0| 65 72 20 69 6e 20 6d 65 | 6d 6f 72 79 2e 0d 0a 3b |er in me|mory...;|
|000024f0| 0d 0a 09 6d 6f 76 09 73 | 69 2c 6f 66 66 73 65 74 |...mov.s|i,offset|
|00002500| 20 54 65 73 74 41 72 72 | 61 79 0d 0a 09 6d 6f 76 | TestArr|ay...mov|
|00002510| 09 64 69 2c 6f 66 66 73 | 65 74 20 54 65 73 74 41 |.di,offs|et TestA|
|00002520| 72 72 61 79 2b 31 0d 0a | 09 6d 6f 76 09 63 78 2c |rray+1..|.mov.cx,|
|00002530| 54 45 53 54 5f 4c 45 4e | 47 54 48 31 0d 0a 09 63 |TEST_LEN|GTH1...c|
|00002540| 61 6c 6c 09 42 6c 6f 63 | 6b 43 6f 70 79 57 69 74 |all.Bloc|kCopyWit|
|00002550| 68 4f 76 65 72 6c 61 70 | 0d 0a 3b 0d 0a 3b 20 4e |hOverlap|..;..; N|
|00002560| 6f 77 20 72 75 6e 20 74 | 68 65 20 63 61 73 65 20 |ow run t|he case |
|00002570| 77 68 65 72 65 20 74 68 | 65 20 64 65 73 74 69 6e |where th|e destin|
|00002580| 61 74 69 6f 6e 20 6f 76 | 65 72 6c 61 70 73 20 26 |ation ov|erlaps &|
|00002590| 20 69 73 0d 0a 3b 20 6c | 6f 77 65 72 20 69 6e 20 | is..; l|ower in |
|000025a0| 6d 65 6d 6f 72 79 2e 0d | 0a 3b 0d 0a 09 6d 6f 76 |memory..|.;...mov|
|000025b0| 09 73 69 2c 6f 66 66 73 | 65 74 20 54 65 73 74 41 |.si,offs|et TestA|
|000025c0| 72 72 61 79 2b 31 0d 0a | 09 6d 6f 76 09 64 69 2c |rray+1..|.mov.di,|
|000025d0| 6f 66 66 73 65 74 20 54 | 65 73 74 41 72 72 61 79 |offset T|estArray|
|000025e0| 0d 0a 09 6d 6f 76 09 63 | 78 2c 54 45 53 54 5f 4c |...mov.c|x,TEST_L|
|000025f0| 45 4e 47 54 48 32 0d 0a | 09 63 61 6c 6c 09 42 6c |ENGTH2..|.call.Bl|
|00002600| 6f 63 6b 43 6f 70 79 57 | 69 74 68 4f 76 65 72 6c |ockCopyW|ithOverl|
|00002610| 61 70 0d 0a 09 63 61 6c | 6c 09 5a 54 69 6d 65 72 |ap...cal|l.ZTimer|
|00002620| 4f 66 66 0d 0a 1a 60 ea | 2b 00 1e 06 01 00 10 00 |Off...`.|+.......|
|00002630| 00 14 a8 6e 4f 14 ef 0a | 00 00 ef 0a 00 00 61 14 |...nO...|......a.|
|00002640| 86 ce 00 00 20 00 00 00 | 4c 53 54 31 31 2d 38 2e |.... ...|LST11-8.|
|00002650| 41 53 4d 00 00 e1 5e b6 | d4 00 00 3b 0d 0a 3b 20 |ASM...^.|...;..; |
|00002660| 2a 2a 2a 20 4c 69 73 74 | 69 6e 67 20 31 31 2d 38 |*** List|ing 11-8|
|00002670| 20 2a 2a 2a 0d 0a 3b 0d | 0a 3b 20 43 6f 70 69 65 | ***..;.|.; Copie|
|00002680| 73 20 6f 76 65 72 6c 61 | 70 70 69 6e 67 20 62 6c |s overla|pping bl|
|00002690| 6f 63 6b 73 20 6f 66 20 | 6d 65 6d 6f 72 79 20 77 |ocks of |memory w|
|000026a0| 69 74 68 0d 0a 3b 20 6e | 6f 6e 2d 73 74 72 69 6e |ith..; n|on-strin|
|000026b0| 67 20 69 6e 73 74 72 75 | 63 74 69 6f 6e 73 2e 20 |g instru|ctions. |
|000026c0| 54 6f 20 74 68 65 20 67 | 72 65 61 74 65 73 74 20 |To the g|reatest |
|000026d0| 70 6f 73 73 69 62 6c 65 | 0d 0a 3b 20 65 78 74 65 |possible|..; exte|
|000026e0| 6e 74 2c 20 74 68 65 20 | 63 6f 70 79 20 69 73 20 |nt, the |copy is |
|000026f0| 70 65 72 66 6f 72 6d 65 | 64 20 61 20 77 6f 72 64 |performe|d a word|
|00002700| 20 61 74 20 61 20 74 69 | 6d 65 2e 0d 0a 3b 0d 0a | at a ti|me...;..|
|00002710| 09 6a 6d 70 09 53 6b 69 | 70 0d 0a 3b 0d 0a 54 45 |.jmp.Ski|p..;..TE|
|00002720| 53 54 5f 4c 45 4e 47 54 | 48 31 09 65 71 75 09 35 |ST_LENGT|H1.equ.5|
|00002730| 30 31 09 3b 73 61 6d 70 | 6c 65 20 63 6f 70 79 20 |01.;samp|le copy |
|00002740| 6c 65 6e 67 74 68 20 23 | 31 0d 0a 54 45 53 54 5f |length #|1..TEST_|
|00002750| 4c 45 4e 47 54 48 32 09 | 65 71 75 09 31 34 39 39 |LENGTH2.|equ.1499|
|00002760| 09 3b 73 61 6d 70 6c 65 | 20 63 6f 70 79 20 6c 65 |.;sample| copy le|
|00002770| 6e 67 74 68 20 23 32 0d | 0a 54 65 73 74 41 72 72 |ngth #2.|.TestArr|
|00002780| 61 79 09 64 62 09 31 35 | 30 30 20 64 75 70 20 28 |ay.db.15|00 dup (|
|00002790| 30 29 0d 0a 3b 0d 0a 3b | 20 43 6f 70 69 65 73 20 |0)..;..;| Copies |
|000027a0| 61 20 62 6c 6f 63 6b 20 | 6f 66 20 6d 65 6d 6f 72 |a block |of memor|
|000027b0| 79 20 43 58 20 62 79 74 | 65 73 20 69 6e 20 6c 65 |y CX byt|es in le|
|000027c0| 6e 67 74 68 2e 20 41 20 | 76 61 6c 75 65 0d 0a 3b |ngth. A |value..;|
|000027d0| 20 6f 66 20 30 20 6d 65 | 61 6e 73 20 22 63 6f 70 | of 0 me|ans "cop|
|000027e0| 79 20 7a 65 72 6f 20 62 | 79 74 65 73 2c 22 20 73 |y zero b|ytes," s|
|000027f0| 69 6e 63 65 20 69 74 20 | 77 6f 75 6c 64 6e 27 74 |ince it |wouldn't|
|00002800| 20 6d 61 6b 65 0d 0a 3b | 20 6d 75 63 68 20 73 65 | make..;| much se|
|00002810| 6e 73 65 20 74 6f 20 63 | 6f 70 79 20 6f 6e 65 20 |nse to c|opy one |
|00002820| 36 34 4b 20 62 6c 6f 63 | 6b 20 74 6f 20 61 6e 6f |64K bloc|k to ano|
|00002830| 74 68 65 72 20 36 34 4b | 20 62 6c 6f 63 6b 0d 0a |ther 64K| block..|
|00002840| 3b 20 69 6e 20 74 68 65 | 20 73 61 6d 65 20 73 65 |; in the| same se|
|00002850| 67 6d 65 6e 74 2c 20 73 | 6f 20 74 68 65 20 6d 61 |gment, s|o the ma|
|00002860| 78 69 6d 75 6d 20 6c 65 | 6e 67 74 68 20 74 68 61 |ximum le|ngth tha|
|00002870| 74 20 63 61 6e 0d 0a 3b | 20 62 65 20 63 6f 70 69 |t can..;| be copi|
|00002880| 65 64 20 69 73 20 36 34 | 4b 2d 31 20 62 79 74 65 |ed is 64|K-1 byte|
|00002890| 73 20 61 6e 64 20 74 68 | 65 20 6d 69 6e 69 6d 75 |s and th|e minimu|
|000028a0| 6d 20 6c 65 6e 67 74 68 | 0d 0a 3b 20 69 73 20 30 |m length|..; is 0|
|000028b0| 20 62 79 74 65 73 2e 20 | 4e 6f 74 65 20 74 68 61 | bytes. |Note tha|
|000028c0| 74 20 62 6f 74 68 20 62 | 6c 6f 63 6b 73 20 6d 75 |t both b|locks mu|
|000028d0| 73 74 20 62 65 20 69 6e | 20 44 53 2e 20 4e 6f 74 |st be in| DS. Not|
|000028e0| 65 0d 0a 3b 20 61 6c 73 | 6f 20 74 68 61 74 20 6f |e..; als|o that o|
|000028f0| 76 65 72 6c 61 70 20 68 | 61 6e 64 6c 69 6e 67 20 |verlap h|andling |
|00002900| 69 73 20 6e 6f 74 20 67 | 75 61 72 61 6e 74 65 65 |is not g|uarantee|
|00002910| 64 20 69 66 20 65 69 74 | 68 65 72 0d 0a 3b 20 62 |d if eit|her..; b|
|00002920| 6c 6f 63 6b 20 77 72 61 | 70 73 20 61 74 20 74 68 |lock wra|ps at th|
|00002930| 65 20 65 6e 64 20 6f 66 | 20 74 68 65 20 73 65 67 |e end of| the seg|
|00002940| 6d 65 6e 74 2e 0d 0a 3b | 0d 0a 3b 20 49 6e 70 75 |ment...;|..; Inpu|
|00002950| 74 3a 0d 0a 3b 09 43 58 | 20 3d 20 6e 75 6d 62 65 |t:..;.CX| = numbe|
|00002960| 72 20 6f 66 20 62 79 74 | 65 73 20 74 6f 20 63 6c |r of byt|es to cl|
|00002970| 65 61 72 0d 0a 3b 09 44 | 53 3a 53 49 20 3d 20 73 |ear..;.D|S:SI = s|
|00002980| 74 61 72 74 20 6f 66 20 | 62 6c 6f 63 6b 20 74 6f |tart of |block to|
|00002990| 20 63 6f 70 79 0d 0a 3b | 09 44 53 3a 44 49 20 3d | copy..;|.DS:DI =|
|000029a0| 20 73 74 61 72 74 20 6f | 66 20 64 65 73 74 69 6e | start o|f destin|
|000029b0| 61 74 69 6f 6e 20 62 6c | 6f 63 6b 0d 0a 3b 0d 0a |ation bl|ock..;..|
|000029c0| 3b 20 4f 75 74 70 75 74 | 3a 0d 0a 3b 09 6e 6f 6e |; Output|:..;.non|
|000029d0| 65 0d 0a 3b 0d 0a 3b 20 | 52 65 67 69 73 74 65 72 |e..;..; |Register|
|000029e0| 73 20 61 6c 74 65 72 65 | 64 3a 20 41 58 2c 20 43 |s altere|d: AX, C|
|000029f0| 58 2c 20 44 58 2c 20 53 | 49 2c 20 44 49 0d 0a 3b |X, DX, S|I, DI..;|
|00002a00| 0d 0a 42 6c 6f 63 6b 43 | 6f 70 79 57 69 74 68 4f |..BlockC|opyWithO|
|00002a10| 76 65 72 6c 61 70 3a 0d | 0a 09 6a 63 78 7a 09 42 |verlap:.|..jcxz.B|
|00002a20| 6c 6f 63 6b 43 6f 70 79 | 57 69 74 68 4f 76 65 72 |lockCopy|WithOver|
|00002a30| 6c 61 70 44 6f 6e 65 0d | 0a 09 09 09 3b 67 75 61 |lapDone.|....;gua|
|00002a40| 72 64 20 61 67 61 69 6e | 73 74 20 7a 65 72 6f 20 |rd again|st zero |
|00002a50| 62 6c 6f 63 6b 20 73 69 | 7a 65 2c 0d 0a 09 09 09 |block si|ze,.....|
|00002a60| 3b 20 73 69 6e 63 65 20 | 4c 4f 4f 50 20 77 69 6c |; since |LOOP wil|
|00002a70| 6c 20 65 78 65 63 75 74 | 65 20 36 34 4b 20 74 69 |l execut|e 64K ti|
|00002a80| 6d 65 73 0d 0a 09 09 09 | 3b 20 77 68 65 6e 20 73 |mes.....|; when s|
|00002a90| 74 61 72 74 65 64 20 77 | 69 74 68 20 43 58 3d 30 |tarted w|ith CX=0|
|00002aa0| 0d 0a 09 6d 6f 76 09 64 | 78 2c 32 09 3b 61 6d 6f |...mov.d|x,2.;amo|
|00002ab0| 75 6e 74 20 62 79 20 77 | 68 69 63 68 20 74 6f 20 |unt by w|hich to |
|00002ac0| 61 64 6a 75 73 74 20 74 | 68 65 0d 0a 09 09 09 3b |adjust t|he.....;|
|00002ad0| 20 70 6f 69 6e 74 65 72 | 73 20 69 6e 20 74 68 65 | pointer|s in the|
|00002ae0| 20 77 6f 72 64 2d 63 6f | 70 79 20 6c 6f 6f 70 0d | word-co|py loop.|
|00002af0| 0a 09 63 6d 70 09 73 69 | 2c 64 69 09 3b 77 68 69 |..cmp.si|,di.;whi|
|00002b00| 63 68 20 77 61 79 20 64 | 6f 20 74 68 65 20 62 6c |ch way d|o the bl|
|00002b10| 6f 63 6b 73 20 6f 76 65 | 72 6c 61 70 2c 20 69 66 |ocks ove|rlap, if|
|00002b20| 0d 0a 09 09 09 3b 20 74 | 68 65 79 20 64 6f 20 6f |.....; t|hey do o|
|00002b30| 76 65 72 6c 61 70 3f 0d | 0a 09 6a 61 65 09 4c 6f |verlap?.|..jae.Lo|
|00002b40| 77 54 6f 48 69 67 68 0d | 0a 09 09 09 3b 73 6f 75 |wToHigh.|....;sou|
|00002b50| 72 63 65 20 69 73 20 6e | 6f 74 20 62 65 6c 6f 77 |rce is n|ot below|
|00002b60| 20 64 65 73 74 69 6e 61 | 74 69 6f 6e 2c 20 73 6f | destina|tion, so|
|00002b70| 0d 0a 09 09 09 3b 20 77 | 65 20 63 61 6e 20 63 6f |.....; w|e can co|
|00002b80| 70 79 20 66 72 6f 6d 20 | 6c 6f 77 20 74 6f 20 68 |py from |low to h|
|00002b90| 69 67 68 0d 0a 0d 0a 09 | 09 09 3b 73 6f 75 72 63 |igh.....|..;sourc|
|00002ba0| 65 20 69 73 20 62 65 6c | 6f 77 20 64 65 73 74 69 |e is bel|ow desti|
|00002bb0| 6e 61 74 69 6f 6e 2c 20 | 73 6f 20 77 65 0d 0a 09 |nation, |so we...|
|00002bc0| 09 09 3b 20 6d 75 73 74 | 20 63 6f 70 79 20 66 72 |..; must| copy fr|
|00002bd0| 6f 6d 20 68 69 67 68 20 | 74 6f 20 6c 6f 77 0d 0a |om high |to low..|
|00002be0| 09 61 64 64 09 73 69 2c | 63 78 09 3b 70 6f 69 6e |.add.si,|cx.;poin|
|00002bf0| 74 20 74 6f 20 74 68 65 | 20 65 6e 64 20 6f 66 20 |t to the| end of |
|00002c00| 74 68 65 20 73 6f 75 72 | 63 65 0d 0a 09 64 65 63 |the sour|ce...dec|
|00002c10| 09 73 69 09 3b 20 62 6c | 6f 63 6b 0d 0a 09 61 64 |.si.; bl|ock...ad|
|00002c20| 64 09 64 69 2c 63 78 09 | 3b 70 6f 69 6e 74 20 74 |d.di,cx.|;point t|
|00002c30| 6f 20 74 68 65 20 65 6e | 64 20 6f 66 20 74 68 65 |o the en|d of the|
|00002c40| 20 64 65 73 74 69 6e 61 | 74 69 6f 6e 0d 0a 09 64 | destina|tion...d|
|00002c50| 65 63 09 64 69 09 3b 20 | 62 6c 6f 63 6b 0d 0a 09 |ec.di.; |block...|
|00002c60| 73 68 72 09 63 78 2c 31 | 09 3b 64 69 76 69 64 65 |shr.cx,1|.;divide|
|00002c70| 20 62 79 20 32 2c 20 63 | 6f 70 79 69 6e 67 20 74 | by 2, c|opying t|
|00002c80| 68 65 20 6f 64 64 2d 62 | 79 74 65 0d 0a 09 09 09 |he odd-b|yte.....|
|00002c90| 3b 20 73 74 61 74 75 73 | 20 74 6f 20 74 68 65 20 |; status| to the |
|00002ca0| 43 61 72 72 79 20 66 6c | 61 67 0d 0a 09 6a 6e 63 |Carry fl|ag...jnc|
|00002cb0| 09 43 6f 70 79 57 6f 72 | 64 48 69 67 68 54 6f 4c |.CopyWor|dHighToL|
|00002cc0| 6f 77 20 3b 6e 6f 20 6f | 64 64 20 62 79 74 65 20 |ow ;no o|dd byte |
|00002cd0| 74 6f 20 63 6f 70 79 0d | 0a 09 6d 6f 76 09 61 6c |to copy.|..mov.al|
|00002ce0| 2c 5b 73 69 5d 09 3b 63 | 6f 70 79 20 74 68 65 20 |,[si].;c|opy the |
|00002cf0| 6f 64 64 20 62 79 74 65 | 0d 0a 09 6d 6f 76 09 5b |odd byte|...mov.[|
|00002d00| 64 69 5d 2c 61 6c 0d 0a | 09 64 65 63 09 73 69 09 |di],al..|.dec.si.|
|00002d10| 3b 61 64 76 61 6e 63 65 | 20 62 6f 74 68 20 70 6f |;advance| both po|
|00002d20| 69 6e 74 65 72 73 0d 0a | 09 64 65 63 09 64 69 0d |inters..|.dec.di.|
|00002d30| 0a 43 6f 70 79 57 6f 72 | 64 48 69 67 68 54 6f 4c |.CopyWor|dHighToL|
|00002d40| 6f 77 3a 0d 0a 09 64 65 | 63 09 73 69 09 3b 70 6f |ow:...de|c.si.;po|
|00002d50| 69 6e 74 20 6f 6e 65 20 | 77 6f 72 64 20 6c 6f 77 |int one |word low|
|00002d60| 65 72 20 69 6e 20 6d 65 | 6d 6f 72 79 2c 20 6e 6f |er in me|mory, no|
|00002d70| 74 0d 0a 09 64 65 63 09 | 64 69 09 3b 20 6f 6e 65 |t...dec.|di.; one|
|00002d80| 20 62 79 74 65 0d 0a 48 | 69 67 68 54 6f 4c 6f 77 | byte..H|ighToLow|
|00002d90| 43 6f 70 79 4c 6f 6f 70 | 3a 0d 0a 09 6d 6f 76 09 |CopyLoop|:...mov.|
|00002da0| 61 78 2c 5b 73 69 5d 09 | 3b 63 6f 70 79 20 61 20 |ax,[si].|;copy a |
|00002db0| 77 6f 72 64 0d 0a 09 6d | 6f 76 09 5b 64 69 5d 2c |word...m|ov.[di],|
|00002dc0| 61 78 0d 0a 09 73 75 62 | 09 73 69 2c 64 78 09 3b |ax...sub|.si,dx.;|
|00002dd0| 61 64 76 61 6e 63 65 20 | 62 6f 74 68 20 70 6f 69 |advance |both poi|
|00002de0| 6e 74 65 72 73 20 31 20 | 77 6f 72 64 0d 0a 09 73 |nters 1 |word...s|
|00002df0| 75 62 09 64 69 2c 64 78 | 0d 0a 09 6c 6f 6f 70 09 |ub.di,dx|...loop.|
|00002e00| 48 69 67 68 54 6f 4c 6f | 77 43 6f 70 79 4c 6f 6f |HighToLo|wCopyLoo|
|00002e10| 70 0d 0a 09 72 65 74 0d | 0a 3b 0d 0a 4c 6f 77 54 |p...ret.|.;..LowT|
|00002e20| 6f 48 69 67 68 3a 0d 0a | 09 73 68 72 09 63 78 2c |oHigh:..|.shr.cx,|
|00002e30| 31 09 3b 64 69 76 69 64 | 65 20 62 79 20 32 2c 20 |1.;divid|e by 2, |
|00002e40| 63 6f 70 79 69 6e 67 20 | 74 68 65 20 6f 64 64 2d |copying |the odd-|
|00002e50| 62 79 74 65 0d 0a 09 09 | 09 3b 20 73 74 61 74 75 |byte....|.; statu|
|00002e60| 73 20 74 6f 20 74 68 65 | 20 43 61 72 72 79 20 66 |s to the| Carry f|
|00002e70| 6c 61 67 0d 0a 09 6a 6e | 63 09 4c 6f 77 54 6f 48 |lag...jn|c.LowToH|
|00002e80| 69 67 68 43 6f 70 79 4c | 6f 6f 70 09 3b 6e 6f 20 |ighCopyL|oop.;no |
|00002e90| 6f 64 64 20 62 79 74 65 | 20 74 6f 20 63 6f 70 79 |odd byte| to copy|
|00002ea0| 0d 0a 09 6d 6f 76 09 61 | 6c 2c 5b 73 69 5d 09 3b |...mov.a|l,[si].;|
|00002eb0| 63 6f 70 79 20 74 68 65 | 20 6f 64 64 20 62 79 74 |copy the| odd byt|
|00002ec0| 65 0d 0a 09 6d 6f 76 09 | 5b 64 69 5d 2c 61 6c 0d |e...mov.|[di],al.|
|00002ed0| 0a 09 69 6e 63 09 73 69 | 09 3b 61 64 76 61 6e 63 |..inc.si|.;advanc|
|00002ee0| 65 20 62 6f 74 68 20 70 | 6f 69 6e 74 65 72 73 0d |e both p|ointers.|
|00002ef0| 0a 09 69 6e 63 09 64 69 | 0d 0a 4c 6f 77 54 6f 48 |..inc.di|..LowToH|
|00002f00| 69 67 68 43 6f 70 79 4c | 6f 6f 70 3a 0d 0a 09 6d |ighCopyL|oop:...m|
|00002f10| 6f 76 09 61 78 2c 5b 73 | 69 5d 09 3b 63 6f 70 79 |ov.ax,[s|i].;copy|
|00002f20| 20 61 20 77 6f 72 64 0d | 0a 09 6d 6f 76 09 5b 64 | a word.|..mov.[d|
|00002f30| 69 5d 2c 61 78 0d 0a 09 | 61 64 64 09 73 69 2c 64 |i],ax...|add.si,d|
|00002f40| 78 09 3b 61 64 76 61 6e | 63 65 20 62 6f 74 68 20 |x.;advan|ce both |
|00002f50| 70 6f 69 6e 74 65 72 73 | 20 31 20 77 6f 72 64 0d |pointers| 1 word.|
|00002f60| 0a 09 61 64 64 09 64 69 | 2c 64 78 0d 0a 09 6c 6f |..add.di|,dx...lo|
|00002f70| 6f 70 09 4c 6f 77 54 6f | 48 69 67 68 43 6f 70 79 |op.LowTo|HighCopy|
|00002f80| 4c 6f 6f 70 0d 0a 42 6c | 6f 63 6b 43 6f 70 79 57 |Loop..Bl|ockCopyW|
|00002f90| 69 74 68 4f 76 65 72 6c | 61 70 44 6f 6e 65 3a 0d |ithOverl|apDone:.|
|00002fa0| 0a 09 72 65 74 0d 0a 3b | 0d 0a 53 6b 69 70 3a 0d |..ret..;|..Skip:.|
|00002fb0| 0a 09 63 61 6c 6c 09 5a | 54 69 6d 65 72 4f 6e 0d |..call.Z|TimerOn.|
|00002fc0| 0a 3b 0d 0a 3b 20 46 69 | 72 73 74 20 72 75 6e 20 |.;..; Fi|rst run |
|00002fd0| 74 68 65 20 63 61 73 65 | 20 77 68 65 72 65 20 74 |the case| where t|
|00002fe0| 68 65 20 64 65 73 74 69 | 6e 61 74 69 6f 6e 20 6f |he desti|nation o|
|00002ff0| 76 65 72 6c 61 70 73 20 | 26 20 69 73 0d 0a 3b 20 |verlaps |& is..; |
|00003000| 68 69 67 68 65 72 20 69 | 6e 20 6d 65 6d 6f 72 79 |higher i|n memory|
|00003010| 2e 0d 0a 3b 0d 0a 09 6d | 6f 76 09 73 69 2c 6f 66 |...;...m|ov.si,of|
|00003020| 66 73 65 74 20 54 65 73 | 74 41 72 72 61 79 0d 0a |fset Tes|tArray..|
|00003030| 09 6d 6f 76 09 64 69 2c | 6f 66 66 73 65 74 20 54 |.mov.di,|offset T|
|00003040| 65 73 74 41 72 72 61 79 | 2b 31 0d 0a 09 6d 6f 76 |estArray|+1...mov|
|00003050| 09 63 78 2c 54 45 53 54 | 5f 4c 45 4e 47 54 48 31 |.cx,TEST|_LENGTH1|
|00003060| 0d 0a 09 63 61 6c 6c 09 | 42 6c 6f 63 6b 43 6f 70 |...call.|BlockCop|
|00003070| 79 57 69 74 68 4f 76 65 | 72 6c 61 70 0d 0a 3b 0d |yWithOve|rlap..;.|
|00003080| 0a 3b 20 4e 6f 77 20 72 | 75 6e 20 74 68 65 20 63 |.; Now r|un the c|
|00003090| 61 73 65 20 77 68 65 72 | 65 20 74 68 65 20 64 65 |ase wher|e the de|
|000030a0| 73 74 69 6e 61 74 69 6f | 6e 20 6f 76 65 72 6c 61 |stinatio|n overla|
|000030b0| 70 73 20 26 20 69 73 0d | 0a 3b 20 6c 6f 77 65 72 |ps & is.|.; lower|
|000030c0| 20 69 6e 20 6d 65 6d 6f | 72 79 2e 0d 0a 3b 0d 0a | in memo|ry...;..|
|000030d0| 09 6d 6f 76 09 73 69 2c | 6f 66 66 73 65 74 20 54 |.mov.si,|offset T|
|000030e0| 65 73 74 41 72 72 61 79 | 2b 31 0d 0a 09 6d 6f 76 |estArray|+1...mov|
|000030f0| 09 64 69 2c 6f 66 66 73 | 65 74 20 54 65 73 74 41 |.di,offs|et TestA|
|00003100| 72 72 61 79 0d 0a 09 6d | 6f 76 09 63 78 2c 54 45 |rray...m|ov.cx,TE|
|00003110| 53 54 5f 4c 45 4e 47 54 | 48 32 0d 0a 09 63 61 6c |ST_LENGT|H2...cal|
|00003120| 6c 09 42 6c 6f 63 6b 43 | 6f 70 79 57 69 74 68 4f |l.BlockC|opyWithO|
|00003130| 76 65 72 6c 61 70 0d 0a | 09 63 61 6c 6c 09 5a 54 |verlap..|.call.ZT|
|00003140| 69 6d 65 72 4f 66 66 0d | 0a 1a 60 ea 2b 00 1e 06 |imerOff.|..`.+...|
|00003150| 01 00 10 00 00 14 a8 6e | 4f 14 22 07 00 00 22 07 |.......n|O."...".|
|00003160| 00 00 39 72 86 12 00 00 | 20 00 00 00 4c 53 54 31 |..9r....| ...LST1|
|00003170| 31 2d 39 2e 41 53 4d 00 | 00 08 61 99 e4 00 00 3b |1-9.ASM.|..a....;|
|00003180| 0d 0a 3b 20 2a 2a 2a 20 | 4c 69 73 74 69 6e 67 20 |..; *** |Listing |
|00003190| 31 31 2d 39 20 2a 2a 2a | 0d 0a 3b 0d 0a 3b 20 43 |11-9 ***|..;..; C|
|000031a0| 6f 75 6e 74 73 20 74 68 | 65 20 6e 75 6d 62 65 72 |ounts th|e number|
|000031b0| 20 6f 66 20 74 69 6d 65 | 73 20 74 68 65 20 6c 65 | of time|s the le|
|000031c0| 74 74 65 72 20 27 41 27 | 0d 0a 3b 20 61 70 70 65 |tter 'A'|..; appe|
|000031d0| 61 72 73 20 69 6e 20 61 | 20 62 79 74 65 2d 73 69 |ars in a| byte-si|
|000031e0| 7a 65 64 20 61 72 72 61 | 79 2c 20 75 73 69 6e 67 |zed arra|y, using|
|000031f0| 20 6e 6f 6e 2d 73 74 72 | 69 6e 67 0d 0a 3b 20 69 | non-str|ing..; i|
|00003200| 6e 73 74 72 75 63 74 69 | 6f 6e 73 2e 0d 0a 3b 0d |nstructi|ons...;.|
|00003210| 0a 09 6a 6d 70 09 53 6b | 69 70 0d 0a 3b 0d 0a 42 |..jmp.Sk|ip..;..B|
|00003220| 79 74 65 41 72 72 61 79 | 09 6c 61 62 65 6c 09 62 |yteArray|.label.b|
|00003230| 79 74 65 0d 0a 09 64 62 | 09 27 41 52 52 41 59 20 |yte...db|.'ARRAY |
|00003240| 43 4f 4e 54 41 49 4e 49 | 4e 47 20 54 48 45 20 4c |CONTAINI|NG THE L|
|00003250| 45 54 54 45 52 20 27 27 | 41 27 27 20 34 20 54 49 |ETTER ''|A'' 4 TI|
|00003260| 4d 45 53 27 0d 0a 41 52 | 52 41 59 5f 4c 45 4e 47 |MES'..AR|RAY_LENG|
|00003270| 54 48 09 65 71 75 09 28 | 24 2d 42 79 74 65 41 72 |TH.equ.(|$-ByteAr|
|00003280| 72 61 79 29 0d 0a 3b 0d | 0a 3b 20 43 6f 75 6e 74 |ray)..;.|.; Count|
|00003290| 73 20 74 68 65 20 6e 75 | 6d 62 65 72 20 6f 66 20 |s the nu|mber of |
|000032a0| 6f 63 63 75 72 72 65 6e | 63 65 73 20 6f 66 20 74 |occurren|ces of t|
|000032b0| 68 65 20 73 70 65 63 69 | 66 69 65 64 20 62 79 74 |he speci|fied byt|
|000032c0| 65 0d 0a 3b 20 69 6e 20 | 74 68 65 20 73 70 65 63 |e..; in |the spec|
|000032d0| 69 66 69 65 64 20 62 79 | 74 65 2d 73 69 7a 65 64 |ified by|te-sized|
|000032e0| 20 61 72 72 61 79 2e 0d | 0a 3b 0d 0a 3b 20 49 6e | array..|.;..; In|
|000032f0| 70 75 74 3a 0d 0a 3b 09 | 41 4c 20 3d 20 62 79 74 |put:..;.|AL = byt|
|00003300| 65 20 6f 66 20 77 68 69 | 63 68 20 74 6f 20 63 6f |e of whi|ch to co|
|00003310| 75 6e 74 20 6f 63 63 75 | 72 72 65 6e 63 65 73 0d |unt occu|rrences.|
|00003320| 0a 3b 09 43 58 20 3d 20 | 61 72 72 61 79 20 6c 65 |.;.CX = |array le|
|00003330| 6e 67 74 68 20 28 30 20 | 6d 65 61 6e 73 20 36 34 |ngth (0 |means 64|
|00003340| 4b 29 0d 0a 3b 09 44 53 | 3a 44 49 20 3d 20 61 72 |K)..;.DS|:DI = ar|
|00003350| 72 61 79 20 74 6f 20 63 | 6f 75 6e 74 20 62 79 74 |ray to c|ount byt|
|00003360| 65 20 6f 63 63 75 72 72 | 65 6e 63 65 73 20 69 6e |e occurr|ences in|
|00003370| 0d 0a 3b 0d 0a 3b 20 4f | 75 74 70 75 74 3a 0d 0a |..;..; O|utput:..|
|00003380| 3b 09 44 58 20 3d 20 6e | 75 6d 62 65 72 20 6f 66 |;.DX = n|umber of|
|00003390| 20 6f 63 63 75 72 72 65 | 6e 63 65 73 20 6f 66 20 | occurre|nces of |
|000033a0| 74 68 65 20 73 70 65 63 | 69 66 69 65 64 20 62 79 |the spec|ified by|
|000033b0| 74 65 0d 0a 3b 0d 0a 3b | 20 52 65 67 69 73 74 65 |te..;..;| Registe|
|000033c0| 72 73 20 61 6c 74 65 72 | 65 64 3a 20 43 58 2c 20 |rs alter|ed: CX, |
|000033d0| 44 58 2c 20 44 49 0d 0a | 3b 0d 0a 3b 20 4e 6f 74 |DX, DI..|;..; Not|
|000033e0| 65 3a 20 44 6f 65 73 20 | 6e 6f 74 20 68 61 6e 64 |e: Does |not hand|
|000033f0| 6c 65 20 61 72 72 61 79 | 73 20 74 68 61 74 20 61 |le array|s that a|
|00003400| 72 65 20 6c 6f 6e 67 65 | 72 20 74 68 61 6e 20 36 |re longe|r than 6|
|00003410| 34 4b 0d 0a 3b 09 62 79 | 74 65 73 20 6f 72 20 63 |4K..;.by|tes or c|
|00003420| 72 6f 73 73 20 73 65 67 | 6d 65 6e 74 20 62 6f 75 |ross seg|ment bou|
|00003430| 6e 64 61 72 69 65 73 2e | 0d 0a 3b 0d 0a 42 79 74 |ndaries.|..;..Byt|
|00003440| 65 43 6f 75 6e 74 3a 0d | 0a 09 73 75 62 09 64 78 |eCount:.|..sub.dx|
|00003450| 2c 64 78 09 09 3b 73 65 | 74 20 6f 63 63 75 72 72 |,dx..;se|t occurr|
|00003460| 65 6e 63 65 20 63 6f 75 | 6e 74 65 72 20 74 6f 20 |ence cou|nter to |
|00003470| 30 0d 0a 09 64 65 63 09 | 64 69 09 09 3b 63 6f 6d |0...dec.|di..;com|
|00003480| 70 65 6e 73 61 74 65 20 | 66 6f 72 20 74 68 65 20 |pensate |for the |
|00003490| 69 6e 69 74 69 61 6c 0d | 0a 09 09 09 09 3b 20 75 |initial.|.....; u|
|000034a0| 70 63 6f 6d 69 6e 67 20 | 49 4e 43 20 44 49 0d 0a |pcoming |INC DI..|
|000034b0| 09 61 6e 64 09 63 78 2c | 63 78 09 09 3b 36 34 4b |.and.cx,|cx..;64K|
|000034c0| 20 6c 6f 6e 67 3f 0d 0a | 09 6a 6e 7a 09 42 79 74 | long?..|.jnz.Byt|
|000034d0| 65 43 6f 75 6e 74 4c 6f | 6f 70 09 3b 6e 6f 0d 0a |eCountLo|op.;no..|
|000034e0| 09 64 65 63 09 63 78 09 | 09 3b 79 65 73 2c 20 73 |.dec.cx.|.;yes, s|
|000034f0| 6f 20 68 61 6e 64 6c 65 | 20 66 69 72 73 74 20 62 |o handle| first b|
|00003500| 79 74 65 0d 0a 09 09 09 | 09 3b 20 73 70 65 63 69 |yte.....|.; speci|
|00003510| 61 6c 6c 79 2c 20 73 69 | 6e 63 65 20 4a 43 58 5a |ally, si|nce JCXZ|
|00003520| 20 77 69 6c 6c 0d 0a 09 | 09 09 09 3b 20 6f 74 68 | will...|...; oth|
|00003530| 65 72 77 69 73 65 20 63 | 6f 6e 63 6c 75 64 65 20 |erwise c|onclude |
|00003540| 74 68 61 74 0d 0a 09 09 | 09 09 3b 20 77 65 27 72 |that....|..; we'r|
|00003550| 65 20 64 6f 6e 65 20 72 | 69 67 68 74 20 61 77 61 |e done r|ight awa|
|00003560| 79 0d 0a 09 69 6e 63 09 | 64 69 09 09 3b 70 6f 69 |y...inc.|di..;poi|
|00003570| 6e 74 20 74 6f 20 66 69 | 72 73 74 20 62 79 74 65 |nt to fi|rst byte|
|00003580| 0d 0a 09 63 6d 70 09 5b | 64 69 5d 2c 61 6c 09 09 |...cmp.[|di],al..|
|00003590| 3b 69 73 20 74 68 69 73 | 20 62 79 74 65 20 74 68 |;is this| byte th|
|000035a0| 65 20 76 61 6c 75 65 0d | 0a 09 09 09 09 3b 20 77 |e value.|.....; w|
|000035b0| 65 27 72 65 20 6c 6f 6f | 6b 69 6e 67 20 66 6f 72 |e're loo|king for|
|000035c0| 3f 0d 0a 09 6a 7a 09 42 | 79 74 65 43 6f 75 6e 74 |?...jz.B|yteCount|
|000035d0| 43 6f 75 6e 74 4f 63 63 | 75 72 72 65 6e 63 65 0d |CountOcc|urrence.|
|000035e0| 0a 09 09 09 09 3b 79 65 | 73 2c 20 73 6f 20 63 6f |.....;ye|s, so co|
|000035f0| 75 6e 74 20 69 74 0d 0a | 42 79 74 65 43 6f 75 6e |unt it..|ByteCoun|
|00003600| 74 4c 6f 6f 70 3a 0d 0a | 09 6a 63 78 7a 09 42 79 |tLoop:..|.jcxz.By|
|00003610| 74 65 43 6f 75 6e 74 44 | 6f 6e 65 09 3b 64 6f 6e |teCountD|one.;don|
|00003620| 65 20 69 66 20 77 65 27 | 76 65 20 63 68 65 63 6b |e if we'|ve check|
|00003630| 65 64 20 61 6c 6c 0d 0a | 09 09 09 09 3b 20 74 68 |ed all..|....; th|
|00003640| 65 20 62 79 74 65 73 20 | 69 6e 20 74 68 65 20 61 |e bytes |in the a|
|00003650| 72 72 61 79 0d 0a 09 64 | 65 63 09 63 78 09 09 3b |rray...d|ec.cx..;|
|00003660| 63 6f 75 6e 74 20 6f 66 | 66 20 74 68 65 20 62 79 |count of|f the by|
|00003670| 74 65 20 77 65 27 72 65 | 0d 0a 09 09 09 09 3b 20 |te we're|......; |
|00003680| 61 62 6f 75 74 20 74 6f | 20 63 68 65 63 6b 0d 0a |about to| check..|
|00003690| 09 69 6e 63 09 64 69 09 | 09 3b 70 6f 69 6e 74 20 |.inc.di.|.;point |
|000036a0| 74 6f 20 74 68 65 20 6e | 65 78 74 20 62 79 74 65 |to the n|ext byte|
|000036b0| 20 74 6f 0d 0a 09 09 09 | 09 3b 20 63 68 65 63 6b | to.....|.; check|
|000036c0| 0d 0a 09 63 6d 70 09 5b | 64 69 5d 2c 61 6c 09 09 |...cmp.[|di],al..|
|000036d0| 3b 73 65 65 20 69 66 20 | 74 68 69 73 20 62 79 74 |;see if |this byt|
|000036e0| 65 20 63 6f 6e 74 61 69 | 6e 73 0d 0a 09 09 09 09 |e contai|ns......|
|000036f0| 3b 20 74 68 65 20 76 61 | 6c 75 65 20 77 65 27 72 |; the va|lue we'r|
|00003700| 65 20 63 6f 75 6e 74 69 | 6e 67 0d 0a 09 6a 6e 7a |e counti|ng...jnz|
|00003710| 09 42 79 74 65 43 6f 75 | 6e 74 4c 6f 6f 70 09 3b |.ByteCou|ntLoop.;|
|00003720| 6e 6f 20 6d 61 74 63 68 | 0d 0a 42 79 74 65 43 6f |no match|..ByteCo|
|00003730| 75 6e 74 43 6f 75 6e 74 | 4f 63 63 75 72 72 65 6e |untCount|Occurren|
|00003740| 63 65 3a 0d 0a 09 69 6e | 63 09 64 78 09 09 3b 63 |ce:...in|c.dx..;c|
|00003750| 6f 75 6e 74 20 74 68 69 | 73 20 6f 63 63 75 72 72 |ount thi|s occurr|
|00003760| 65 6e 63 65 0d 0a 09 6a | 6d 70 09 42 79 74 65 43 |ence...j|mp.ByteC|
|00003770| 6f 75 6e 74 4c 6f 6f 70 | 09 3b 63 68 65 63 6b 20 |ountLoop|.;check |
|00003780| 74 68 65 20 6e 65 78 74 | 20 62 79 74 65 2c 20 69 |the next| byte, i|
|00003790| 66 20 61 6e 79 0d 0a 42 | 79 74 65 43 6f 75 6e 74 |f any..B|yteCount|
|000037a0| 44 6f 6e 65 3a 0d 0a 09 | 72 65 74 0d 0a 3b 0d 0a |Done:...|ret..;..|
|000037b0| 53 6b 69 70 3a 0d 0a 09 | 63 61 6c 6c 09 5a 54 69 |Skip:...|call.ZTi|
|000037c0| 6d 65 72 4f 6e 0d 0a 09 | 6d 6f 76 09 61 6c 2c 27 |merOn...|mov.al,'|
|000037d0| 41 27 09 09 3b 62 79 74 | 65 20 6f 66 20 77 68 69 |A'..;byt|e of whi|
|000037e0| 63 68 20 77 65 20 77 61 | 6e 74 20 61 0d 0a 09 09 |ch we wa|nt a....|
|000037f0| 09 09 3b 20 63 6f 75 6e | 74 20 6f 66 20 6f 63 63 |..; coun|t of occ|
|00003800| 75 72 72 65 6e 63 65 73 | 0d 0a 09 6d 6f 76 09 64 |urrences|...mov.d|
|00003810| 69 2c 6f 66 66 73 65 74 | 20 42 79 74 65 41 72 72 |i,offset| ByteArr|
|00003820| 61 79 0d 0a 09 09 09 09 | 3b 61 72 72 61 79 20 77 |ay......|;array w|
|00003830| 65 20 77 61 6e 74 20 61 | 20 63 6f 75 6e 74 20 66 |e want a| count f|
|00003840| 6f 72 0d 0a 09 6d 6f 76 | 09 63 78 2c 41 52 52 41 |or...mov|.cx,ARRA|
|00003850| 59 5f 4c 45 4e 47 54 48 | 09 3b 23 20 6f 66 20 62 |Y_LENGTH|.;# of b|
|00003860| 79 74 65 73 20 74 6f 20 | 63 68 65 63 6b 0d 0a 09 |ytes to |check...|
|00003870| 63 61 6c 6c 09 42 79 74 | 65 43 6f 75 6e 74 09 3b |call.Byt|eCount.;|
|00003880| 67 65 74 20 74 68 65 20 | 63 6f 75 6e 74 0d 0a 09 |get the |count...|
|00003890| 63 61 6c 6c 09 5a 54 69 | 6d 65 72 4f 66 66 0d 0a |call.ZTi|merOff..|
|000038a0| 1a 60 ea 2c 00 1e 06 01 | 00 10 00 00 14 a8 6e 4f |.`.,....|......nO|
|000038b0| 14 ae 06 00 00 ae 06 00 | 00 cc 4b cc f4 00 00 20 |........|..K.... |
|000038c0| 00 00 00 4c 53 54 31 31 | 2d 31 30 2e 41 53 4d 00 |...LST11|-10.ASM.|
|000038d0| 00 dd 17 db ba 00 00 3b | 0d 0a 3b 20 2a 2a 2a 20 |.......;|..; *** |
|000038e0| 4c 69 73 74 69 6e 67 20 | 31 31 2d 31 30 20 2a 2a |Listing |11-10 **|
|000038f0| 2a 0d 0a 3b 0d 0a 3b 20 | 43 6f 75 6e 74 73 20 74 |*..;..; |Counts t|
|00003900| 68 65 20 6e 75 6d 62 65 | 72 20 6f 66 20 74 69 6d |he numbe|r of tim|
|00003910| 65 73 20 74 68 65 20 6c | 65 74 74 65 72 20 27 41 |es the l|etter 'A|
|00003920| 27 0d 0a 3b 20 61 70 70 | 65 61 72 73 20 69 6e 20 |'..; app|ears in |
|00003930| 61 20 62 79 74 65 2d 73 | 69 7a 65 64 20 61 72 72 |a byte-s|ized arr|
|00003940| 61 79 2c 20 75 73 69 6e | 67 20 52 45 50 4e 5a 20 |ay, usin|g REPNZ |
|00003950| 53 43 41 53 42 2e 0d 0a | 3b 0d 0a 09 6a 6d 70 09 |SCASB...|;...jmp.|
|00003960| 53 6b 69 70 0d 0a 3b 0d | 0a 42 79 74 65 41 72 72 |Skip..;.|.ByteArr|
|00003970| 61 79 09 6c 61 62 65 6c | 09 62 79 74 65 0d 0a 09 |ay.label|.byte...|
|00003980| 64 62 09 27 41 52 52 41 | 59 20 43 4f 4e 54 41 49 |db.'ARRA|Y CONTAI|
|00003990| 4e 49 4e 47 20 54 48 45 | 20 4c 45 54 54 45 52 20 |NING THE| LETTER |
|000039a0| 27 27 41 27 27 20 34 20 | 54 49 4d 45 53 27 0d 0a |''A'' 4 |TIMES'..|
|000039b0| 41 52 52 41 59 5f 4c 45 | 4e 47 54 48 09 65 71 75 |ARRAY_LE|NGTH.equ|
|000039c0| 09 28 24 2d 42 79 74 65 | 41 72 72 61 79 29 0d 0a |.($-Byte|Array)..|
|000039d0| 3b 0d 0a 3b 20 43 6f 75 | 6e 74 73 20 74 68 65 20 |;..; Cou|nts the |
|000039e0| 6e 75 6d 62 65 72 20 6f | 66 20 6f 63 63 75 72 72 |number o|f occurr|
|000039f0| 65 6e 63 65 73 20 6f 66 | 20 74 68 65 20 73 70 65 |ences of| the spe|
|00003a00| 63 69 66 69 65 64 20 62 | 79 74 65 0d 0a 3b 20 69 |cified b|yte..; i|
|00003a10| 6e 20 74 68 65 20 73 70 | 65 63 69 66 69 65 64 20 |n the sp|ecified |
|00003a20| 62 79 74 65 2d 73 69 7a | 65 64 20 61 72 72 61 79 |byte-siz|ed array|
|00003a30| 2e 0d 0a 3b 0d 0a 3b 20 | 49 6e 70 75 74 3a 0d 0a |...;..; |Input:..|
|00003a40| 3b 09 41 4c 20 3d 20 62 | 79 74 65 20 6f 66 20 77 |;.AL = b|yte of w|
|00003a50| 68 69 63 68 20 74 6f 20 | 63 6f 75 6e 74 20 6f 63 |hich to |count oc|
|00003a60| 63 75 72 72 65 6e 63 65 | 73 0d 0a 3b 09 43 58 20 |currence|s..;.CX |
|00003a70| 3d 20 61 72 72 61 79 20 | 6c 65 6e 67 74 68 20 28 |= array |length (|
|00003a80| 30 20 6d 65 61 6e 73 20 | 36 34 4b 29 0d 0a 3b 09 |0 means |64K)..;.|
|00003a90| 44 53 3a 44 49 20 3d 20 | 61 72 72 61 79 20 74 6f |DS:DI = |array to|
|00003aa0| 20 63 6f 75 6e 74 20 62 | 79 74 65 20 6f 63 63 75 | count b|yte occu|
|00003ab0| 72 72 65 6e 63 65 73 20 | 69 6e 0d 0a 3b 0d 0a 3b |rrences |in..;..;|
|00003ac0| 20 4f 75 74 70 75 74 3a | 0d 0a 3b 09 44 58 20 3d | Output:|..;.DX =|
|00003ad0| 20 6e 75 6d 62 65 72 20 | 6f 66 20 6f 63 63 75 72 | number |of occur|
|00003ae0| 72 65 6e 63 65 73 20 6f | 66 20 74 68 65 20 73 70 |rences o|f the sp|
|00003af0| 65 63 69 66 69 65 64 20 | 62 79 74 65 0d 0a 3b 0d |ecified |byte..;.|
|00003b00| 0a 3b 20 52 65 67 69 73 | 74 65 72 73 20 61 6c 74 |.; Regis|ters alt|
|00003b10| 65 72 65 64 3a 20 43 58 | 2c 20 44 58 2c 20 44 49 |ered: CX|, DX, DI|
|00003b20| 2c 20 45 53 0d 0a 3b 0d | 0a 3b 20 44 69 72 65 63 |, ES..;.|.; Direc|
|00003b30| 74 69 6f 6e 20 66 6c 61 | 67 20 63 6c 65 61 72 65 |tion fla|g cleare|
|00003b40| 64 0d 0a 3b 0d 0a 3b 20 | 4e 6f 74 65 3a 20 44 6f |d..;..; |Note: Do|
|00003b50| 65 73 20 6e 6f 74 20 68 | 61 6e 64 6c 65 20 61 72 |es not h|andle ar|
|00003b60| 72 61 79 73 20 74 68 61 | 74 20 61 72 65 20 6c 6f |rays tha|t are lo|
|00003b70| 6e 67 65 72 20 74 68 61 | 6e 20 36 34 4b 0d 0a 3b |nger tha|n 64K..;|
|00003b80| 09 62 79 74 65 73 20 6f | 72 20 63 72 6f 73 73 20 |.bytes o|r cross |
|00003b90| 73 65 67 6d 65 6e 74 20 | 62 6f 75 6e 64 61 72 69 |segment |boundari|
|00003ba0| 65 73 2e 20 44 6f 65 73 | 20 6e 6f 74 20 68 61 6e |es. Does| not han|
|00003bb0| 64 6c 65 0d 0a 3b 09 6f | 76 65 72 6c 61 70 70 69 |dle..;.o|verlappi|
|00003bc0| 6e 67 20 73 74 72 69 6e | 67 73 2e 0d 0a 3b 0d 0a |ng strin|gs...;..|
|00003bd0| 42 79 74 65 43 6f 75 6e | 74 3a 0d 0a 09 70 75 73 |ByteCoun|t:...pus|
|00003be0| 68 09 64 73 0d 0a 09 70 | 6f 70 09 65 73 09 09 3b |h.ds...p|op.es..;|
|00003bf0| 53 43 41 53 20 75 73 65 | 73 20 45 53 3a 44 49 0d |SCAS use|s ES:DI.|
|00003c00| 0a 09 73 75 62 09 64 78 | 2c 64 78 09 09 3b 73 65 |..sub.dx|,dx..;se|
|00003c10| 74 20 6f 63 63 75 72 72 | 65 6e 63 65 20 63 6f 75 |t occurr|ence cou|
|00003c20| 6e 74 65 72 20 74 6f 20 | 30 0d 0a 09 63 6c 64 0d |nter to |0...cld.|
|00003c30| 0a 09 61 6e 64 09 63 78 | 2c 63 78 09 09 3b 36 34 |..and.cx|,cx..;64|
|00003c40| 4b 20 6c 6f 6e 67 3f 0d | 0a 09 6a 6e 7a 09 42 79 |K long?.|..jnz.By|
|00003c50| 74 65 43 6f 75 6e 74 4c | 6f 6f 70 09 3b 6e 6f 0d |teCountL|oop.;no.|
|00003c60| 0a 09 64 65 63 09 63 78 | 09 09 3b 79 65 73 2c 20 |..dec.cx|..;yes, |
|00003c70| 73 6f 20 68 61 6e 64 6c | 65 20 66 69 72 73 74 20 |so handl|e first |
|00003c80| 62 79 74 65 0d 0a 09 09 | 09 09 3b 20 73 70 65 63 |byte....|..; spec|
|00003c90| 69 61 6c 6c 79 2c 20 73 | 69 6e 63 65 20 4a 43 58 |ially, s|ince JCX|
|00003ca0| 5a 20 77 69 6c 6c 0d 0a | 09 09 09 09 3b 20 6f 74 |Z will..|....; ot|
|00003cb0| 68 65 72 77 69 73 65 20 | 63 6f 6e 63 6c 75 64 65 |herwise |conclude|
|00003cc0| 20 74 68 61 74 0d 0a 09 | 09 09 09 3b 20 77 65 27 | that...|...; we'|
|00003cd0| 72 65 20 64 6f 6e 65 20 | 72 69 67 68 74 20 61 77 |re done |right aw|
|00003ce0| 61 79 0d 0a 09 73 63 61 | 73 62 09 09 09 3b 69 73 |ay...sca|sb...;is|
|00003cf0| 20 66 69 72 73 74 20 62 | 79 74 65 20 61 20 6d 61 | first b|yte a ma|
|00003d00| 74 63 68 3f 0d 0a 09 6a | 7a 09 42 79 74 65 43 6f |tch?...j|z.ByteCo|
|00003d10| 75 6e 74 43 6f 75 6e 74 | 4f 63 63 75 72 72 65 6e |untCount|Occurren|
|00003d20| 63 65 0d 0a 09 09 09 09 | 3b 79 65 73 2c 20 73 6f |ce......|;yes, so|
|00003d30| 20 63 6f 75 6e 74 20 69 | 74 0d 0a 42 79 74 65 43 | count i|t..ByteC|
|00003d40| 6f 75 6e 74 4c 6f 6f 70 | 3a 0d 0a 09 6a 63 78 7a |ountLoop|:...jcxz|
|00003d50| 09 42 79 74 65 43 6f 75 | 6e 74 44 6f 6e 65 09 3b |.ByteCou|ntDone.;|
|00003d60| 69 66 20 74 68 65 72 65 | 27 73 20 6e 6f 74 68 69 |if there|'s nothi|
|00003d70| 6e 67 20 6c 65 66 74 20 | 74 6f 0d 0a 09 09 09 09 |ng left |to......|
|00003d80| 3b 20 73 65 61 72 63 68 | 2c 20 77 65 27 72 65 20 |; search|, we're |
|00003d90| 64 6f 6e 65 0d 0a 09 72 | 65 70 6e 7a 09 73 63 61 |done...r|epnz.sca|
|00003da0| 73 62 09 09 3b 73 65 61 | 72 63 68 20 66 6f 72 20 |sb..;sea|rch for |
|00003db0| 74 68 65 20 6e 65 78 74 | 20 62 79 74 65 0d 0a 09 |the next| byte...|
|00003dc0| 09 09 09 3b 20 6f 63 63 | 75 72 72 65 6e 63 65 20 |...; occ|urrence |
|00003dd0| 6f 72 20 74 68 65 20 65 | 6e 64 20 6f 66 0d 0a 09 |or the e|nd of...|
|00003de0| 09 09 09 3b 20 74 68 65 | 20 61 72 72 61 79 0d 0a |...; the| array..|
|00003df0| 09 6a 6e 7a 09 42 79 74 | 65 43 6f 75 6e 74 44 6f |.jnz.Byt|eCountDo|
|00003e00| 6e 65 09 3b 6e 6f 20 6d | 61 74 63 68 0d 0a 42 79 |ne.;no m|atch..By|
|00003e10| 74 65 43 6f 75 6e 74 43 | 6f 75 6e 74 4f 63 63 75 |teCountC|ountOccu|
|00003e20| 72 72 65 6e 63 65 3a 0d | 0a 09 69 6e 63 09 64 78 |rrence:.|..inc.dx|
|00003e30| 09 09 3b 63 6f 75 6e 74 | 20 74 68 69 73 20 6f 63 |..;count| this oc|
|00003e40| 63 75 72 72 65 6e 63 65 | 0d 0a 09 6a 6d 70 09 42 |currence|...jmp.B|
|00003e50| 79 74 65 43 6f 75 6e 74 | 4c 6f 6f 70 09 3b 63 68 |yteCount|Loop.;ch|
|00003e60| 65 63 6b 20 74 68 65 20 | 6e 65 78 74 20 62 79 74 |eck the |next byt|
|00003e70| 65 2c 20 69 66 20 61 6e | 79 0d 0a 42 79 74 65 43 |e, if an|y..ByteC|
|00003e80| 6f 75 6e 74 44 6f 6e 65 | 3a 0d 0a 09 72 65 74 0d |ountDone|:...ret.|
|00003e90| 0a 3b 0d 0a 53 6b 69 70 | 3a 0d 0a 09 63 61 6c 6c |.;..Skip|:...call|
|00003ea0| 09 5a 54 69 6d 65 72 4f | 6e 0d 0a 09 6d 6f 76 09 |.ZTimerO|n...mov.|
|00003eb0| 61 6c 2c 27 41 27 09 09 | 3b 62 79 74 65 20 6f 66 |al,'A'..|;byte of|
|00003ec0| 20 77 68 69 63 68 20 77 | 65 20 77 61 6e 74 20 61 | which w|e want a|
|00003ed0| 0d 0a 09 09 09 09 3b 20 | 63 6f 75 6e 74 20 6f 66 |......; |count of|
|00003ee0| 20 6f 63 63 75 72 72 65 | 6e 63 65 73 0d 0a 09 6d | occurre|nces...m|
|00003ef0| 6f 76 09 64 69 2c 6f 66 | 66 73 65 74 20 42 79 74 |ov.di,of|fset Byt|
|00003f00| 65 41 72 72 61 79 0d 0a | 09 09 09 09 3b 61 72 72 |eArray..|....;arr|
|00003f10| 61 79 20 77 65 20 77 61 | 6e 74 20 61 20 63 6f 75 |ay we wa|nt a cou|
|00003f20| 6e 74 20 66 6f 72 0d 0a | 09 6d 6f 76 09 63 78 2c |nt for..|.mov.cx,|
|00003f30| 41 52 52 41 59 5f 4c 45 | 4e 47 54 48 09 3b 23 20 |ARRAY_LE|NGTH.;# |
|00003f40| 6f 66 20 62 79 74 65 73 | 20 74 6f 20 63 68 65 63 |of bytes| to chec|
|00003f50| 6b 0d 0a 09 63 61 6c 6c | 09 42 79 74 65 43 6f 75 |k...call|.ByteCou|
|00003f60| 6e 74 09 3b 67 65 74 20 | 74 68 65 20 63 6f 75 6e |nt.;get |the coun|
|00003f70| 74 0d 0a 09 63 61 6c 6c | 09 5a 54 69 6d 65 72 4f |t...call|.ZTimerO|
|00003f80| 66 66 0d 0a 1a 60 ea 2c | 00 1e 06 01 00 10 00 00 |ff...`.,|........|
|00003f90| 14 a8 6e 4f 14 fd 05 00 | 00 fd 05 00 00 ed a7 b6 |..nO....|........|
|00003fa0| 72 00 00 20 00 00 00 4c | 53 54 31 31 2d 31 31 2e |r.. ...L|ST11-11.|
|00003fb0| 41 53 4d 00 00 1c 96 db | a2 00 00 3b 0d 0a 3b 20 |ASM.....|...;..; |
|00003fc0| 2a 2a 2a 20 4c 69 73 74 | 69 6e 67 20 31 31 2d 31 |*** List|ing 11-1|
|00003fd0| 31 20 2a 2a 2a 0d 0a 3b | 0d 0a 3b 20 46 69 6e 64 |1 ***..;|..; Find|
|00003fe0| 73 20 74 68 65 20 66 69 | 72 73 74 20 6f 63 63 75 |s the fi|rst occu|
|00003ff0| 72 72 65 6e 63 65 20 6f | 66 20 74 68 65 20 6c 65 |rrence o|f the le|
|00004000| 74 74 65 72 20 27 7a 27 | 20 69 6e 0d 0a 3b 20 61 |tter 'z'| in..; a|
|00004010| 20 7a 65 72 6f 2d 74 65 | 72 6d 69 6e 61 74 65 64 | zero-te|rminated|
|00004020| 20 73 74 72 69 6e 67 2c | 20 75 73 69 6e 67 20 4c | string,| using L|
|00004030| 4f 44 53 42 2e 0d 0a 3b | 0d 0a 09 6a 6d 70 09 53 |ODSB...;|...jmp.S|
|00004040| 6b 69 70 0d 0a 3b 0d 0a | 54 65 73 74 53 74 72 69 |kip..;..|TestStri|
|00004050| 6e 67 09 6c 61 62 65 6c | 09 62 79 74 65 0d 0a 09 |ng.label|.byte...|
|00004060| 64 62 09 27 54 68 69 73 | 20 69 73 20 61 20 74 65 |db.'This| is a te|
|00004070| 73 74 20 73 74 72 69 6e | 67 20 74 68 61 74 20 69 |st strin|g that i|
|00004080| 73 20 27 0d 0a 09 64 62 | 09 27 7a 27 0d 0a 09 64 |s '...db|.'z'...d|
|00004090| 62 09 27 74 65 72 6d 69 | 6e 61 74 65 64 20 77 69 |b.'termi|nated wi|
|000040a0| 74 68 20 61 20 7a 65 72 | 6f 20 62 79 74 65 2e 2e |th a zer|o byte..|
|000040b0| 2e 27 2c 30 0d 0a 3b 0d | 0a 3b 20 46 69 6e 64 73 |.',0..;.|.; Finds|
|000040c0| 20 74 68 65 20 66 69 72 | 73 74 20 6f 63 63 75 72 | the fir|st occur|
|000040d0| 72 65 6e 63 65 20 6f 66 | 20 74 68 65 20 73 70 65 |rence of| the spe|
|000040e0| 63 69 66 69 65 64 20 62 | 79 74 65 20 69 6e 20 74 |cified b|yte in t|
|000040f0| 68 65 0d 0a 3b 20 73 70 | 65 63 69 66 69 65 64 20 |he..; sp|ecified |
|00004100| 7a 65 72 6f 2d 74 65 72 | 6d 69 6e 61 74 65 64 20 |zero-ter|minated |
|00004110| 73 74 72 69 6e 67 2e 0d | 0a 3b 0d 0a 3b 20 49 6e |string..|.;..; In|
|00004120| 70 75 74 3a 0d 0a 3b 09 | 41 4c 20 3d 20 62 79 74 |put:..;.|AL = byt|
|00004130| 65 20 74 6f 20 66 69 6e | 64 0d 0a 3b 09 44 53 3a |e to fin|d..;.DS:|
|00004140| 53 49 20 3d 20 7a 65 72 | 6f 2d 74 65 72 6d 69 6e |SI = zer|o-termin|
|00004150| 61 74 65 64 20 73 74 72 | 69 6e 67 20 74 6f 20 73 |ated str|ing to s|
|00004160| 65 61 72 63 68 0d 0a 3b | 0d 0a 3b 20 4f 75 74 70 |earch..;|..; Outp|
|00004170| 75 74 3a 0d 0a 3b 09 53 | 49 20 3d 20 70 6f 69 6e |ut:..;.S|I = poin|
|00004180| 74 65 72 20 74 6f 20 66 | 69 72 73 74 20 6f 63 63 |ter to f|irst occ|
|00004190| 75 72 72 65 6e 63 65 20 | 6f 66 20 62 79 74 65 20 |urrence |of byte |
|000041a0| 69 6e 20 73 74 72 69 6e | 67 2c 0d 0a 3b 09 09 6f |in strin|g,..;..o|
|000041b0| 72 20 30 20 69 66 20 74 | 68 65 20 62 79 74 65 20 |r 0 if t|he byte |
|000041c0| 77 61 73 6e 27 74 20 66 | 6f 75 6e 64 0d 0a 3b 0d |wasn't f|ound..;.|
|000041d0| 0a 3b 20 52 65 67 69 73 | 74 65 72 73 20 61 6c 74 |.; Regis|ters alt|
|000041e0| 65 72 65 64 3a 20 41 58 | 2c 20 53 49 0d 0a 3b 0d |ered: AX|, SI..;.|
|000041f0| 0a 3b 20 44 69 72 65 63 | 74 69 6f 6e 20 66 6c 61 |.; Direc|tion fla|
|00004200| 67 20 63 6c 65 61 72 65 | 64 0d 0a 3b 0d 0a 3b 20 |g cleare|d..;..; |
|00004210| 4e 6f 74 65 3a 20 44 6f | 20 6e 6f 74 20 70 61 73 |Note: Do| not pas|
|00004220| 73 20 61 20 73 74 72 69 | 6e 67 20 74 68 61 74 20 |s a stri|ng that |
|00004230| 73 74 61 72 74 73 20 61 | 74 20 6f 66 66 73 65 74 |starts a|t offset|
|00004240| 20 30 20 28 53 49 3d 30 | 29 2c 0d 0a 3b 09 73 69 | 0 (SI=0|),..;.si|
|00004250| 6e 63 65 20 61 20 6d 61 | 74 63 68 20 6f 6e 20 74 |nce a ma|tch on t|
|00004260| 68 65 20 66 69 72 73 74 | 20 62 79 74 65 20 61 6e |he first| byte an|
|00004270| 64 20 66 61 69 6c 75 72 | 65 20 74 6f 20 66 69 6e |d failur|e to fin|
|00004280| 64 0d 0a 3b 09 74 68 65 | 20 62 79 74 65 20 77 6f |d..;.the| byte wo|
|00004290| 75 6c 64 20 62 65 20 69 | 6e 64 69 73 74 69 6e 67 |uld be i|ndisting|
|000042a0| 75 69 73 68 61 62 6c 65 | 2e 0d 0a 3b 0d 0a 3b 20 |uishable|...;..; |
|000042b0| 4e 6f 74 65 3a 20 44 6f | 65 73 20 6e 6f 74 20 68 |Note: Do|es not h|
|000042c0| 61 6e 64 6c 65 20 73 74 | 72 69 6e 67 73 20 74 68 |andle st|rings th|
|000042d0| 61 74 20 61 72 65 20 6c | 6f 6e 67 65 72 20 74 68 |at are l|onger th|
|000042e0| 61 6e 20 36 34 4b 0d 0a | 3b 09 62 79 74 65 73 20 |an 64K..|;.bytes |
|000042f0| 6f 72 20 63 72 6f 73 73 | 20 73 65 67 6d 65 6e 74 |or cross| segment|
|00004300| 20 62 6f 75 6e 64 61 72 | 69 65 73 2e 0d 0a 3b 0d | boundar|ies...;.|
|00004310| 0a 46 69 6e 64 43 68 61 | 72 49 6e 53 74 72 69 6e |.FindCha|rInStrin|
|00004320| 67 3a 0d 0a 09 6d 6f 76 | 09 61 68 2c 61 6c 09 3b |g:...mov|.ah,al.;|
|00004330| 77 65 27 6c 6c 20 6e 65 | 65 64 20 41 4c 20 73 69 |we'll ne|ed AL si|
|00004340| 6e 63 65 20 74 68 61 74 | 27 73 20 74 68 65 0d 0a |nce that|'s the..|
|00004350| 09 09 09 3b 20 6f 6e 6c | 79 20 72 65 67 69 73 74 |...; onl|y regist|
|00004360| 65 72 20 4c 4f 44 53 42 | 20 63 61 6e 20 75 73 65 |er LODSB| can use|
|00004370| 0d 0a 09 63 6c 64 0d 0a | 46 69 6e 64 43 68 61 72 |...cld..|FindChar|
|00004380| 49 6e 53 74 72 69 6e 67 | 4c 6f 6f 70 3a 0d 0a 09 |InString|Loop:...|
|00004390| 6c 6f 64 73 62 09 09 3b | 67 65 74 20 74 68 65 20 |lodsb..;|get the |
|000043a0| 6e 65 78 74 20 73 74 72 | 69 6e 67 20 62 79 74 65 |next str|ing byte|
|000043b0| 0d 0a 09 63 6d 70 09 61 | 6c 2c 61 68 09 3b 69 73 |...cmp.a|l,ah.;is|
|000043c0| 20 74 68 69 73 20 74 68 | 65 20 62 79 74 65 20 77 | this th|e byte w|
|000043d0| 65 27 72 65 0d 0a 09 09 | 09 3b 20 6c 6f 6f 6b 69 |e're....|.; looki|
|000043e0| 6e 67 20 66 6f 72 3f 0d | 0a 09 6a 7a 09 46 69 6e |ng for?.|..jz.Fin|
|000043f0| 64 43 68 61 72 49 6e 53 | 74 72 69 6e 67 44 6f 6e |dCharInS|tringDon|
|00004400| 65 0d 0a 09 09 09 3b 79 | 65 73 2c 20 73 6f 20 77 |e.....;y|es, so w|
|00004410| 65 27 72 65 20 64 6f 6e | 65 0d 0a 09 61 6e 64 09 |e're don|e...and.|
|00004420| 61 6c 2c 61 6c 09 3b 69 | 73 20 74 68 69 73 20 74 |al,al.;i|s this t|
|00004430| 68 65 20 74 65 72 6d 69 | 6e 61 74 69 6e 67 20 7a |he termi|nating z|
|00004440| 65 72 6f 3f 0d 0a 09 6a | 6e 7a 09 46 69 6e 64 43 |ero?...j|nz.FindC|
|00004450| 68 61 72 49 6e 53 74 72 | 69 6e 67 4c 6f 6f 70 0d |harInStr|ingLoop.|
|00004460| 0a 09 09 09 3b 6e 6f 2c | 20 73 6f 20 63 68 65 63 |....;no,| so chec|
|00004470| 6b 20 74 68 65 20 6e 65 | 78 74 20 62 79 74 65 0d |k the ne|xt byte.|
|00004480| 0a 09 73 75 62 09 73 69 | 2c 73 69 09 3b 77 65 20 |..sub.si|,si.;we |
|00004490| 64 69 64 6e 27 74 20 66 | 69 6e 64 20 61 20 6d 61 |didn't f|ind a ma|
|000044a0| 74 63 68 2c 20 73 6f 20 | 72 65 74 75 72 6e 0d 0a |tch, so |return..|
|000044b0| 09 09 09 3b 20 30 20 69 | 6e 20 53 49 0d 0a 09 72 |...; 0 i|n SI...r|
|000044c0| 65 74 0d 0a 46 69 6e 64 | 43 68 61 72 49 6e 53 74 |et..Find|CharInSt|
|000044d0| 72 69 6e 67 44 6f 6e 65 | 3a 0d 0a 09 64 65 63 09 |ringDone|:...dec.|
|000044e0| 73 69 09 3b 70 6f 69 6e | 74 20 62 61 63 6b 20 74 |si.;poin|t back t|
|000044f0| 6f 20 74 68 65 20 6d 61 | 74 63 68 69 6e 67 20 62 |o the ma|tching b|
|00004500| 79 74 65 0d 0a 09 72 65 | 74 0d 0a 3b 0d 0a 53 6b |yte...re|t..;..Sk|
|00004510| 69 70 3a 0d 0a 09 63 61 | 6c 6c 09 5a 54 69 6d 65 |ip:...ca|ll.ZTime|
|00004520| 72 4f 6e 0d 0a 09 6d 6f | 76 09 61 6c 2c 27 7a 27 |rOn...mo|v.al,'z'|
|00004530| 09 09 3b 62 79 74 65 20 | 76 61 6c 75 65 20 74 6f |..;byte |value to|
|00004540| 20 66 69 6e 64 0d 0a 09 | 6d 6f 76 09 73 69 2c 6f | find...|mov.si,o|
|00004550| 66 66 73 65 74 20 54 65 | 73 74 53 74 72 69 6e 67 |ffset Te|stString|
|00004560| 0d 0a 09 09 09 09 3b 73 | 74 72 69 6e 67 20 74 6f |......;s|tring to|
|00004570| 20 73 65 61 72 63 68 0d | 0a 09 63 61 6c 6c 09 46 | search.|..call.F|
|00004580| 69 6e 64 43 68 61 72 49 | 6e 53 74 72 69 6e 67 20 |indCharI|nString |
|00004590| 3b 73 65 61 72 63 68 20 | 66 6f 72 20 74 68 65 20 |;search |for the |
|000045a0| 62 79 74 65 0d 0a 09 63 | 61 6c 6c 09 5a 54 69 6d |byte...c|all.ZTim|
|000045b0| 65 72 4f 66 66 0d 0a 1a | 60 ea 2c 00 1e 06 01 00 |erOff...|`.,.....|
|000045c0| 10 00 00 14 a8 6e 4f 14 | f7 08 00 00 f7 08 00 00 |.....nO.|........|
|000045d0| bf 7f 14 7f 00 00 20 00 | 00 00 4c 53 54 31 31 2d |...... .|..LST11-|
|000045e0| 31 32 2e 41 53 4d 00 00 | e3 3f c4 07 00 00 3b 0d |12.ASM..|.?....;.|
|000045f0| 0a 3b 20 2a 2a 2a 20 4c | 69 73 74 69 6e 67 20 31 |.; *** L|isting 1|
|00004600| 31 2d 31 32 20 2a 2a 2a | 0d 0a 3b 0d 0a 3b 20 46 |1-12 ***|..;..; F|
|00004610| 69 6e 64 73 20 74 68 65 | 20 66 69 72 73 74 20 6f |inds the| first o|
|00004620| 63 63 75 72 72 65 6e 63 | 65 20 6f 66 20 74 68 65 |ccurrenc|e of the|
|00004630| 20 6c 65 74 74 65 72 20 | 27 7a 27 20 69 6e 0d 0a | letter |'z' in..|
|00004640| 3b 20 61 20 7a 65 72 6f | 2d 74 65 72 6d 69 6e 61 |; a zero|-termina|
|00004650| 74 65 64 20 73 74 72 69 | 6e 67 2c 20 75 73 69 6e |ted stri|ng, usin|
|00004660| 67 20 52 45 50 4e 5a 20 | 53 43 41 53 42 20 69 6e |g REPNZ |SCASB in|
|00004670| 20 61 0d 0a 3b 20 64 6f | 75 62 6c 65 2d 73 65 61 | a..; do|uble-sea|
|00004680| 72 63 68 20 61 70 70 72 | 6f 61 63 68 2c 20 66 69 |rch appr|oach, fi|
|00004690| 72 73 74 20 66 69 6e 64 | 69 6e 67 20 74 68 65 20 |rst find|ing the |
|000046a0| 74 65 72 6d 69 6e 61 74 | 69 6e 67 0d 0a 3b 20 7a |terminat|ing..; z|
|000046b0| 65 72 6f 20 74 6f 20 64 | 65 74 65 72 6d 69 6e 65 |ero to d|etermine|
|000046c0| 20 74 68 65 20 73 74 72 | 69 6e 67 20 6c 65 6e 67 | the str|ing leng|
|000046d0| 74 68 2c 20 61 6e 64 20 | 74 68 65 6e 20 73 65 61 |th, and |then sea|
|000046e0| 72 63 68 69 6e 67 0d 0a | 3b 20 66 6f 72 20 74 68 |rching..|; for th|
|000046f0| 65 20 64 65 73 69 72 65 | 64 20 62 79 74 65 2e 0d |e desire|d byte..|
|00004700| 0a 3b 0d 0a 09 6a 6d 70 | 09 53 6b 69 70 0d 0a 3b |.;...jmp|.Skip..;|
|00004710| 0d 0a 54 65 73 74 53 74 | 72 69 6e 67 09 6c 61 62 |..TestSt|ring.lab|
|00004720| 65 6c 09 62 79 74 65 0d | 0a 09 64 62 09 27 54 68 |el.byte.|..db.'Th|
|00004730| 69 73 20 69 73 20 61 20 | 74 65 73 74 20 73 74 72 |is is a |test str|
|00004740| 69 6e 67 20 74 68 61 74 | 20 69 73 20 27 0d 0a 09 |ing that| is '...|
|00004750| 64 62 09 27 7a 27 0d 0a | 09 64 62 09 27 74 65 72 |db.'z'..|.db.'ter|
|00004760| 6d 69 6e 61 74 65 64 20 | 77 69 74 68 20 61 20 7a |minated |with a z|
|00004770| 65 72 6f 20 62 79 74 65 | 2e 2e 2e 27 2c 30 0d 0a |ero byte|...',0..|
|00004780| 3b 0d 0a 3b 20 46 69 6e | 64 73 20 74 68 65 20 66 |;..; Fin|ds the f|
|00004790| 69 72 73 74 20 6f 63 63 | 75 72 72 65 6e 63 65 20 |irst occ|urrence |
|000047a0| 6f 66 20 74 68 65 20 73 | 70 65 63 69 66 69 65 64 |of the s|pecified|
|000047b0| 20 62 79 74 65 20 69 6e | 20 74 68 65 0d 0a 3b 20 | byte in| the..; |
|000047c0| 73 70 65 63 69 66 69 65 | 64 20 7a 65 72 6f 2d 74 |specifie|d zero-t|
|000047d0| 65 72 6d 69 6e 61 74 65 | 64 20 73 74 72 69 6e 67 |erminate|d string|
|000047e0| 2e 0d 0a 3b 0d 0a 3b 20 | 49 6e 70 75 74 3a 0d 0a |...;..; |Input:..|
|000047f0| 3b 09 41 4c 20 3d 20 62 | 79 74 65 20 74 6f 20 66 |;.AL = b|yte to f|
|00004800| 69 6e 64 0d 0a 3b 09 44 | 53 3a 53 49 20 3d 20 7a |ind..;.D|S:SI = z|
|00004810| 65 72 6f 2d 74 65 72 6d | 69 6e 61 74 65 64 20 73 |ero-term|inated s|
|00004820| 74 72 69 6e 67 20 74 6f | 20 73 65 61 72 63 68 0d |tring to| search.|
|00004830| 0a 3b 0d 0a 3b 20 4f 75 | 74 70 75 74 3a 0d 0a 3b |.;..; Ou|tput:..;|
|00004840| 09 53 49 20 3d 20 70 6f | 69 6e 74 65 72 20 74 6f |.SI = po|inter to|
|00004850| 20 66 69 72 73 74 20 6f | 63 63 75 72 72 65 6e 63 | first o|ccurrenc|
|00004860| 65 20 6f 66 20 62 79 74 | 65 20 69 6e 20 73 74 72 |e of byt|e in str|
|00004870| 69 6e 67 2c 0d 0a 3b 09 | 09 6f 72 20 30 20 69 66 |ing,..;.|.or 0 if|
|00004880| 20 74 68 65 20 62 79 74 | 65 20 77 61 73 6e 27 74 | the byt|e wasn't|
|00004890| 20 66 6f 75 6e 64 0d 0a | 3b 0d 0a 3b 20 52 65 67 | found..|;..; Reg|
|000048a0| 69 73 74 65 72 73 20 61 | 6c 74 65 72 65 64 3a 20 |isters a|ltered: |
|000048b0| 41 48 2c 20 43 58 2c 20 | 53 49 2c 20 44 49 2c 20 |AH, CX, |SI, DI, |
|000048c0| 45 53 0d 0a 3b 0d 0a 3b | 20 44 69 72 65 63 74 69 |ES..;..;| Directi|
|000048d0| 6f 6e 20 66 6c 61 67 20 | 63 6c 65 61 72 65 64 0d |on flag |cleared.|
|000048e0| 0a 3b 0d 0a 3b 20 4e 6f | 74 65 3a 20 44 6f 20 6e |.;..; No|te: Do n|
|000048f0| 6f 74 20 70 61 73 73 20 | 61 20 73 74 72 69 6e 67 |ot pass |a string|
|00004900| 20 74 68 61 74 20 73 74 | 61 72 74 73 20 61 74 20 | that st|arts at |
|00004910| 6f 66 66 73 65 74 20 30 | 20 28 53 49 3d 30 29 2c |offset 0| (SI=0),|
|00004920| 0d 0a 3b 09 73 69 6e 63 | 65 20 61 20 6d 61 74 63 |..;.sinc|e a matc|
|00004930| 68 20 6f 6e 20 74 68 65 | 20 66 69 72 73 74 20 62 |h on the| first b|
|00004940| 79 74 65 20 61 6e 64 20 | 66 61 69 6c 75 72 65 20 |yte and |failure |
|00004950| 74 6f 20 66 69 6e 64 0d | 0a 3b 09 74 68 65 20 62 |to find.|.;.the b|
|00004960| 79 74 65 20 77 6f 75 6c | 64 20 62 65 20 69 6e 64 |yte woul|d be ind|
|00004970| 69 73 74 69 6e 67 75 69 | 73 68 61 62 6c 65 2e 0d |istingui|shable..|
|00004980| 0a 3b 0d 0a 3b 20 4e 6f | 74 65 3a 20 49 66 20 74 |.;..; No|te: If t|
|00004990| 68 65 20 73 65 61 72 63 | 68 20 76 61 6c 75 65 20 |he searc|h value |
|000049a0| 69 73 20 30 2c 20 77 69 | 6c 6c 20 6e 6f 74 20 66 |is 0, wi|ll not f|
|000049b0| 69 6e 64 20 74 68 65 0d | 0a 3b 09 74 65 72 6d 69 |ind the.|.;.termi|
|000049c0| 6e 61 74 69 6e 67 20 7a | 65 72 6f 20 69 6e 20 61 |nating z|ero in a|
|000049d0| 20 73 74 72 69 6e 67 20 | 74 68 61 74 20 69 73 20 | string |that is |
|000049e0| 65 78 61 63 74 6c 79 20 | 36 34 4b 0d 0a 3b 09 62 |exactly |64K..;.b|
|000049f0| 79 74 65 73 20 6c 6f 6e | 67 2e 20 44 6f 65 73 20 |ytes lon|g. Does |
|00004a00| 6e 6f 74 20 68 61 6e 64 | 6c 65 20 73 74 72 69 6e |not hand|le strin|
|00004a10| 67 73 20 74 68 61 74 20 | 61 72 65 20 6c 6f 6e 67 |gs that |are long|
|00004a20| 65 72 0d 0a 3b 09 74 68 | 61 6e 20 36 34 4b 20 62 |er..;.th|an 64K b|
|00004a30| 79 74 65 73 20 6f 72 20 | 63 72 6f 73 73 20 73 65 |ytes or |cross se|
|00004a40| 67 6d 65 6e 74 20 62 6f | 75 6e 64 61 72 69 65 73 |gment bo|undaries|
|00004a50| 2e 0d 0a 3b 0d 0a 46 69 | 6e 64 43 68 61 72 49 6e |...;..Fi|ndCharIn|
|00004a60| 53 74 72 69 6e 67 3a 0d | 0a 09 6d 6f 76 09 61 68 |String:.|..mov.ah|
|00004a70| 2c 61 6c 09 3b 73 65 74 | 20 61 73 69 64 65 20 74 |,al.;set| aside t|
|00004a80| 68 65 20 62 79 74 65 20 | 74 6f 20 62 65 20 66 6f |he byte |to be fo|
|00004a90| 75 6e 64 0d 0a 09 73 75 | 62 09 61 6c 2c 61 6c 09 |und...su|b.al,al.|
|00004aa0| 3b 77 65 27 6c 6c 20 73 | 65 61 72 63 68 20 66 6f |;we'll s|earch fo|
|00004ab0| 72 20 7a 65 72 6f 0d 0a | 09 70 75 73 68 09 64 73 |r zero..|.push.ds|
|00004ac0| 0d 0a 09 70 6f 70 09 65 | 73 0d 0a 09 6d 6f 76 09 |...pop.e|s...mov.|
|00004ad0| 64 69 2c 73 69 09 3b 53 | 43 41 53 20 75 73 65 73 |di,si.;S|CAS uses|
|00004ae0| 20 45 53 3a 44 49 0d 0a | 09 6d 6f 76 09 63 78 2c | ES:DI..|.mov.cx,|
|00004af0| 30 66 66 66 66 68 20 3b | 6c 6f 6e 67 20 65 6e 6f |0ffffh ;|long eno|
|00004b00| 75 67 68 20 74 6f 20 68 | 61 6e 64 6c 65 20 61 6e |ugh to h|andle an|
|00004b10| 79 20 73 74 72 69 6e 67 | 0d 0a 09 09 09 3b 20 75 |y string|.....; u|
|00004b20| 70 20 74 6f 20 36 34 4b | 2d 31 20 62 79 74 65 73 |p to 64K|-1 bytes|
|00004b30| 20 69 6e 20 6c 65 6e 67 | 74 68 2c 20 61 6e 64 0d | in leng|th, and.|
|00004b40| 0a 09 09 09 3b 20 77 69 | 6c 6c 20 68 61 6e 64 6c |....; wi|ll handl|
|00004b50| 65 20 36 34 4b 20 63 61 | 73 65 20 65 78 63 65 70 |e 64K ca|se excep|
|00004b60| 74 20 77 68 65 6e 0d 0a | 09 09 09 3b 20 74 68 65 |t when..|...; the|
|00004b70| 20 73 65 61 72 63 68 20 | 76 61 6c 75 65 20 69 73 | search |value is|
|00004b80| 20 74 68 65 20 74 65 72 | 6d 69 6e 61 74 69 6e 67 | the ter|minating|
|00004b90| 0d 0a 09 09 09 3b 20 7a | 65 72 6f 0d 0a 09 63 6c |.....; z|ero...cl|
|00004ba0| 64 0d 0a 09 72 65 70 6e | 7a 09 73 63 61 73 62 09 |d...repn|z.scasb.|
|00004bb0| 3b 66 69 6e 64 20 74 68 | 65 20 74 65 72 6d 69 6e |;find th|e termin|
|00004bc0| 61 74 69 6e 67 20 7a 65 | 72 6f 0d 0a 09 6e 6f 74 |ating ze|ro...not|
|00004bd0| 09 63 78 09 3b 6c 65 6e | 67 74 68 20 6f 66 20 73 |.cx.;len|gth of s|
|00004be0| 74 72 69 6e 67 20 69 6e | 20 62 79 74 65 73 2c 20 |tring in| bytes, |
|00004bf0| 69 6e 63 6c 75 64 69 6e | 67 0d 0a 09 09 09 3b 20 |includin|g.....; |
|00004c00| 74 68 65 20 74 65 72 6d | 69 6e 61 74 69 6e 67 20 |the term|inating |
|00004c10| 7a 65 72 6f 20 65 78 63 | 65 70 74 20 69 6e 20 74 |zero exc|ept in t|
|00004c20| 68 65 0d 0a 09 09 09 3b | 20 63 61 73 65 20 6f 66 |he.....;| case of|
|00004c30| 20 61 20 73 74 72 69 6e | 67 20 74 68 61 74 27 73 | a strin|g that's|
|00004c40| 20 65 78 61 63 74 6c 79 | 20 36 34 4b 0d 0a 09 09 | exactly| 64K....|
|00004c50| 09 3b 20 6c 6f 6e 67 20 | 69 6e 63 6c 75 64 69 6e |.; long |includin|
|00004c60| 67 20 74 68 65 20 74 65 | 72 6d 69 6e 61 74 69 6e |g the te|rminatin|
|00004c70| 67 20 7a 65 72 6f 0d 0a | 09 6d 6f 76 09 61 6c 2c |g zero..|.mov.al,|
|00004c80| 61 68 09 3b 67 65 74 20 | 62 61 63 6b 20 74 68 65 |ah.;get |back the|
|00004c90| 20 62 79 74 65 20 74 6f | 20 62 65 20 66 6f 75 6e | byte to| be foun|
|00004ca0| 64 0d 0a 09 6d 6f 76 09 | 64 69 2c 73 69 09 3b 70 |d...mov.|di,si.;p|
|00004cb0| 6f 69 6e 74 20 74 6f 20 | 74 68 65 20 73 74 61 72 |oint to |the star|
|00004cc0| 74 20 6f 66 20 74 68 65 | 20 73 74 72 69 6e 67 20 |t of the| string |
|00004cd0| 61 67 61 69 6e 0d 0a 09 | 72 65 70 6e 7a 09 73 63 |again...|repnz.sc|
|00004ce0| 61 73 62 09 3b 73 65 61 | 72 63 68 20 66 6f 72 20 |asb.;sea|rch for |
|00004cf0| 74 68 65 20 62 79 74 65 | 20 6f 66 20 69 6e 74 65 |the byte| of inte|
|00004d00| 72 65 73 74 0d 0a 09 6a | 6e 7a 09 46 69 6e 64 43 |rest...j|nz.FindC|
|00004d10| 68 61 72 49 6e 53 74 72 | 69 6e 67 4e 6f 74 46 6f |harInStr|ingNotFo|
|00004d20| 75 6e 64 0d 0a 09 09 09 | 3b 74 68 65 20 62 79 74 |und.....|;the byt|
|00004d30| 65 20 69 73 6e 27 74 20 | 70 72 65 73 65 6e 74 20 |e isn't |present |
|00004d40| 69 6e 20 74 68 65 20 73 | 74 72 69 6e 67 0d 0a 09 |in the s|tring...|
|00004d50| 64 65 63 09 64 69 09 3b | 77 65 27 76 65 20 66 6f |dec.di.;|we've fo|
|00004d60| 75 6e 64 20 74 68 65 20 | 64 65 73 69 72 65 64 20 |und the |desired |
|00004d70| 76 61 6c 75 65 2e 20 50 | 6f 69 6e 74 0d 0a 09 09 |value. P|oint....|
|00004d80| 09 3b 20 62 61 63 6b 20 | 74 6f 20 74 68 65 20 6d |.; back |to the m|
|00004d90| 61 74 63 68 69 6e 67 20 | 6c 6f 63 61 74 69 6f 6e |atching |location|
|00004da0| 0d 0a 09 6d 6f 76 09 73 | 69 2c 64 69 09 3b 72 65 |...mov.s|i,di.;re|
|00004db0| 74 75 72 6e 20 74 68 65 | 20 70 6f 69 6e 74 65 72 |turn the| pointer|
|00004dc0| 20 69 6e 20 53 49 0d 0a | 09 72 65 74 0d 0a 46 69 | in SI..|.ret..Fi|
|00004dd0| 6e 64 43 68 61 72 49 6e | 53 74 72 69 6e 67 4e 6f |ndCharIn|StringNo|
|00004de0| 74 46 6f 75 6e 64 3a 0d | 0a 09 73 75 62 09 73 69 |tFound:.|..sub.si|
|00004df0| 2c 73 69 09 3b 72 65 74 | 75 72 6e 20 61 20 30 20 |,si.;ret|urn a 0 |
|00004e00| 70 6f 69 6e 74 65 72 20 | 69 6e 64 69 63 61 74 69 |pointer |indicati|
|00004e10| 6e 67 20 74 68 61 74 0d | 0a 09 09 09 3b 20 6e 6f |ng that.|....; no|
|00004e20| 20 6d 61 74 63 68 20 77 | 61 73 20 66 6f 75 6e 64 | match w|as found|
|00004e30| 0d 0a 09 72 65 74 0d 0a | 3b 0d 0a 53 6b 69 70 3a |...ret..|;..Skip:|
|00004e40| 0d 0a 09 63 61 6c 6c 09 | 5a 54 69 6d 65 72 4f 6e |...call.|ZTimerOn|
|00004e50| 0d 0a 09 6d 6f 76 09 61 | 6c 2c 27 7a 27 09 09 3b |...mov.a|l,'z'..;|
|00004e60| 62 79 74 65 20 76 61 6c | 75 65 20 74 6f 20 66 69 |byte val|ue to fi|
|00004e70| 6e 64 0d 0a 09 6d 6f 76 | 09 73 69 2c 6f 66 66 73 |nd...mov|.si,offs|
|00004e80| 65 74 20 54 65 73 74 53 | 74 72 69 6e 67 0d 0a 09 |et TestS|tring...|
|00004e90| 09 09 09 3b 73 74 72 69 | 6e 67 20 74 6f 20 73 65 |...;stri|ng to se|
|00004ea0| 61 72 63 68 0d 0a 09 63 | 61 6c 6c 09 46 69 6e 64 |arch...c|all.Find|
|00004eb0| 43 68 61 72 49 6e 53 74 | 72 69 6e 67 20 3b 73 65 |CharInSt|ring ;se|
|00004ec0| 61 72 63 68 20 66 6f 72 | 20 74 68 65 20 62 79 74 |arch for| the byt|
|00004ed0| 65 0d 0a 09 63 61 6c 6c | 09 5a 54 69 6d 65 72 4f |e...call|.ZTimerO|
|00004ee0| 66 66 0d 0a 1a 60 ea 2c | 00 1e 06 01 00 10 00 00 |ff...`.,|........|
|00004ef0| 14 a8 6e 4f 14 99 05 00 | 00 99 05 00 00 7d fa f9 |..nO....|.....}..|
|00004f00| bc 00 00 20 00 00 00 4c | 53 54 31 31 2d 31 33 2e |... ...L|ST11-13.|
|00004f10| 41 53 4d 00 00 d2 11 bb | f8 00 00 3b 0d 0a 3b 20 |ASM.....|...;..; |
|00004f20| 2a 2a 2a 20 4c 69 73 74 | 69 6e 67 20 31 31 2d 31 |*** List|ing 11-1|
|00004f30| 33 20 2a 2a 2a 0d 0a 3b | 0d 0a 3b 20 46 69 6e 64 |3 ***..;|..; Find|
|00004f40| 73 20 74 68 65 20 66 69 | 72 73 74 20 6f 63 63 75 |s the fi|rst occu|
|00004f50| 72 72 65 6e 63 65 20 6f | 66 20 74 68 65 20 6c 65 |rrence o|f the le|
|00004f60| 74 74 65 72 20 27 7a 27 | 20 69 6e 0d 0a 3b 20 61 |tter 'z'| in..; a|
|00004f70| 20 7a 65 72 6f 2d 74 65 | 72 6d 69 6e 61 74 65 64 | zero-te|rminated|
|00004f80| 20 73 74 72 69 6e 67 2c | 20 75 73 69 6e 67 20 6e | string,| using n|
|00004f90| 6f 6e 2d 73 74 72 69 6e | 67 20 69 6e 73 74 72 75 |on-strin|g instru|
|00004fa0| 63 74 69 6f 6e 73 2e 0d | 0a 3b 0d 0a 09 6a 6d 70 |ctions..|.;...jmp|
|00004fb0| 09 53 6b 69 70 0d 0a 3b | 0d 0a 54 65 73 74 53 74 |.Skip..;|..TestSt|
|00004fc0| 72 69 6e 67 09 6c 61 62 | 65 6c 09 62 79 74 65 0d |ring.lab|el.byte.|
|00004fd0| 0a 09 64 62 09 27 54 68 | 69 73 20 69 73 20 61 20 |..db.'Th|is is a |
|00004fe0| 74 65 73 74 20 73 74 72 | 69 6e 67 20 74 68 61 74 |test str|ing that|
|00004ff0| 20 69 73 20 27 0d 0a 09 | 64 62 09 27 7a 27 0d 0a | is '...|db.'z'..|
|00005000| 09 64 62 09 27 74 65 72 | 6d 69 6e 61 74 65 64 20 |.db.'ter|minated |
|00005010| 77 69 74 68 20 61 20 7a | 65 72 6f 20 62 79 74 65 |with a z|ero byte|
|00005020| 2e 2e 2e 27 2c 30 0d 0a | 3b 0d 0a 3b 20 46 69 6e |...',0..|;..; Fin|
|00005030| 64 73 20 74 68 65 20 66 | 69 72 73 74 20 6f 63 63 |ds the f|irst occ|
|00005040| 75 72 72 65 6e 63 65 20 | 6f 66 20 74 68 65 20 73 |urrence |of the s|
|00005050| 70 65 63 69 66 69 65 64 | 20 62 79 74 65 20 69 6e |pecified| byte in|
|00005060| 20 74 68 65 0d 0a 3b 20 | 73 70 65 63 69 66 69 65 | the..; |specifie|
|00005070| 64 20 7a 65 72 6f 2d 74 | 65 72 6d 69 6e 61 74 65 |d zero-t|erminate|
|00005080| 64 20 73 74 72 69 6e 67 | 2e 0d 0a 3b 0d 0a 3b 20 |d string|...;..; |
|00005090| 49 6e 70 75 74 3a 0d 0a | 3b 09 41 4c 20 3d 20 62 |Input:..|;.AL = b|
|000050a0| 79 74 65 20 74 6f 20 66 | 69 6e 64 0d 0a 3b 09 44 |yte to f|ind..;.D|
|000050b0| 53 3a 53 49 20 3d 20 7a | 65 72 6f 2d 74 65 72 6d |S:SI = z|ero-term|
|000050c0| 69 6e 61 74 65 64 20 73 | 74 72 69 6e 67 20 74 6f |inated s|tring to|
|000050d0| 20 73 65 61 72 63 68 0d | 0a 3b 0d 0a 3b 20 4f 75 | search.|.;..; Ou|
|000050e0| 74 70 75 74 3a 0d 0a 3b | 09 53 49 20 3d 20 70 6f |tput:..;|.SI = po|
|000050f0| 69 6e 74 65 72 20 74 6f | 20 66 69 72 73 74 20 6f |inter to| first o|
|00005100| 63 63 75 72 72 65 6e 63 | 65 20 6f 66 20 62 79 74 |ccurrenc|e of byt|
|00005110| 65 20 69 6e 20 73 74 72 | 69 6e 67 2c 0d 0a 3b 09 |e in str|ing,..;.|
|00005120| 09 6f 72 20 30 20 69 66 | 20 74 68 65 20 62 79 74 |.or 0 if| the byt|
|00005130| 65 20 77 61 73 6e 27 74 | 20 66 6f 75 6e 64 0d 0a |e wasn't| found..|
|00005140| 3b 0d 0a 3b 20 52 65 67 | 69 73 74 65 72 73 20 61 |;..; Reg|isters a|
|00005150| 6c 74 65 72 65 64 3a 20 | 41 48 2c 20 53 49 0d 0a |ltered: |AH, SI..|
|00005160| 3b 0d 0a 3b 20 4e 6f 74 | 65 3a 20 44 6f 20 6e 6f |;..; Not|e: Do no|
|00005170| 74 20 70 61 73 73 20 61 | 20 73 74 72 69 6e 67 20 |t pass a| string |
|00005180| 74 68 61 74 20 73 74 61 | 72 74 73 20 61 74 20 6f |that sta|rts at o|
|00005190| 66 66 73 65 74 20 30 20 | 28 53 49 3d 30 29 2c 0d |ffset 0 |(SI=0),.|
|000051a0| 0a 3b 09 73 69 6e 63 65 | 20 61 20 6d 61 74 63 68 |.;.since| a match|
|000051b0| 20 6f 6e 20 74 68 65 20 | 66 69 72 73 74 20 62 79 | on the |first by|
|000051c0| 74 65 20 61 6e 64 20 66 | 61 69 6c 75 72 65 20 74 |te and f|ailure t|
|000051d0| 6f 20 66 69 6e 64 0d 0a | 3b 09 74 68 65 20 62 79 |o find..|;.the by|
|000051e0| 74 65 20 77 6f 75 6c 64 | 20 62 65 20 69 6e 64 69 |te would| be indi|
|000051f0| 73 74 69 6e 67 75 69 73 | 68 61 62 6c 65 2e 0d 0a |stinguis|hable...|
|00005200| 3b 0d 0a 3b 20 4e 6f 74 | 65 3a 20 44 6f 65 73 20 |;..; Not|e: Does |
|00005210| 6e 6f 74 20 68 61 6e 64 | 6c 65 20 73 74 72 69 6e |not hand|le strin|
|00005220| 67 73 20 74 68 61 74 20 | 61 72 65 20 6c 6f 6e 67 |gs that |are long|
|00005230| 65 72 20 74 68 61 6e 20 | 36 34 4b 0d 0a 3b 09 62 |er than |64K..;.b|
|00005240| 79 74 65 73 20 6f 72 20 | 63 72 6f 73 73 20 73 65 |ytes or |cross se|
|00005250| 67 6d 65 6e 74 20 62 6f | 75 6e 64 61 72 69 65 73 |gment bo|undaries|
|00005260| 2e 0d 0a 3b 0d 0a 46 69 | 6e 64 43 68 61 72 49 6e |...;..Fi|ndCharIn|
|00005270| 53 74 72 69 6e 67 3a 0d | 0a 46 69 6e 64 43 68 61 |String:.|.FindCha|
|00005280| 72 49 6e 53 74 72 69 6e | 67 4c 6f 6f 70 3a 0d 0a |rInStrin|gLoop:..|
|00005290| 09 6d 6f 76 09 61 68 2c | 5b 73 69 5d 09 3b 67 65 |.mov.ah,|[si].;ge|
|000052a0| 74 20 74 68 65 20 6e 65 | 78 74 20 73 74 72 69 6e |t the ne|xt strin|
|000052b0| 67 20 62 79 74 65 0d 0a | 09 63 6d 70 09 61 68 2c |g byte..|.cmp.ah,|
|000052c0| 61 6c 09 3b 69 73 20 74 | 68 69 73 20 74 68 65 20 |al.;is t|his the |
|000052d0| 62 79 74 65 20 77 65 27 | 72 65 0d 0a 09 09 09 3b |byte we'|re.....;|
|000052e0| 20 6c 6f 6f 6b 69 6e 67 | 20 66 6f 72 3f 0d 0a 09 | looking| for?...|
|000052f0| 6a 7a 09 46 69 6e 64 43 | 68 61 72 49 6e 53 74 72 |jz.FindC|harInStr|
|00005300| 69 6e 67 44 6f 6e 65 0d | 0a 09 09 09 3b 79 65 73 |ingDone.|....;yes|
|00005310| 2c 20 73 6f 20 77 65 27 | 72 65 20 64 6f 6e 65 0d |, so we'|re done.|
|00005320| 0a 09 69 6e 63 09 73 69 | 09 3b 70 6f 69 6e 74 20 |..inc.si|.;point |
|00005330| 74 6f 20 74 68 65 20 66 | 6f 6c 6c 6f 77 69 6e 67 |to the f|ollowing|
|00005340| 20 62 79 74 65 0d 0a 09 | 61 6e 64 09 61 68 2c 61 | byte...|and.ah,a|
|00005350| 68 09 3b 69 73 20 74 68 | 69 73 20 74 68 65 20 74 |h.;is th|is the t|
|00005360| 65 72 6d 69 6e 61 74 69 | 6e 67 20 7a 65 72 6f 3f |erminati|ng zero?|
|00005370| 0d 0a 09 6a 6e 7a 09 46 | 69 6e 64 43 68 61 72 49 |...jnz.F|indCharI|
|00005380| 6e 53 74 72 69 6e 67 4c | 6f 6f 70 0d 0a 09 09 09 |nStringL|oop.....|
|00005390| 3b 6e 6f 2c 20 73 6f 20 | 63 68 65 63 6b 20 74 68 |;no, so |check th|
|000053a0| 65 20 6e 65 78 74 20 62 | 79 74 65 0d 0a 09 73 75 |e next b|yte...su|
|000053b0| 62 09 73 69 2c 73 69 09 | 3b 77 65 20 64 69 64 6e |b.si,si.|;we didn|
|000053c0| 27 74 20 66 69 6e 64 20 | 61 20 6d 61 74 63 68 2c |'t find |a match,|
|000053d0| 20 73 6f 20 72 65 74 75 | 72 6e 0d 0a 09 09 09 3b | so retu|rn.....;|
|000053e0| 20 30 20 69 6e 20 53 49 | 0d 0a 46 69 6e 64 43 68 | 0 in SI|..FindCh|
|000053f0| 61 72 49 6e 53 74 72 69 | 6e 67 44 6f 6e 65 3a 0d |arInStri|ngDone:.|
|00005400| 0a 09 72 65 74 0d 0a 3b | 0d 0a 53 6b 69 70 3a 0d |..ret..;|..Skip:.|
|00005410| 0a 09 63 61 6c 6c 09 5a | 54 69 6d 65 72 4f 6e 0d |..call.Z|TimerOn.|
|00005420| 0a 09 6d 6f 76 09 61 6c | 2c 27 7a 27 09 09 3b 62 |..mov.al|,'z'..;b|
|00005430| 79 74 65 20 76 61 6c 75 | 65 20 74 6f 20 66 69 6e |yte valu|e to fin|
|00005440| 64 0d 0a 09 6d 6f 76 09 | 73 69 2c 6f 66 66 73 65 |d...mov.|si,offse|
|00005450| 74 20 54 65 73 74 53 74 | 72 69 6e 67 0d 0a 09 09 |t TestSt|ring....|
|00005460| 09 09 3b 73 74 72 69 6e | 67 20 74 6f 20 73 65 61 |..;strin|g to sea|
|00005470| 72 63 68 0d 0a 09 63 61 | 6c 6c 09 46 69 6e 64 43 |rch...ca|ll.FindC|
|00005480| 68 61 72 49 6e 53 74 72 | 69 6e 67 20 3b 73 65 61 |harInStr|ing ;sea|
|00005490| 72 63 68 20 66 6f 72 20 | 74 68 65 20 62 79 74 65 |rch for |the byte|
|000054a0| 0d 0a 09 63 61 6c 6c 09 | 5a 54 69 6d 65 72 4f 66 |...call.|ZTimerOf|
|000054b0| 66 0d 0a 1a 60 ea 2c 00 | 1e 06 01 00 10 00 00 14 |f...`.,.|........|
|000054c0| a8 6e 4f 14 d6 07 00 00 | d6 07 00 00 ce d9 a4 75 |.nO.....|.......u|
|000054d0| 00 00 20 00 00 00 4c 53 | 54 31 31 2d 31 34 2e 41 |.. ...LS|T11-14.A|
|000054e0| 53 4d 00 00 be 03 e5 ba | 00 00 3b 0d 0a 3b 20 2a |SM......|..;..; *|
|000054f0| 2a 2a 20 4c 69 73 74 69 | 6e 67 20 31 31 2d 31 34 |** Listi|ng 11-14|
|00005500| 20 2a 2a 2a 0d 0a 3b 0d | 0a 3b 20 46 69 6e 64 73 | ***..;.|.; Finds|
|00005510| 20 74 68 65 20 66 69 72 | 73 74 20 6f 63 63 75 72 | the fir|st occur|
|00005520| 72 65 6e 63 65 20 6f 66 | 20 74 68 65 20 6c 65 74 |rence of| the let|
|00005530| 74 65 72 20 27 7a 27 20 | 69 6e 0d 0a 3b 20 61 20 |ter 'z' |in..; a |
|00005540| 7a 65 72 6f 2d 74 65 72 | 6d 69 6e 61 74 65 64 20 |zero-ter|minated |
|00005550| 73 74 72 69 6e 67 2c 20 | 75 73 69 6e 67 20 4c 4f |string, |using LO|
|00005560| 44 53 57 20 61 6e 64 20 | 63 68 65 63 6b 69 6e 67 |DSW and |checking|
|00005570| 0d 0a 3b 20 32 20 62 79 | 74 65 73 20 70 65 72 20 |..; 2 by|tes per |
|00005580| 72 65 61 64 2e 0d 0a 3b | 0d 0a 09 6a 6d 70 09 53 |read...;|...jmp.S|
|00005590| 6b 69 70 0d 0a 3b 0d 0a | 54 65 73 74 53 74 72 69 |kip..;..|TestStri|
|000055a0| 6e 67 09 6c 61 62 65 6c | 09 62 79 74 65 0d 0a 09 |ng.label|.byte...|
|000055b0| 64 62 09 27 54 68 69 73 | 20 69 73 20 61 20 74 65 |db.'This| is a te|
|000055c0| 73 74 20 73 74 72 69 6e | 67 20 74 68 61 74 20 69 |st strin|g that i|
|000055d0| 73 20 27 0d 0a 09 64 62 | 09 27 7a 27 0d 0a 09 64 |s '...db|.'z'...d|
|000055e0| 62 09 27 74 65 72 6d 69 | 6e 61 74 65 64 20 77 69 |b.'termi|nated wi|
|000055f0| 74 68 20 61 20 7a 65 72 | 6f 20 62 79 74 65 2e 2e |th a zer|o byte..|
|00005600| 2e 27 2c 30 0d 0a 3b 0d | 0a 3b 20 46 69 6e 64 73 |.',0..;.|.; Finds|
|00005610| 20 74 68 65 20 66 69 72 | 73 74 20 6f 63 63 75 72 | the fir|st occur|
|00005620| 72 65 6e 63 65 20 6f 66 | 20 74 68 65 20 73 70 65 |rence of| the spe|
|00005630| 63 69 66 69 65 64 20 62 | 79 74 65 20 69 6e 20 74 |cified b|yte in t|
|00005640| 68 65 0d 0a 3b 20 73 70 | 65 63 69 66 69 65 64 20 |he..; sp|ecified |
|00005650| 7a 65 72 6f 2d 74 65 72 | 6d 69 6e 61 74 65 64 20 |zero-ter|minated |
|00005660| 73 74 72 69 6e 67 2e 0d | 0a 3b 0d 0a 3b 20 49 6e |string..|.;..; In|
|00005670| 70 75 74 3a 0d 0a 3b 09 | 41 4c 20 3d 20 62 79 74 |put:..;.|AL = byt|
|00005680| 65 20 74 6f 20 66 69 6e | 64 0d 0a 3b 09 44 53 3a |e to fin|d..;.DS:|
|00005690| 53 49 20 3d 20 7a 65 72 | 6f 2d 74 65 72 6d 69 6e |SI = zer|o-termin|
|000056a0| 61 74 65 64 20 73 74 72 | 69 6e 67 20 74 6f 20 73 |ated str|ing to s|
|000056b0| 65 61 72 63 68 0d 0a 3b | 0d 0a 3b 20 4f 75 74 70 |earch..;|..; Outp|
|000056c0| 75 74 3a 0d 0a 3b 09 53 | 49 20 3d 20 70 6f 69 6e |ut:..;.S|I = poin|
|000056d0| 74 65 72 20 74 6f 20 66 | 69 72 73 74 20 6f 63 63 |ter to f|irst occ|
|000056e0| 75 72 72 65 6e 63 65 20 | 6f 66 20 62 79 74 65 20 |urrence |of byte |
|000056f0| 69 6e 20 73 74 72 69 6e | 67 2c 0d 0a 3b 09 09 6f |in strin|g,..;..o|
|00005700| 72 20 30 20 69 66 20 74 | 68 65 20 62 79 74 65 20 |r 0 if t|he byte |
|00005710| 77 61 73 6e 27 74 20 66 | 6f 75 6e 64 0d 0a 3b 0d |wasn't f|ound..;.|
|00005720| 0a 3b 20 52 65 67 69 73 | 74 65 72 73 20 61 6c 74 |.; Regis|ters alt|
|00005730| 65 72 65 64 3a 20 41 58 | 2c 20 42 4c 2c 20 53 49 |ered: AX|, BL, SI|
|00005740| 0d 0a 3b 0d 0a 3b 20 44 | 69 72 65 63 74 69 6f 6e |..;..; D|irection|
|00005750| 20 66 6c 61 67 20 63 6c | 65 61 72 65 64 0d 0a 3b | flag cl|eared..;|
|00005760| 0d 0a 3b 20 4e 6f 74 65 | 3a 20 44 6f 20 6e 6f 74 |..; Note|: Do not|
|00005770| 20 70 61 73 73 20 61 20 | 73 74 72 69 6e 67 20 74 | pass a |string t|
|00005780| 68 61 74 20 73 74 61 72 | 74 73 20 61 74 20 6f 66 |hat star|ts at of|
|00005790| 66 73 65 74 20 30 20 28 | 53 49 3d 30 29 2c 0d 0a |fset 0 (|SI=0),..|
|000057a0| 3b 09 73 69 6e 63 65 20 | 61 20 6d 61 74 63 68 20 |;.since |a match |
|000057b0| 6f 6e 20 74 68 65 20 66 | 69 72 73 74 20 62 79 74 |on the f|irst byt|
|000057c0| 65 20 61 6e 64 20 66 61 | 69 6c 75 72 65 20 74 6f |e and fa|ilure to|
|000057d0| 20 66 69 6e 64 0d 0a 3b | 09 74 68 65 20 62 79 74 | find..;|.the byt|
|000057e0| 65 20 77 6f 75 6c 64 20 | 62 65 20 69 6e 64 69 73 |e would |be indis|
|000057f0| 74 69 6e 67 75 69 73 68 | 61 62 6c 65 2e 0d 0a 3b |tinguish|able...;|
|00005800| 0d 0a 3b 20 4e 6f 74 65 | 3a 20 44 6f 65 73 20 6e |..; Note|: Does n|
|00005810| 6f 74 20 68 61 6e 64 6c | 65 20 73 74 72 69 6e 67 |ot handl|e string|
|00005820| 73 20 74 68 61 74 20 61 | 72 65 20 6c 6f 6e 67 65 |s that a|re longe|
|00005830| 72 20 74 68 61 6e 20 36 | 34 4b 0d 0a 3b 09 62 79 |r than 6|4K..;.by|
|00005840| 74 65 73 20 6f 72 20 63 | 72 6f 73 73 20 73 65 67 |tes or c|ross seg|
|00005850| 6d 65 6e 74 20 62 6f 75 | 6e 64 61 72 69 65 73 2e |ment bou|ndaries.|
|00005860| 0d 0a 3b 0d 0a 46 69 6e | 64 43 68 61 72 49 6e 53 |..;..Fin|dCharInS|
|00005870| 74 72 69 6e 67 3a 0d 0a | 09 6d 6f 76 09 62 6c 2c |tring:..|.mov.bl,|
|00005880| 61 6c 09 3b 77 65 27 6c | 6c 20 6e 65 65 64 20 41 |al.;we'l|l need A|
|00005890| 58 20 73 69 6e 63 65 20 | 74 68 61 74 27 73 20 74 |X since |that's t|
|000058a0| 68 65 0d 0a 09 09 09 3b | 20 6f 6e 6c 79 20 72 65 |he.....;| only re|
|000058b0| 67 69 73 74 65 72 20 4c | 4f 44 53 57 20 63 61 6e |gister L|ODSW can|
|000058c0| 20 75 73 65 0d 0a 09 63 | 6c 64 0d 0a 46 69 6e 64 | use...c|ld..Find|
|000058d0| 43 68 61 72 49 6e 53 74 | 72 69 6e 67 4c 6f 6f 70 |CharInSt|ringLoop|
|000058e0| 3a 0d 0a 09 6c 6f 64 73 | 77 09 09 3b 67 65 74 20 |:...lods|w..;get |
|000058f0| 74 68 65 20 6e 65 78 74 | 20 32 20 73 74 72 69 6e |the next| 2 strin|
|00005900| 67 20 62 79 74 65 73 0d | 0a 09 63 6d 70 09 61 6c |g bytes.|..cmp.al|
|00005910| 2c 62 6c 09 3b 69 73 20 | 74 68 65 20 66 69 72 73 |,bl.;is |the firs|
|00005920| 74 20 62 79 74 65 20 74 | 68 65 20 62 79 74 65 20 |t byte t|he byte |
|00005930| 77 65 27 72 65 0d 0a 09 | 09 09 3b 20 6c 6f 6f 6b |we're...|..; look|
|00005940| 69 6e 67 20 66 6f 72 3f | 0d 0a 09 6a 7a 09 46 69 |ing for?|...jz.Fi|
|00005950| 6e 64 43 68 61 72 49 6e | 53 74 72 69 6e 67 44 6f |ndCharIn|StringDo|
|00005960| 6e 65 41 64 6a 75 73 74 | 0d 0a 09 09 09 3b 79 65 |neAdjust|.....;ye|
|00005970| 73 2c 20 73 6f 20 77 65 | 27 72 65 20 64 6f 6e 65 |s, so we|'re done|
|00005980| 20 61 66 74 65 72 20 77 | 65 20 61 64 6a 75 73 74 | after w|e adjust|
|00005990| 0d 0a 09 09 09 3b 20 62 | 61 63 6b 20 74 6f 20 74 |.....; b|ack to t|
|000059a0| 68 65 20 66 69 72 73 74 | 20 62 79 74 65 20 6f 66 |he first| byte of|
|000059b0| 20 74 68 65 20 77 6f 72 | 64 0d 0a 09 61 6e 64 09 | the wor|d...and.|
|000059c0| 61 6c 2c 61 6c 09 3b 69 | 73 20 74 68 65 20 66 69 |al,al.;i|s the fi|
|000059d0| 72 73 74 20 62 79 74 65 | 20 74 68 65 20 74 65 72 |rst byte| the ter|
|000059e0| 6d 69 6e 61 74 69 6e 67 | 0d 0a 09 09 09 3b 20 7a |minating|.....; z|
|000059f0| 65 72 6f 3f 0d 0a 09 6a | 7a 09 46 69 6e 64 43 68 |ero?...j|z.FindCh|
|00005a00| 61 72 49 6e 53 74 72 69 | 6e 67 4e 6f 4d 61 74 63 |arInStri|ngNoMatc|
|00005a10| 68 20 3b 79 65 73 2c 20 | 6e 6f 20 6d 61 74 63 68 |h ;yes, |no match|
|00005a20| 0d 0a 09 63 6d 70 09 61 | 68 2c 62 6c 09 3b 69 73 |...cmp.a|h,bl.;is|
|00005a30| 20 74 68 65 20 73 65 63 | 6f 6e 64 20 62 79 74 65 | the sec|ond byte|
|00005a40| 20 74 68 65 20 62 79 74 | 65 20 77 65 27 72 65 0d | the byt|e we're.|
|00005a50| 0a 09 09 09 3b 20 6c 6f | 6f 6b 69 6e 67 20 66 6f |....; lo|oking fo|
|00005a60| 72 3f 0d 0a 09 6a 7a 09 | 46 69 6e 64 43 68 61 72 |r?...jz.|FindChar|
|00005a70| 49 6e 53 74 72 69 6e 67 | 44 6f 6e 65 0d 0a 09 09 |InString|Done....|
|00005a80| 09 3b 79 65 73 2c 20 73 | 6f 20 77 65 27 72 65 20 |.;yes, s|o we're |
|00005a90| 64 6f 6e 65 0d 0a 09 61 | 6e 64 09 61 68 2c 61 68 |done...a|nd.ah,ah|
|00005aa0| 09 3b 69 73 20 74 68 65 | 20 73 65 63 6f 6e 64 20 |.;is the| second |
|00005ab0| 62 79 74 65 20 74 68 65 | 20 74 65 72 6d 69 6e 61 |byte the| termina|
|00005ac0| 74 69 6e 67 0d 0a 09 09 | 09 3b 20 7a 65 72 6f 3f |ting....|.; zero?|
|00005ad0| 0d 0a 09 6a 6e 7a 09 46 | 69 6e 64 43 68 61 72 49 |...jnz.F|indCharI|
|00005ae0| 6e 53 74 72 69 6e 67 4c | 6f 6f 70 0d 0a 09 09 09 |nStringL|oop.....|
|00005af0| 3b 6e 6f 2c 20 73 6f 20 | 63 68 65 63 6b 20 74 68 |;no, so |check th|
|00005b00| 65 20 6e 65 78 74 20 32 | 20 62 79 74 65 73 0d 0a |e next 2| bytes..|
|00005b10| 46 69 6e 64 43 68 61 72 | 49 6e 53 74 72 69 6e 67 |FindChar|InString|
|00005b20| 4e 6f 4d 61 74 63 68 3a | 0d 0a 09 73 75 62 09 73 |NoMatch:|...sub.s|
|00005b30| 69 2c 73 69 09 3b 77 65 | 20 64 69 64 6e 27 74 20 |i,si.;we| didn't |
|00005b40| 66 69 6e 64 20 61 20 6d | 61 74 63 68 2c 20 73 6f |find a m|atch, so|
|00005b50| 20 72 65 74 75 72 6e 0d | 0a 09 09 09 3b 20 30 20 | return.|....; 0 |
|00005b60| 69 6e 20 53 49 0d 0a 09 | 72 65 74 0d 0a 46 69 6e |in SI...|ret..Fin|
|00005b70| 64 43 68 61 72 49 6e 53 | 74 72 69 6e 67 44 6f 6e |dCharInS|tringDon|
|00005b80| 65 41 64 6a 75 73 74 3a | 0d 0a 09 64 65 63 09 73 |eAdjust:|...dec.s|
|00005b90| 69 09 3b 61 64 6a 75 73 | 74 20 74 6f 20 74 68 65 |i.;adjus|t to the|
|00005ba0| 20 66 69 72 73 74 20 62 | 79 74 65 20 6f 66 20 74 | first b|yte of t|
|00005bb0| 68 65 0d 0a 09 09 09 3b | 20 77 6f 72 64 20 77 65 |he.....;| word we|
|00005bc0| 20 6a 75 73 74 20 72 65 | 61 64 0d 0a 46 69 6e 64 | just re|ad..Find|
|00005bd0| 43 68 61 72 49 6e 53 74 | 72 69 6e 67 44 6f 6e 65 |CharInSt|ringDone|
|00005be0| 3a 0d 0a 09 64 65 63 09 | 73 69 09 3b 70 6f 69 6e |:...dec.|si.;poin|
|00005bf0| 74 20 62 61 63 6b 20 74 | 6f 20 74 68 65 20 6d 61 |t back t|o the ma|
|00005c00| 74 63 68 69 6e 67 20 62 | 79 74 65 0d 0a 09 72 65 |tching b|yte...re|
|00005c10| 74 0d 0a 3b 0d 0a 53 6b | 69 70 3a 0d 0a 09 63 61 |t..;..Sk|ip:...ca|
|00005c20| 6c 6c 09 5a 54 69 6d 65 | 72 4f 6e 0d 0a 09 6d 6f |ll.ZTime|rOn...mo|
|00005c30| 76 09 61 6c 2c 27 7a 27 | 09 09 3b 62 79 74 65 20 |v.al,'z'|..;byte |
|00005c40| 76 61 6c 75 65 20 74 6f | 20 66 69 6e 64 0d 0a 09 |value to| find...|
|00005c50| 6d 6f 76 09 73 69 2c 6f | 66 66 73 65 74 20 54 65 |mov.si,o|ffset Te|
|00005c60| 73 74 53 74 72 69 6e 67 | 0d 0a 09 09 09 09 3b 73 |stString|......;s|
|00005c70| 74 72 69 6e 67 20 74 6f | 20 73 65 61 72 63 68 0d |tring to| search.|
|00005c80| 0a 09 63 61 6c 6c 09 46 | 69 6e 64 43 68 61 72 49 |..call.F|indCharI|
|00005c90| 6e 53 74 72 69 6e 67 20 | 3b 73 65 61 72 63 68 20 |nString |;search |
|00005ca0| 66 6f 72 20 74 68 65 20 | 62 79 74 65 0d 0a 09 63 |for the |byte...c|
|00005cb0| 61 6c 6c 09 5a 54 69 6d | 65 72 4f 66 66 0d 0a 1a |all.ZTim|erOff...|
|00005cc0| 60 ea 2c 00 1e 06 01 00 | 10 00 00 14 a8 6e 4f 14 |`.,.....|.....nO.|
|00005cd0| 94 08 00 00 94 08 00 00 | be a0 1c 1f 00 00 20 00 |........|...... .|
|00005ce0| 00 00 4c 53 54 31 31 2d | 31 35 2e 41 53 4d 00 00 |..LST11-|15.ASM..|
|00005cf0| f9 d1 d6 3f 00 00 3b 0d | 0a 3b 20 2a 2a 2a 20 4c |...?..;.|.; *** L|
|00005d00| 69 73 74 69 6e 67 20 31 | 31 2d 31 35 20 2a 2a 2a |isting 1|1-15 ***|
|00005d10| 0d 0a 3b 0d 0a 3b 20 46 | 69 6e 64 73 20 74 68 65 |..;..; F|inds the|
|00005d20| 20 6c 61 73 74 20 6e 6f | 6e 2d 62 6c 61 6e 6b 20 | last no|n-blank |
|00005d30| 63 68 61 72 61 63 74 65 | 72 20 69 6e 20 61 20 73 |characte|r in a s|
|00005d40| 74 72 69 6e 67 2c 20 75 | 73 69 6e 67 0d 0a 3b 20 |tring, u|sing..; |
|00005d50| 4c 4f 44 53 57 20 61 6e | 64 20 63 68 65 63 6b 69 |LODSW an|d checki|
|00005d60| 6e 67 20 32 20 62 79 74 | 65 73 20 70 65 72 20 72 |ng 2 byt|es per r|
|00005d70| 65 61 64 2e 0d 0a 3b 0d | 0a 09 6a 6d 70 09 53 6b |ead...;.|..jmp.Sk|
|00005d80| 69 70 0d 0a 3b 0d 0a 54 | 65 73 74 53 74 72 69 6e |ip..;..T|estStrin|
|00005d90| 67 09 6c 61 62 65 6c 09 | 62 79 74 65 0d 0a 09 64 |g.label.|byte...d|
|00005da0| 62 09 27 54 68 69 73 20 | 69 73 20 61 20 74 65 73 |b.'This |is a tes|
|00005db0| 74 20 73 74 72 69 6e 67 | 20 77 69 74 68 20 62 6c |t string| with bl|
|00005dc0| 61 6e 6b 73 2e 2e 2e 2e | 27 0d 0a 09 64 62 09 27 |anks....|'...db.'|
|00005dd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005de0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005df0| 20 20 20 20 20 27 2c 30 | 0d 0a 3b 0d 0a 3b 20 46 | ',0|..;..; F|
|00005e00| 69 6e 64 73 20 74 68 65 | 20 6c 61 73 74 20 6e 6f |inds the| last no|
|00005e10| 6e 2d 62 6c 61 6e 6b 20 | 63 68 61 72 61 63 74 65 |n-blank |characte|
|00005e20| 72 20 69 6e 20 74 68 65 | 20 73 70 65 63 69 66 69 |r in the| specifi|
|00005e30| 65 64 0d 0a 3b 20 7a 65 | 72 6f 2d 74 65 72 6d 69 |ed..; ze|ro-termi|
|00005e40| 6e 61 74 65 64 20 73 74 | 72 69 6e 67 2e 0d 0a 3b |nated st|ring...;|
|00005e50| 0d 0a 3b 20 49 6e 70 75 | 74 3a 0d 0a 3b 09 44 53 |..; Inpu|t:..;.DS|
|00005e60| 3a 53 49 20 3d 20 7a 65 | 72 6f 2d 74 65 72 6d 69 |:SI = ze|ro-termi|
|00005e70| 6e 61 74 65 64 20 73 74 | 72 69 6e 67 20 74 6f 20 |nated st|ring to |
|00005e80| 73 65 61 72 63 68 0d 0a | 3b 0d 0a 3b 20 4f 75 74 |search..|;..; Out|
|00005e90| 70 75 74 3a 0d 0a 3b 09 | 53 49 20 3d 20 70 6f 69 |put:..;.|SI = poi|
|00005ea0| 6e 74 65 72 20 74 6f 20 | 6c 61 73 74 20 6e 6f 6e |nter to |last non|
|00005eb0| 2d 62 6c 61 6e 6b 20 63 | 68 61 72 61 63 74 65 72 |-blank c|haracter|
|00005ec0| 20 69 6e 20 73 74 72 69 | 6e 67 2c 0d 0a 3b 09 09 | in stri|ng,..;..|
|00005ed0| 6f 72 20 30 20 69 66 20 | 74 68 65 72 65 20 61 72 |or 0 if |there ar|
|00005ee0| 65 20 6e 6f 20 6e 6f 6e | 2d 62 6c 61 6e 6b 20 63 |e no non|-blank c|
|00005ef0| 68 61 72 61 63 74 65 72 | 73 20 69 6e 0d 0a 3b 09 |haracter|s in..;.|
|00005f00| 09 74 68 65 20 73 74 72 | 69 6e 67 0d 0a 3b 0d 0a |.the str|ing..;..|
|00005f10| 3b 20 52 65 67 69 73 74 | 65 72 73 20 61 6c 74 65 |; Regist|ers alte|
|00005f20| 72 65 64 3a 20 41 58 2c | 20 42 4c 2c 20 44 58 2c |red: AX,| BL, DX,|
|00005f30| 20 53 49 0d 0a 3b 0d 0a | 3b 20 44 69 72 65 63 74 | SI..;..|; Direct|
|00005f40| 69 6f 6e 20 66 6c 61 67 | 20 63 6c 65 61 72 65 64 |ion flag| cleared|
|00005f50| 0d 0a 3b 0d 0a 3b 20 4e | 6f 74 65 3a 20 44 6f 20 |..;..; N|ote: Do |
|00005f60| 6e 6f 74 20 70 61 73 73 | 20 61 20 73 74 72 69 6e |not pass| a strin|
|00005f70| 67 20 74 68 61 74 20 73 | 74 61 72 74 73 20 61 74 |g that s|tarts at|
|00005f80| 20 6f 66 66 73 65 74 20 | 30 20 28 53 49 3d 30 29 | offset |0 (SI=0)|
|00005f90| 2c 0d 0a 3b 09 73 69 6e | 63 65 20 61 20 72 65 74 |,..;.sin|ce a ret|
|00005fa0| 75 72 6e 20 70 6f 69 6e | 74 65 72 20 74 6f 20 74 |urn poin|ter to t|
|00005fb0| 68 65 20 66 69 72 73 74 | 20 62 79 74 65 20 61 6e |he first| byte an|
|00005fc0| 64 20 66 61 69 6c 75 72 | 65 0d 0a 3b 09 74 6f 20 |d failur|e..;.to |
|00005fd0| 66 69 6e 64 20 61 20 6e | 6f 6e 2d 62 6c 61 6e 6b |find a n|on-blank|
|00005fe0| 20 63 68 61 72 61 63 74 | 65 72 20 77 6f 75 6c 64 | charact|er would|
|00005ff0| 20 62 65 0d 0a 3b 09 69 | 6e 64 69 73 74 69 6e 67 | be..;.i|ndisting|
|00006000| 75 69 73 68 61 62 6c 65 | 2e 0d 0a 3b 0d 0a 3b 20 |uishable|...;..; |
|00006010| 4e 6f 74 65 3a 20 44 6f | 65 73 20 6e 6f 74 20 68 |Note: Do|es not h|
|00006020| 61 6e 64 6c 65 20 73 74 | 72 69 6e 67 73 20 74 68 |andle st|rings th|
|00006030| 61 74 20 61 72 65 20 6c | 6f 6e 67 65 72 20 74 68 |at are l|onger th|
|00006040| 61 6e 20 36 34 4b 0d 0a | 3b 09 62 79 74 65 73 20 |an 64K..|;.bytes |
|00006050| 6f 72 20 63 72 6f 73 73 | 20 73 65 67 6d 65 6e 74 |or cross| segment|
|00006060| 20 62 6f 75 6e 64 61 72 | 69 65 73 2e 0d 0a 3b 0d | boundar|ies...;.|
|00006070| 0a 46 69 6e 64 4c 61 73 | 74 4e 6f 6e 42 6c 61 6e |.FindLas|tNonBlan|
|00006080| 6b 49 6e 53 74 72 69 6e | 67 3a 0d 0a 09 6d 6f 76 |kInStrin|g:...mov|
|00006090| 09 64 78 2c 31 09 3b 73 | 6f 20 66 61 72 20 77 65 |.dx,1.;s|o far we|
|000060a0| 20 68 61 76 65 6e 27 74 | 20 66 6f 75 6e 64 20 61 | haven't| found a|
|000060b0| 20 6e 6f 6e 2d 62 6c 61 | 6e 6b 0d 0a 09 09 09 3b | non-bla|nk.....;|
|000060c0| 20 63 68 61 72 61 63 74 | 65 72 0d 0a 09 6d 6f 76 | charact|er...mov|
|000060d0| 09 62 6c 2c 27 20 27 09 | 3b 70 75 74 20 6f 75 72 |.bl,' '.|;put our|
|000060e0| 20 73 65 61 72 63 68 20 | 63 68 61 72 61 63 74 65 | search |characte|
|000060f0| 72 2c 20 74 68 65 20 73 | 70 61 63 65 0d 0a 09 09 |r, the s|pace....|
|00006100| 09 3b 20 63 68 61 72 61 | 63 74 65 72 2c 20 69 6e |.; chara|cter, in|
|00006110| 20 61 20 72 65 67 69 73 | 74 65 72 20 66 6f 72 20 | a regis|ter for |
|00006120| 73 70 65 65 64 0d 0a 09 | 63 6c 64 0d 0a 46 69 6e |speed...|cld..Fin|
|00006130| 64 4c 61 73 74 4e 6f 6e | 42 6c 61 6e 6b 49 6e 53 |dLastNon|BlankInS|
|00006140| 74 72 69 6e 67 4c 6f 6f | 70 3a 0d 0a 09 6c 6f 64 |tringLoo|p:...lod|
|00006150| 73 77 09 09 3b 67 65 74 | 20 74 68 65 20 6e 65 78 |sw..;get| the nex|
|00006160| 74 20 32 20 73 74 72 69 | 6e 67 20 62 79 74 65 73 |t 2 stri|ng bytes|
|00006170| 0d 0a 09 61 6e 64 09 61 | 6c 2c 61 6c 09 3b 69 73 |...and.a|l,al.;is|
|00006180| 20 74 68 65 20 66 69 72 | 73 74 20 62 79 74 65 20 | the fir|st byte |
|00006190| 74 68 65 20 74 65 72 6d | 69 6e 61 74 69 6e 67 0d |the term|inating.|
|000061a0| 0a 09 09 09 3b 20 7a 65 | 72 6f 3f 0d 0a 09 6a 7a |....; ze|ro?...jz|
|000061b0| 09 46 69 6e 64 4c 61 73 | 74 4e 6f 6e 42 6c 61 6e |.FindLas|tNonBlan|
|000061c0| 6b 49 6e 53 74 72 69 6e | 67 44 6f 6e 65 0d 0a 09 |kInStrin|gDone...|
|000061d0| 09 09 3b 79 65 73 2c 20 | 77 65 27 72 65 20 64 6f |..;yes, |we're do|
|000061e0| 6e 65 0d 0a 09 63 6d 70 | 09 61 6c 2c 62 6c 09 3b |ne...cmp|.al,bl.;|
|000061f0| 69 73 20 74 68 65 20 73 | 65 63 6f 6e 64 20 62 79 |is the s|econd by|
|00006200| 74 65 20 61 20 73 70 61 | 63 65 3f 0d 0a 09 6a 7a |te a spa|ce?...jz|
|00006210| 09 46 69 6e 64 4c 61 73 | 74 4e 6f 6e 42 6c 61 6e |.FindLas|tNonBlan|
|00006220| 6b 49 6e 53 74 72 69 6e | 67 4e 65 78 74 43 68 61 |kInStrin|gNextCha|
|00006230| 72 0d 0a 09 09 09 3b 79 | 65 73 2c 20 73 6f 20 63 |r.....;y|es, so c|
|00006240| 68 65 63 6b 20 74 68 65 | 20 6e 65 78 74 20 63 68 |heck the| next ch|
|00006250| 61 72 61 63 74 65 72 0d | 0a 09 6d 6f 76 09 64 78 |aracter.|..mov.dx|
|00006260| 2c 73 69 09 3b 72 65 6d | 65 6d 62 65 72 20 77 68 |,si.;rem|ember wh|
|00006270| 65 72 65 20 74 68 65 20 | 6e 6f 6e 2d 62 6c 61 6e |ere the |non-blan|
|00006280| 6b 20 77 61 73 0d 0a 09 | 64 65 63 09 64 78 09 3b |k was...|dec.dx.;|
|00006290| 61 64 6a 75 73 74 20 62 | 61 63 6b 20 74 6f 20 66 |adjust b|ack to f|
|000062a0| 69 72 73 74 20 62 79 74 | 65 20 6f 66 20 77 6f 72 |irst byt|e of wor|
|000062b0| 64 0d 0a 46 69 6e 64 4c | 61 73 74 4e 6f 6e 42 6c |d..FindL|astNonBl|
|000062c0| 61 6e 6b 49 6e 53 74 72 | 69 6e 67 4e 65 78 74 43 |ankInStr|ingNextC|
|000062d0| 68 61 72 3a 0d 0a 09 61 | 6e 64 09 61 68 2c 61 68 |har:...a|nd.ah,ah|
|000062e0| 09 3b 69 73 20 74 68 65 | 20 73 65 63 6f 6e 64 20 |.;is the| second |
|000062f0| 62 79 74 65 20 74 68 65 | 20 74 65 72 6d 69 6e 61 |byte the| termina|
|00006300| 74 69 6e 67 0d 0a 09 09 | 09 3b 20 7a 65 72 6f 3f |ting....|.; zero?|
|00006310| 0d 0a 09 6a 7a 09 46 69 | 6e 64 4c 61 73 74 4e 6f |...jz.Fi|ndLastNo|
|00006320| 6e 42 6c 61 6e 6b 49 6e | 53 74 72 69 6e 67 44 6f |nBlankIn|StringDo|
|00006330| 6e 65 0d 0a 09 09 09 3b | 79 65 73 2c 20 77 65 27 |ne.....;|yes, we'|
|00006340| 72 65 20 64 6f 6e 65 0d | 0a 09 63 6d 70 09 61 68 |re done.|..cmp.ah|
|00006350| 2c 62 6c 09 3b 69 73 20 | 74 68 65 20 73 65 63 6f |,bl.;is |the seco|
|00006360| 6e 64 20 62 79 74 65 20 | 61 20 73 70 61 63 65 3f |nd byte |a space?|
|00006370| 0d 0a 09 6a 7a 09 46 69 | 6e 64 4c 61 73 74 4e 6f |...jz.Fi|ndLastNo|
|00006380| 6e 42 6c 61 6e 6b 49 6e | 53 74 72 69 6e 67 4c 6f |nBlankIn|StringLo|
|00006390| 6f 70 0d 0a 09 09 09 3b | 79 65 73 2c 20 73 6f 20 |op.....;|yes, so |
|000063a0| 63 68 65 63 6b 20 74 68 | 65 20 6e 65 78 74 20 32 |check th|e next 2|
|000063b0| 20 62 79 74 65 73 0d 0a | 09 6d 6f 76 09 64 78 2c | bytes..|.mov.dx,|
|000063c0| 73 69 09 3b 72 65 6d 65 | 6d 62 65 72 20 77 68 65 |si.;reme|mber whe|
|000063d0| 72 65 20 74 68 65 20 6e | 6f 6e 2d 62 6c 61 6e 6b |re the n|on-blank|
|000063e0| 20 77 61 73 0d 0a 09 6a | 6d 70 09 46 69 6e 64 4c | was...j|mp.FindL|
|000063f0| 61 73 74 4e 6f 6e 42 6c | 61 6e 6b 49 6e 53 74 72 |astNonBl|ankInStr|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.