home *** CD-ROM | disk | FTP | other *** search
- { **************************************************************
- Datei: ST_UPPER.PAS
- --------------------------------------------------------------
- Autor: Sven Letzel
- Datum: 12.04.1993
- Funktion: Demonstriert die Umwandlung eines String in Groß-
- buchstaben innerhalb einer Assemblerroutine
- Borland Pascal 7.0 - Zielplattform: Real, Protected, Windows
- **************************************************************}
-
- {$IFDEF Windows} USES WinCrt; {$ENDIF}
-
- FUNCTION UpperCase(Source: STRING): STRING; ASSEMBLER;
- ASM
- PUSH DS { ** Datensegment retten ** }
- CLD
- LDS SI, Source { ** Zeiger auf Quellstring laden ** }
- LES DI, @Result { ** Zeiger auf Ergebnisstring laden ** }
- XOR CH, CH
- MOV CL, [SI]
- MOVSB { ** Längenbyte ** }
- @1:
- LODSB { ** mov al, [si] und add si, 1 ** }
- CMP AL, 'a'
- JB @2
- CMP AL, 'z'
- JA @2
- AND AL, 0DFH { ** Bit 5 ausblenden -> Buchstabe wird groß ** }
- @2:
- STOSB { ** mov es:[di], al und add di, 1 ** }
- LOOP @1 { ** cmp cx, 0 und jnz @1 ** }
- POP DS { ** DS-Register restaurieren ** }
- END;
-
- BEGIN
- WriteLn(UpperCase('Dieser Text besteht aus Großbuchstaben.'));
- END.
-