home *** CD-ROM | disk | FTP | other *** search
- PROGRAM FastIncrement;
-
- USES Crt;
-
- TYPE
- IntArray = ARRAY[0..16000] OF Integer;
-
- VAR
- I : Integer;
- Scores : IntArray;
-
-
- PROCEDURE Increment(VAR Scores : IntArray;
- ByHowMuch : Integer);
-
- BEGIN
- INLINE($C4/$BE/Scores/ {LES DI,[BP+<offset>]}
- $B9/$80/$3E/ {MOV CX,16000}
- $8B/$9E/ByHowMuch/ {MOV BX,ByHowMuch}
- $26/$01/$1D/ {ADD ES:[DI],BX}
- $47/ {INC DI}
- $47/ {INC DI}
- $E2/$FA); {LOOP -6}
-
- END;
-
-
- BEGIN
- ClrScr;
- { First, zero out the array: }
- FillChar(Scores,SizeOf(Scores),Chr(0));
- FOR I := 0 TO 10 DO
- Writeln(Scores[I]); { Show first ten values }
- Readln;
- Increment(Scores,72); { Increment the array }
- FOR I := 0 TO 10 DO
- Writeln(Scores[I]); { Show first ten values again }
- Readln
- END.