Assembler in C++ .NET?



  • Hallo!

    Ich möchte gerne Assemblercode in C++ anwenden. Ich habe C# .NET und dort kann ich es leider nicht, deswegen habe ich beschlossen wieder mehr auf C++ zu gehen. Nun, es gibt zwar _asm was ja so wie mir jemand sagte auch in C++ .NET funktioniert und man damit den Code direkt reinprogrammieren kann. Ich habe mal ein Beispiel wie ich das konkret meine:

    #include<stdio.h>
    extern int ASMUP(int,int,int);
    void main()
    {
    int ergebnis;
    
    ergebnis = ASMUP(10,5,1);	/* Subtrahiere */
    printf("\nErgebnis: %d\n",ergebnis);
    ergebnis=ASMUP(0,0,2);		/* Größe Speicher bestimmen*/
    printf("\nHauptspeichergröße: %d\n",ergebnis);
    }
    	PUBLIC		_ASMUP
    _TEXT	SEGMENT WORD PUBLIC 'CODE'
    	ASSUME CS:_TEXT
    _ASMUP	PROC
    	push bp
    	mov bp,sp
    	mov ax,[bp+8]
    	cmp ax,1
    	je Subtahiere
    	cmp ax,2
    	je Hauptspeicher
    	jmp EndeUp
    Subtrahiere: mov ax,[bp+4]
    	mov bx,[bp+6]
    	sub ax,bx
    	jmp EndeUp
    Hauptspeicher: int 12h
    EndeUp:	mov sp,bp
    	pop bp
    	ret
    _ASMUP	ENDP
    _TEXT	ENDS
    	END
    	END
    

    Dieses Programm liefert erst das ergebnis einer Subraktion und danach die Hauptspeichergröße. Geht das jetzt so auch in C++ .NET oder nur in früheren Visual C++ Versionen, wie Visual C++ 6.0?

    Code-Hacker

    PS: Sorry für den etwas verrutschten Code...



  • 1. Dieser Code ist hier im falschen Forum.
    2. Er funzt so gar net, vielleicht liest Du dir mal in der MSDN durch, wie man Assembler in VC++ einbindet, sind nur 3 oder 4 Zeilen.
    3. Solltest Du unter Win32 arbeiten, vergiss den Code gleich ganz.



  • Tut mir leid. Das mit dem falschen Forum habe ich zu spät bemerkt.
    Das war ein beispiel für eine Konsolenanwendung. Ich habe leider nur dieses Beispiel und das ist auch für C, tut mir auch leid das ich das nicht dazugeschrieben habe.
    Kannst du mir vielleicht den Link zur Library schicken wo das steht, wie man Assemblercode in VC++ (.NET) benutzt? Ich finde das nicht. Kann ich auch Interrupts benutzen? Oder nur die ganz normalen Befehle wie bspw. Mov, sub, add, mul, div, xchg, cmp, jmp....
    Ansonsten formuliere ich meine Frage nochmal neu:
    Kann man Assembler auch in C++ .NET oder nur in vorigen Versionen benutzen? Ich muss das mit dem .NET wissen, ansonsten würde ich mir ne andere Version holen.

    Code-Hacker


Anmelden zum Antworten