C und Assembler ein widerspenstiges Paar

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

C und Assembler ein widerspenstiges Paar

Beitrag von Macros »

HI,

nach langer Zeit melde ich mich auch mal wieder mit einer Frage.
Da ich PB inzwischen aus dem FF beherrsche geht es diesmal um etwas anderes:

Die Schnittstelle zwischen C und Assembler.
Gezwungenermaßen NASM und 32 Bit.

Ich soll eine Funktion (in Assembler) schreiben, die Werte aus zwei Eingabearrays nimmt, und daraus dann Werte errechnet,
die in zwei Ausgabearrays geschrieben werden. Alles vom Typ Float.
Ich will euch natürlich nicht nach einer kompletten Lösung fragen, aber da es schon an den Anfängen hapert, wäre ich sehr dankbar,
wenn jemand mir einfach nur einen Code zeigen Könnte, der den ersten Wert aus Array 1 und 2 nimmt, und ihn in Array 3 schreibt.
Die Rechenfunktion bekomme ich dann (hoffentlich) schon hin ;)

Die Funktion ist in C so vordeklariert:
extern void calc(float *, float *, float *,float *);

Den kompletten C Code findet ihr hier:
http://web254.rshost.de/PB/CASM/read.h
http://web254.rshost.de/PB/CASM/read.c

Das Assemblerfile:

Code: Alles auswählen

section .text 			;Code
global calc
calc:
;Insert Code here				
  RET			; Return to main program

section .data
  e_0: dq 8.854187817E-12
  e_q: dq 4.0
  e_t: dq 2.0
Und mein makefile sowie eine ui.txt (Eingabedatei):
http://web254.rshost.de/PB/CASM/Makefile
http://web254.rshost.de/PB/CASM/ui.txt

Ich geb auch gerne Hilfe etwas einzurichten.
Für Windows benötigt die Funktion sowie das label "calc" im Assembler File einen führenden unterstrich soweit ich weiß.
Unter Linux muss man nasm (sowie unter Ubuntu das Paket lib32z1-dev
in einem 64 Bit System) installieren.

Grüße
Macros
Bild
Benutzeravatar
ralle
Beiträge: 88
Registriert: 29.11.2004 17:50
Wohnort: Berlin

Re: C und Assembler ein widerspenstiges Paar

Beitrag von ralle »

Keine direkte Lösung, aber vielleicht hilft dir das hier weiter:
http://www.ibm.com/developerworks/linux ... -nasm.html

Unter dem Punkt "Functions, external routines, and the stack" wird erläutert, wie man ein Array aus Integern sortiert. Vielleicht kannst damit was anfangen.

mfG
Ralle
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Re: C und Assembler ein widerspenstiges Paar

Beitrag von Macros »

Danke dir Ralle,
Das Dokument ist ja fast ein Assembler Tutorial.

Inzwischen hab ich das Problem nach langen rumärgern selbst lösen können.
Wenn ich etwas länger Zeit habe (vermutlich erst in einer Woche)
werde ich mal ein kurzes Tutorial veröffentlichen, wie man sich eine Bibliothek in Assembler schreiben kann.
Bild
Antworten