Assembler-Seminaraufgabe SS98 (IA)

Entwickeln Sie - zuzüglich der funktionell identischen Hauptprogramme FASS (8086-Assembler) und FPAS (TurboPascal) als Testumgebung - ein allgemein verwendbares Unterprogramm FORMULAR zur Berechnung des Wertes eines "Integer-Ausdrucks". Dabei sollen die Operatoren + , - , * , DIV , MOD , ( , ) , AND , OR , XOR , NOT , SHR und SHL im Wertebereich von -2147483648 bis 2147483647 ("longint") unterstützt werden. Das Unterprogramm erhält den "Integer-Ausdruck" als Zeichenkette und liefert den Wert des "Integer-Ausdrucks" als Zeichenkette sowie den Status der Berechnung als booleschen Wert. Zur Verdeutlichung der Aufgabenstellung möge der nachfolgende Ausschnitt des Hauptprogramms FPAS dienen :

program fpas;
...
var s1,s2:string;
    b:boolean;
...
function formular(var is:string; var os:string):boolean;
{$L formular.obj}
...
begin
  ...
  s1:=´(1 + 2) * (3 + 4) DIV 5´;
  b:=formular(s1,s2);
  writeln(b,s2); { TRUE4 }
  s1:=´(1 + 2) * (3 + 4) / 5´;
  b:=formular(s1,s2);
  writeln(b,s2); { FALSE }
  ...
end.

Gemäß den Konventionen von Borland TurboPascal werden die Parameter und die lokalen Variablen der Unterprogramme auf dem Stack abgelegt.

Die Testumgebung (Hauptprogramme FASS und FPAS) soll neben der interaktiven Kommunikation über die Standardeingabe und -ausgabe auch die Verarbeitung der Kommandozeile beinhalten. Zur Verdeutlichung dieser Option möge das nachfolgende Beispiel dienen :

C:\>Fxxx (1 + 2) * (3 + 4) DIV 5
4
C:\>Fxxx (1 + 2) * (3 + 4) / 5
Syntax Error

Zur weiteren Information dienen insbesondere folgende Quellen :

  • Assembler-Vorlesung
  • Beispielprogramme auf RZ1/DATA:HANDOUT\SOFTWARE\ASS\PTL
  • Interrupt-Liste auf RZ1/DATA:HANDOUT\SOFTWARE\ASS\PTL\INTX
  • Interrupt-Liste von Ralph Brown

    Die Programme sollen unter 80x86-Assembler (Microsoft MASM oder Borland TASM) und TurboPascal (Version 6.x/7.x) auf einem beliebigen Rechnersystem entwickelt werden. Als Zielkonfiguration ist ein Personalcomputer (PC) gemäß Intel-Architektur (>= 8086) unter Microsoft DOS (>= Version 5.0) gefordert.

    In dieser Seminaraufgabe sind vordefinierte Module oder Makros nicht erwünscht; davon ausgenommen sind selbstverständlich alle während der Bearbeitung dieser Seminaraufgabe erstellten Module und Makros sowie alle während der Vorlesung besprochenen Beipielprogramme.

    Die Testumgebung (Hauptprogramme FASS und FPAS) muß auf den DOS-PC´s im RZ2 sowie auf den WinNT-PC´s im RZ1 bzw. RZ3 lauffähig sein.

    Spätester Abgabetermin für Programm und Dokumentation ist der 7.12.1998. Für verspätete Abgaben gilt folgende Regelung : Pro Tag Verspätung (incl. Sonnabende und Sonntage) werden pauschal 5% der erreichbaren Punktzahl abgezogen (z.B. erreichbare Punktzahl = 100, erreichte Punktzahl = 80, Abgabe am 9.12.1998 (d.h. zwei Tage zu spät) => bewertete Punktzahl = 70)

    Im Rahmen der letzten drei Seminaraufgaben (WS96/97, SS97 und WS97/98) wurde versuchsweise ein "Newsletter-Service" eingeführt. Da die Testphase positiv verlief, biete ich diesen Service auch für die aktuelle Seminaraufgabe an. Interessenten/-innen lassen sich bitte durch Angabe ihrer eMail-Adresse unter wol@fh-wedel.de registrieren. Als Bestätigung der Registrierung werden die Newsletter der letzten Seminaraufgabe im ASCII-Format versandt.

    Ansprechpartner : Birger Wolter

    Anhang :

  • Assembler-Seminaraufgabe WS96/97 (IA) : Seite 1, 2, 3
  • Newsletter Assembler-Seminaraufgabe WS96/97 : 1, 2, 3, 4, 5, 6, 7
  • Assembler-Seminaraufgabe SS97 (IA) : Seiten 1-2
  • Newsletter Assembler-Seminaraufgabe SS97 : 1, 2, 3, 3a, 3b, 3c
  • Assembler-Seminaraufgabe WS97/98 (IA) : Seiten 1-2
  • Newsletter Assembler-Seminaraufgabe WS97/98 : 1, 2, 3, 4