home *** CD-ROM | disk | FTP | other *** search
- ;* ------------------------------------------------------- *
- ;* CHARFILL.ASM *
- ;* ------------------------------------------------------- *
- CODE SEGMENT
- ASSUME CS:CODE
-
- FillChar PROC FAR
- ; {$F+}
- ; PROCEDURE FillChar(VAR x; count : WORD; value : BYTE);
- ; EXTERNAL;
- ; {$F-}
-
- value EQU BYTE PTR SS:[BX+4]
- count EQU WORD PTR SS:[BX+6]
- xptr EQU DWORD PTR SS:[BX+8]
-
-
- MOV BX, SP
- MOV AL, value
- MOV AH, AL ; value verdoppeln
- MOV CX, count ; count ins Zählregister
- LES DI, xptr ; Zeiger auf x in ES:DI
- CLD ; Stringbefehle vorwärts
- SHR CX, 1 ; count := count SHR 1
- JNC gerade ; Sprung, wenn count gerade
- STOSB ; 1. Byte von x überschreiben
- gerade:
- REP STOSW ; Rest von x überschreiben
- RET 8
-
- FillChar ENDP
-
- CODE ENDS
- END
-
- ;* ------------------------------------------------------- *
- ;* Ende von CHARFILL.ASM *
-
-