Zitat Zitat von oberallgeier Beitrag anzeigen
BREQ k Branch if Equal if (Z = 1) then PC ← PC + k + 1 None 1/2[/CODE]Branch und Skip Befehle nicht genau für so ein "else" geeignet?
Jetzt zäumst du aber das Pferd von Hinten auf!

Bedingte Verzweigungen gab es schon bei der "Analytical Engine" (1837) von Babbage. Allgemeine Probleme lassen sich nur mit bedingten Verzweigungen lösen.
Lady Ada hat dann die Assembler-Sprache erfunden und z.B. der Begriff Mnemonic stammt von ihr.

Das Vorgänger-Modell (die Differenzmaschine, angefangen 1822) war noch ein reiner Number-Cruncher. Da konnte man nur eine mathematische Formel Programmieren, welche dann von der Maschine abgearbeitet wurde.

MfG Peter(TOO)

- - - Aktualisiert - - -

Hallo Mxt,
Zitat Zitat von Mxt Beitrag anzeigen
Wahrscheinlich ja. Die Aussage "kein else" ist ja eventuell auch wieder Architekturabhäng. Manchal gibt es nur ein "jump if zero" und "jump if not zero", da muss ein if else dann natürlich etwas umgebaut werden.
Nein, man brauch nur ein GOTO
Code:
10  IF <Bedingung> GOTO 100
20  REM hier ist der ELSE-Zweig
.
.
90  GOTO 200
100 REM hier beginnt der IF-Zweig
.
.
200 REM hier geht das Programm weiter
IF- und ELSE-Zweig kann man vertauschen wenn man die Bedingung invertiert.

Bei manchen CPUs können bedingte Sprünge aber z.B. nur +/- 127 Byte weit springen. Dann muss man bei grösseren Zweigen auch mit GOTO nachhelfen.
Code:
10  IF <Bedingung> GOTO 30
20  GOTO 100
30  REM IF-Zweig
.
.
90  GOTO 200
100 REM ELESE-Zweig
.
.
200 REM hier geht das Programm weiter
MfG Peter(TOO)

- - - Aktualisiert - - -

Hallo Un,
Zitat Zitat von Unregistriert Beitrag anzeigen
"goto" wurde meiner Meinung nach nur in höhere Programmiersprachen aufgenommen um den Maschinensprachlern den Aufstieg zu erleichtern und wurde später nicht entfernt, um am Vorkommen im Sourcecode auf den erstn Blick den Anfängerauthor vom Fortgeschrittenen unterscheiden zu können
Schau die mal ein altes BASIC an, so 1970 oder älter.

Da gab es nur GOSUB und noch keine Prozeduren.
Alle variablen waren global.
Zeilen-Nummern waren zwingend und man konnte nur an Zeilennummern springen.

Um Platz für Änderungen zu haben, hat man standardmässig die Zeilen in 10er Abständen nummeriert. Einen RENUMBER-Befehl gab es Anfangs nicht. Musste man zu viele Zeilen einfügen musste alle GOTOs von Hand anpassen


Abgesehen davon:
Strukturiert und Objektorientiert programmieren konnte man auch schon in Assembler. Allerdings lag das einzig und alleine in der Verantwortung des Programmierers.

MfG Peter(TOO)