Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Assembler Prog in Vc++

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
02.05.2003, 11:37 Uhr
~Jack37a
Gast


Hi !

Ich habe noch nie ein Assembler-Programm in VC++ implementiert. Nun bin ich auf ein Programm gestoßen, welches ich gerne unter VC++ ausprobieren würde. Ich vermute, es ist eine Funktion geschrieben in Assembler. Aber wie rufe ich eine Funktion in Assembler auf ? Vielleicht kann mir jemand von euch helfen.

;extern "C" long double _cdecl exp (double x)
_asm
{
_exp PROC NEAR
PUBLIC _exp
FLDL2E
FLD QWORD PTR [ESP+4] ; x
FMUL ; z = x*log2(e)
FIST DWORD PTR [ESP+4] ; round(z)
SUB ESP, 12
MOV DWORD PTR [ESP], 0
MOV DWORD PTR [ESP+4], 80000000H
FISUB DWORD PTR [ESP+16] ; z - round(z)
MOV EAX, [ESP+16]
ADD EAX,3FFFH
MOV [ESP+8],EAX
JLE SHORT UNDERFLOW
CMP EAX,8000H
JGE SHORT OVERFLOW
F2XM1
FLD1
FADD ; 2^(z-round(z))
FLD TBYTE PTR [ESP] ; 2^(round(z))
ADD ESP,12
FMUL ; 2^z = e^x
RET

UNDERFLOW:
FSTP ST
FLDZ ; return 0
ADD ESP,12
RET

OVERFLOW:
PUSH 07F800000H ; +infinity
FSTP ST
FLD DWORD PTR [ESP] ; return infinity
ADD ESP,16
RET

_exp ENDP
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.05.2003, 11:57 Uhr
~Heiko
Gast


Ich habe damit zwar auch noch nicht viel gemacht, aber das mit dem Funktionaufrufen sollte eigentlich genauso funktionieren wie in C

z.B.

C++:
void outport(UINT portid, UINT value){
  __asm mov edx,portid;
  __asm mov eax,value;
  __asm out dx,ax;
}



Diese Funktion schreibt auf den Port portid den Wert value
Aufruf also wie gewohnt in C mit: outport(0x0378,0x55);
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.05.2003, 23:39 Uhr
~jack37a
Gast


Hi !

vielen dank!

Der Compiler erkennt Qword und Dword nicht. Vielleicht muss ich erstmal einige header datein includen, aber ich weiss nicht welche. Hat jemand ein gutes assembler VC++ tutorial für mich ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: