knirschke
Goto Top

Arithmetisch Logische Einheit (ALU) programmieren

Hallo !

Ist hier jemand, der weiß, wie man die ALU programmiert ?

Mit ihren Stacks und Registern ?

Möglichst in C...

Tia - knirschke

Content-Key: 167987

Url: https://administrator.de/contentid/167987

Printed on: April 24, 2024 at 12:04 o'clock

Member: Lochkartenstanzer
Lochkartenstanzer Jun 14, 2011 at 14:46:49 (UTC)
Goto Top
Zitat von @knirschke:

Hallo


..., wie man die ALU programmiert ?

Welche ALU? Eine Bestimmte? Irgendeine?

Möglichst in C...

Lies Dir mal den Qemu-Quellcode durch, da ist, unter anderem, auch eine X86-ALU drin?
Member: nxclass
nxclass Jun 14, 2011 at 20:49:08 (UTC)
Goto Top
soweit mir noch vom 387er bekannt ist, existiert nur ein Stackregister was als erstes mit den Werten geladen werden muss. danach wird das der jeweilige Befehl ausgeführt. Das Ergebnis befindet sich dann auch wieder in dem Stackregister.

x87 Opcodes findest du zB hier:
http://en.wikibooks.org/wiki/X86_Assembly/Floating_Point
http://board.flatassembler.net/download.php?id=2113
Member: Lochkartenstanzer
Lochkartenstanzer Jun 15, 2011 at 06:39:48 (UTC)
Goto Top
@nxclass

Ich glaube nicht, daß er die FPU meinte. Um die in C zu programmieren braucht man keine speziellen Befehle, das macht die Runtime-Library von C.
Member: knirschke
knirschke Jun 16, 2011 at 16:25:23 (UTC)
Goto Top
Danke für die Antworten.

Sorry, habe mich sehr ungenau ausgedrückt. Und falsch auch noch.
Es geht mir um die FPU, nicht wirklich die ALU.

In dem Programm, an dem ich z.Zt. arbeite, muss an zentraler Stelle
das Skalarprodukt aus zwei 3D-Vektoren gebildet werden, also zu je sechs Zahlen

a1,a2,a3 und b1,b2,b3 muss

e = a1*b1 + a2*b2 + a3*b3

gerechnet werden. - Und zwar pro Durchlauf locker 5*e+10 mal; das läppert
sich...

OK, werd' mir mal die links ansehen.

Das ich via C die FPU nicht so leicht ansprechen kann, habe ich geahnt.
Mal sehen - ist SEHR lange her, dass ich in Assembler programmiert habe -
auf einem ganz anderen System. Ist mir den Versuch wert...

Vielen Dank !

knirschke

Falls das zum Thema noch wichtig ist : meine CPU ist AMD Phenom II