home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / tasm / chapxmpl.arc / REVERSE.ASM < prev    next >
Encoding:
Assembly Source File  |  1988-10-09  |  1.3 KB  |  41 lines

  1.     DOSSEG
  2.     .MODEL SMALL
  3.     .STACK 100h
  4.     .DATA
  5. MAX_STRING    EQU    20000
  6. StringUmzudrehen    DB    MAX_STRING DUP (?)
  7. UmgedrehterString    DB    MAX_STRING DUP (?)
  8.         .CODE
  9.         mov    ax,@Data
  10.         mov    ds,ax        ; DS zeigt auf das Datensegment
  11.         mov    ah,3Fh        ; DOS-Funktion über Handle lesen
  12.         mov    bx,0            ; Standardeingabegerät
  13.         mov    cx,MAX_STRING    ; Maximale Anzahl an Zeichen
  14.         mov    dx,OFFSET StringUmzudrehen    
  15.                         ; String hier speichern
  16.         int    21h            ; String lesen
  17.         and    ax,ax        ; Zeichen gelesen?
  18.         jz    Fertig        ; Alles klar
  19.         mov    cx,ax        ; Stringlänge in Zähler speichern
  20.         push    cx            ; Stringlänge abspeichern
  21.         mov    bx,OFFSET StringUmzudrehen
  22.         mov    si,OFFSET UmgedrehterString
  23.         add    si,cx        ; Zeiger auf das Stringende
  24.         dec    si            ; des umgedrehten Strings
  25. Umdrehen:
  26.         mov    al,[bx]        ; Zeichen holen
  27.         mov    [si],al        ; Zeichen umgekehrt abspeichern
  28.         inc    bx            ; Zeiger zum nächsten Zeichen
  29.         dec    si            ; Zeiger zum vorherigen Zeichen
  30.         loop    Umdrehen        ; Nächstes Zeichen, falls vorhanden
  31.         pop    cx            ; Stringlänge zurückholen
  32.         mov    ah,40h        ; DOS über Handle schreiben
  33.         mov    bx,1            ; Standardausgabegerät
  34.         mov    dx,OFFSET UmgedrehterString
  35.                         ; Zeiger auf den umgedrehten String
  36.         int    21h            ; String ausgeben
  37. Fertig:
  38.         mov    ah,4Ch        ; DOS-Funktion Programm beenden
  39.         int    21h            ; Programm beenden
  40.         END
  41.