home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / coders / assembler-kurs / listings / listing2g.s < prev    next >
Text File  |  1977-12-31  |  1KB  |  37 lines

  1.  
  2. ; Listing2g.s
  3.  
  4. Anfang:
  5.     lea    THEEND,a0    ; gib in a0 die Start-Adresse
  6.     lea    START,a1    ; gib in a1 die End-Adresse
  7. CLELOOP:
  8.     clr.l    -(a0)    ; zähle 4 zu a0 dazu (long!), dann lösche das Long
  9.     cmp.l    a0,a1    ; ist a0 gleich a1? Sind wir also an der Adresse START?
  10.     bne.s    CLELOOP ; wenn nicht, kehre zu CLELOOP zurück...
  11.     rts        ; ENDE, zurück zum ASMONE
  12.  
  13. START:
  14.     dcb.b    40,$fe    ; GIB HIER 40 BYTES vom Typ $fe in den Speicher
  15. THEEND:            ; Dieses Label markiert das Ende der 40 Bytes
  16.  
  17.     dcb.b    10,0    ; Hier geben wir - grade mal aus Jux - 40 Nuller
  18.             ; in den Speicher
  19.  
  20.     end
  21.  
  22.  
  23. Dieses  kleine Programm macht den Speicher ab der Adresse in a0 sauber bis
  24. hin zur Adresse in a1: der Unterschied zu Listing2f.s besteht  darin,  daß
  25. hier  "rückwärts"  gegangen wird, im Gegensatz zum CLR (a0)+, hier wird am
  26. Ende gestartet und man kommt Schritt für Schritt zum Anfang. Macht ein AD,
  27. dann  könnt  ihr  es  überprüfen:  ihr  werdet  feststellen, daß bei jedem
  28. Durchgang  des   CLR   -(a0)   das   Register   a0   dekrementiert,   d.h.
  29. heruntergezählt,  wird,  bis es mit dem Wert in a1 gleich ist, also START.
  30. Überprüft dann auch mit M  START,  daß  der  "Putzvorgang"  auch  wirklich
  31. stattgefunden  hat.  Wenn  es  euch  interessiert, probiert auch das CLR.L
  32. -(a0) durch ein CLR.W -(a0) oder ein CLR.B -(a0) zu  ersetzen.  In  diesen
  33. Fällen werden jeweils Schritte zu 2 bzw. zu 1 Byte gemacht. Es werden also
  34. 20 bzw. 40 Durchgänge nötig sein, den Bereich zu löschen.
  35.  
  36.  
  37.