Stack-Verwaltung durch PUSH- und POP-Operationen history menue Letztmalig dran rumgefummelt: 16.10.13 21:23:33

ist wahrscheinlich fehlerfrei und kann unbedenklich verwendet werden

die beliebte alphabetisch sortierte Schnell-Liste

die beliebte numerisch sortierte Schnell-Liste

Allgemeine FLAG-Wirkung

FLAG-Wirkung auf OP-Code-Gruppen

Z80-Innenleben

Z80-Innenleben im CorelDraw 11-Format zum Download

Programmzustandstabelle Z80 vollständig zum Download im CoreDraw 11.0-Format

Aufgabe: Alle Register, einschließlich des Alternativregistersatzes sind mit markanten Werten zu laden - das Ergebnis ist durch Registeranzeige nachzuverfolgen!

Stackdokumentation

Lösungsalgorithmus: Der Stackpointer wird definiert gesetzt (bei uns 2100H). Alle 8-Bit Hauptregister der CPU werden geladen, anschließend auf den Alternativregistersatz umgeschalten, alle Werte der reihe nach auf dem Stack abgelegt (gesichert), die Register umgeschrieben (sie haben somit neue Inhalte, wie das auch bei Nutzung einer Subroutine geschehen würde), danach wird alles zurück geholt!! Nacherfolgtem Programmlauf kontrolliere man die Inhalte der Speicherplätze unterhalb 2100H - dort müssen die einzelnen Registerinhalte in der Folge des LIFO-Prinzips "abgestapelt" sein.

Anmerkungen zur Steuerung: wir demonstrieren das Retten der Register

Zeile Marke Block Adresse Hex-Code Assembler-Code Kommentar
  INIT ORG 2000H ;Adresse Programmbeginn
0001     2000H 31 00 21 LD SP, 2100H ;Stackpointer auf 2100H gesetzt
0002 FIRST 2003H 3E 11 LD A, 11H ;11H Inhalt Register A
0003 SECOND 2005H 01 33 22 LD BC, 2233H ;2233H Inhalt Registerpaar BC
0004 THIRD 2008H 11 55 44 LD DE, 4455H ;4455H Inhalt Registerpaar DE
0005   FOURTH 200BH 21 77 66 LD HL, 6677H ;6677H Inhalt Registerpaar HL
0006     200EH F5 PUSH AF ;
0007     200FH C5 PUSH BC ;
0008     2010H D5 PUSH DE ;
0009     2011H E5 PUSH HL ;
0010     2012H 08 EX AF ;Zugriff auf alternativ AF
0011     2013H D9 EXX ;Zugriff auf alternative Register
0012   FIRST 2014H 3E 88 LD A, 88H ;88H Inhalt Register A'
0013   SECOND 2016H 01 AA 99 LD BC, 99AAH ;99AAH Inhalt Registerpaar B'C'
0014   THIRD 2019H 11 CC BB LD DE, BBCCH ;BBCCH Inhalt Registerpaar D'E'
0015   FOURTH 201CH 21 EE DD LD HL, DDEEH ;DDEEH Inhalt Registerpaar H'L'
0016   FITH 201FH DD 21 22 11 LD IX, 1122H ;1122H Inhalt Register IX
0017   SIXTH 2023H FD 21 44 33 LD IY, 3344H ;3344H Inhalt Register IY
0018     2027H F5 PUSH AF ;
0019     2028H C5 PUSH BC ;
0020     2029H D5 PUSH DE ;
0021     202AH E5 PUSH HL ;
0022     202BH DD E5 PUSH IX ;
0023     202DH FD E5 PUSH IY ;
0024 FIRST 202FH 3E FF LD A, FFH ;FFH Inhalt Register A
0025 SECOND 2031H 01 EE DD LD BC, DDEEH ;DDEEH Inhalt Registerpaar BC
0026 THIRD 2034H 11 CC BB LD DE, BBCCH ;BBCCH Inhalt Registerpaar DE
0027   FOURTH 2037H 21 AA 99 LD HL, 99HHH ;99AAH Inhalt Registerpaar HL
0028   FITH 203AH DD 21 00 00 LD IX, 0000H ;0000H Inhalt Register IX
0029   SIXTH 203EH FD 21 FF FF LD IY, FFFFH ;FFFFH Inhalt Register IY
0030     2042H FD E1 POP IY ;
0031     2044H DD E1 POP IX ;
0032     2046H E1 POP HL ;
0033     2047H D1 POP DE ;
0034     2048H C1 POP BC ;
0035     2049H F1 POP AF ;
0036     204AH 08 EX AF ;Zugriff auf Hauptregister AF
0037     204BH D9 EXX ;Zugriff auf Hauptregister
0038     204CH E1 POP HL ;
0039     204DH D1 POP DE ;
0040     204EH C1 POP BC ;
0041     204FH F1 POP AF ;
0042     2050H 76 HALT ;

Beispiel für eine kleine Anweisungstabelle in vollständiger Mnemoic-Codierung



zur Hauptseite
© Samuel-von-Pufendorf-Gymnasium Flöha © Frank Rost im März 2007

... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-)

„Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“

Diddi Hallervorden, dt. Komiker und Kabarettist