Übung 1 am 27.04.2004 - (späteste) Abgabe am 11.05.2004 - in RZ2/3
Entwickle zunächst eine allgemein verwendbare Toolbox (Datentransfer via geeignet zu definierendem Register) zum
Ausgeben einer 16-Bit ganzen Zahl mit Vorzeichen als Dezimalzahl (linksbündig) über die Standardausgabe
sowie anschließend ein EXE-Programm - unter Benutzung der gerade entwickelten Toolbox - zum Berechnen und Ausgeben der einerseits gerundeten relativen Häufigkeit und andererseits absoluten Häufigkeit der einzelnen Buchstaben (ohne Unterscheidung zwischen Klein- und Großbuchstaben) über die Standardausgabe in einer zuvor über die Standardeingabe via DOS-Funktion 10 (dezimal) bzw. 0A (hexadezimal) eingelesenen Zeichenkette.
Beim Zählen bleiben alle Zeichen außer den Buchstaben a bis z und A bis Z unberücksichtigt.
Sollte Eure Lösung die eingelesene Zeichenkette 26-mal durchlaufen, so ist das genau 25-mal zu häufig :-)
Es entstehen zwei Quellcode-Dateien mit je einem Code-Segment. Das Stack-Segment (und Daten-Segment) wird (werden) in jener Quellcode-Datei definiert, die auch das Hauptprogramm beinhaltet.
Für das Aufrufen der Routine in der Toolbox kommen neben dem CALL-Befehl die beiden Assembler-Anweisungen EXTRN und PUBLIC zum Einsatz.
Noch ein Tipp zum Runden: Zwecks Entscheidung ob das ganzzahlige Ergebnis der Dision von Dividend durch Divisor noch um eins zu inkrementieren ist, wird der ganzzahlige Divisionsrest mit der Häfte des Divisors verglichen.
Der Vergleich sei durch ein Rundungsbeispiel verdeutlicht.
Das nachfolgende Dialogbeispiel möge die insgesamte Aufgabenstellung verdeutlichen :
Die Ausgangsformel ist schlecht, aber zum Glück sind Bruno und Bärli durch eine Sicherheitsnadel gesichert.
A 4% (4)
B 3% (3)
C 7% (6)
D 6% (5)
E 12% (11)
F 1% (1)
G 4% (4)
H 7% (6)
I 9% (8)
J 0% (0)
K 1% (1)
L 6% (5)
M 2% (2)
N 7% (6)
O 2% (2)
P 0% (0)
Q 0% (0)
R 8% (7)
S 9% (8)
T 4% (4)
U 6% (5)
V 0% (0)
W 0% (0)
X 0% (0)
Y 0% (0)
Z 1% (1)