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-ID: 167987

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

Ausgedruckt am: 25.11.2024 um 14:11 Uhr

Lochkartenstanzer
Lochkartenstanzer 14.06.2011 um 16:46:49 Uhr
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?
nxclass
nxclass 14.06.2011 um 22:49:08 Uhr
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
Lochkartenstanzer
Lochkartenstanzer 15.06.2011 um 08:39:48 Uhr
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.
knirschke
knirschke 16.06.2011 um 18:25:23 Uhr
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