Wie Assembler in C++ einbinden?
-
Wie kann man den Assembler-Code in C++ einbinden.
Das, was der andere in dem Beitrag gemacht hat, funzt nicht:#include "Weiland.h"; int main() { int iZahl = 3; int *pZahl = &iZahl; cout<< pZahl; cout<<"\n"; __asm { model small data segment assume ds:data Gorges db 'G-Style rulezz','$' data ends code segment mov ax, offset seg data mov ds, ax mov ah, 09h mov dx, offset gorges int 21h mov ah, 01h int 21h mov ax, 4C00h inth code ends } return 0; }
???
thx
-
Der C++ Standard sieht das nicht vor. Mit welchem Compiler arbeitest du denn?
Wenn __asm {...} nicht funzt dann versuch doch mal asm("...")
-
Tjo, der Compiler erwartet im asm-Bereich nunmal wirklich nur Assembler Mnemonics und keinen Assembler-spezifischen Overhead.
Also alles, was kein Assembler-Opcode oder Sprungmarke ist muss raus.
zB. das hier:model small data segment assume ds:data Gorges db 'G-Style rulezz','$' data ends code segment
Vorsichtshalber weise ich nochmal darauf hin, dass in Win32/Konsolenanwendungen die DOS-Interrupts zum Absturz des Programms fuehren.
Ausserdem wird
dieser Teil hiermov ax, offset seg data mov ds, ax
so auch nicht funktionieren.