Hallo,
ich weiß nicht ob das hier das reinpasst, aber unterforum
Rechnerarchitektur gibts hier nicht.
Wenn man den Code so sieht, passt ‚Programmiersprachen allgemein‘ wohl besser. Es sei denn, man erfährt die Programmiersprache des 'Assembler’ierten Programms:wink:
wer kann mir sagen, was der rechner bei jedem eizelnen schritt
genau macht? (zumindest bei den ersten 4-5 schritten)
Und für welchen Prozessor(typ) wurde der Code geschrieben ?
Rein naiv gelesen werden hintereinander mehrere Argumente
gelesen…
ich weiß nicht ob da große unterschiede gibt, aber sagen wir es wurde für PowerPC geschrieben.
dass hier mehrer argumente hintereinander gelesen werden, ist wohl klar - beantwortet aber leider meine frage nicht so recht …
Und für welchen Prozessor(typ) wurde der Code geschrieben ?
Rein naiv gelesen werden hintereinander mehrere Argumente
gelesen…
ich weiß nicht ob da große unterschiede gibt, aber sagen wir
es wurde für PowerPC geschrieben.
Wenn du es genau wissen willst, musst das auch genau angeben.
Auf Assembler-Ebene ist nichts genormt. Selbst unterschiedliche CPU-Modelle vom selben Hersteller können unterschiedliche Befehlssätze haben.
Also wenn’s genau sein soll, dann besorge dir das Programming Manual zur entsprechenden CPU.
dass hier mehrer argumente hintereinander gelesen werden, ist
wohl klar - beantwortet aber leider meine frage nicht so recht
Irgendwie sieht das ganze nach Forth aus, zumindest werden die Daten über einen Stack und nach UPN verarbeitet.
Allerdings kann ich in den Zeilen:
iflt l0001
l0001: iload arg3
keinen grossen Sinn erkennen ?!?!
iflt interprtiere ich is „IF Less Than“, aber es würde ja in jedem Fall beim Label l0001: weitergearbeitet ???
dazu würde ich wissen was der rechner genau bei Pipelining bei
folgenden schritten macht:
Fetch, Decode, Execute, Write
WAS willst du wissen ??
Was Fetch, Decode, Execute, Write machen oder wie das in der Pipeline realisiert wird ??
Fetch ist der Speicherzugriff um den Opcode einzulesen. Decode ist ein interner Vorgang, bei welchem der Opcode dekodiert wird und z.B. an die entsprechenden Untereinheit weitergeleitet wird. Execute ist dann die eigentliche Ausführung des Befehls. Write ist dann eine Schreib-Operation auf den Speicher.
Du hast recht, aber von den Programming Manual habe ich wenig verstanden, deswegen wollte ich euch hier fragen, was bei diesen befehlen der rechner genau macht.
es wäre gut wenn man mir sagen könnte wie es unter PowerPC und IJVM aussehen sollte.
Du hast recht, aber von den Programming Manual habe ich wenig
verstanden, deswegen wollte ich euch hier fragen, was bei
diesen befehlen der rechner genau macht.
Genau steht das nur im Programming Manual. DORT ist festgehalten was jeder Befehl ganauch macht. z.B. welche Flags wie gesetzt werden.
es wäre gut wenn man mir sagen könnte wie es unter PowerPC und
IJVM aussehen sollte.
Keine AHnung, ich kenne beides nicht und müsste auch erst die Handbücher durchlesen.
also muss es so lauten:
Grundsaätzlich scheint es sich um eine stack-orientierte Programmiersprache zu Handeln. Also jeder, der mit FORTH oder den HP-Taschenrechnern mit UPN umgehen kann, sollte keine grundsätzlichen Probleme mit dem Code haben.
Der STack ist ein LIFO. Das oberste Element wird meist als TOS (TopOfStack) bezeichnet, das nächste ist dann TOS-1 …
Wird ein neues Element auf den Stack geschmissen rücken alle anderen eine STufe tiefer:
TOS-n = TOS-(n-1)
... = ....
TOS-2 = TOS-1
TOS-1 = TOS
TOS = NeuesElement
iload arg1 ; TOS = arg1
dup ; TOS-1 = arg1, TOS = arg1
iload arg2 ; TOS = arg2, TOS-1 = arg1, TOS-2 = arg1
isub ; TOS = arg1-arg2 (kann auch arg2-arg1 sein -\> Handbuch), TOS-1 = arg1
iflt l0001 ; Wenn TOS return
ireturn
l0001: iload arg3 ; TOS = arg3, ......
dup
iload arg2
isub
iflt l0002
iload arg2
l0002: ireturn
MfG Peter(TOO)
P.S. Du solltest dich mal Sachkundig machen, wozu die SHFT-Taste dient !!