Rechnerarchitektur

Hallo,
ich weiß nicht ob das hier das reinpasst, aber unterforum Rechnerarchitektur gibts hier nicht.

wer kann mir sagen, was der rechner bei jedem eizelnen schritt genau macht? (zumindest bei den ersten 4-5 schritten)

iload arg1
dup
iload arg2
isub
iflt l0001
l0001: iload arg3
dup
iload arg2
isub
iflt l0002
iload arg2
l0002: ireturn

dazu würde ich wissen was der rechner genau bei Pipelining bei folgenden schritten macht:
Fetch, Decode, Execute, Write

Vielen dank

Auch hallo.

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)

iload arg1
dup
iload arg2
isub
iflt l0001
l0001: iload arg3
dup
iload arg2
isub
iflt l0002
iload arg2
l0002: ireturn

dazu würde ich wissen was der rechner genau bei Pipelining bei
folgenden schritten macht:
Fetch, Decode, Execute, Write

Und für welchen Prozessor(typ) wurde der Code geschrieben ?
Rein naiv gelesen werden hintereinander mehrere Argumente gelesen…

HTH
mfg M.L.

Hi,

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 …

Hallo Fragewurm,

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

MfG Peter(TOO)

Hallo Fragewurm,

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.

MfG Peter(TOO)

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

sorry, du hast recht

ich habe dazwischen ireturn vergessen.

also muss es so lauten:

iload arg1
dup
iload arg2
isub
iflt l0001
ireturn
l0001: iload arg3
dup
iload arg2
isub
iflt l0002
iload arg2
l0002: ireturn

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.

Hallo Fragewurm,

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