Bestimmen der größten einer Reihe von Hexadezimalzahlen history menue Letztmalig dran rumgefummelt: 13.07.20 11:38:44

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 mit Register sowie Hauptspeicher

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

Z80-ASide-Assembler

Der LC-80 Emulator zum direkten Starten

Aufgabe 5: Die größte einer Reihe von Zahlen  ist zu bestimmen. Die Anzahl der Daten ist auf Adresse 2041H angegeben, die Zahlenfolge beginnt auf Adresse 2042H und auf dem Speicherplatz 2040H ist die größte abzulegen. Die Zahlen sollen als vorzeichenlose BCD-Zahl vorliegen!!

Lösungsalgorithmus: Unter der Annahme, die erste Zahl sei schon die größte wird solange mit dem jeweils folgenden Element verglichen. Findet sich ein Element, welches größer ist, so wird dieses zum angenommenen größten, bis sich evtl. ein weiteres findet. Ist dies für alle Elemente der Menge durchgeführt, wird abschließend das größte auf den Speicherplatz entsprechend der Aufgabenstellung geschrieben.

Anmerkungen zur Steuerung: es müssen keine Registerinhalte gerettet werden

Marke Adresse Hex-Code Assembler-Code Kommentar
ORG 2000H ;Adresse Programmbeginn
2000H 21 40 20 LD HL, 2040H ;Adresse erster Operand
2003H  46 LD B, (HL)  ;erster Operand in A
2004H 96 SUB A ;A loeschen - 00H setzen ;-)
NEXT:  2005H 23 INC HL ;Adresse naechste Zahl
2006H BE CP (HL) ;neue Zahl Maximum
2007H D2 0B 20 JPNC  ZAEHL ;Sprung, wenn nicht CARRY
  200AH 7E LD A, (HL) ;neue Zahl nach A
FERTIG: 200BH 10 F8 DJNZ NEXT ;Wiederholung bis Anzahl
200DH 32 40 20 LD (2040H), A ;groesste auf 2040H ablegen
200CH  76 HALT ;Programm STOPP
EQUATE
2041H ORG 2041H ;DATEN Adresse
2041H  05 DEFB 005H ;Anzahl der Zahlen
2042H 67 DEFB 067H ;erste Zahl
2043H 79 DEFB 079H ;zweite Zahl
2044H 15 DEFB 015H ;dritte Zahl
2045H E3 DEFB 0E3H ;vierte Zahl
2046H 72 DEFB 072H ;fuenfte Zahl

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

 

Durch den COMPARE-Befehl, welcher die FLAGs beeinflusst, können die folgenden Vergleichsoperationen durchgeführt werden, wobei ‚A’ den Inhalt des Akkumulators und ‚X’ den Vergleichsoperanden darstellt.

gleich X ist Z = 1 (Z entspricht ZERO-FLAG)
A ungleich X ist Z = 0 (Z entspricht ZERO-FLAG)
A kleiner X ist CY = 1 (CY entspricht CARRY-FLAG)
A größer, gleich X ist CY = 0 (C entspricht CARRY-FLAG


zur Hauptseite
© Samuel-von-Pufendorf-Gymnasium Flöha © Frank Rost im Januar 2006

... 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