Einbinden von ASM-Code in MS Visual C++



  • hi,wie bekomme ich zum beispile folgendes in visual c++ zum laufen?

    DATA SEGMENT WORD 'CODE'
    Msg BD 13,10,'Satz etc!',7,13,10,'$'
    DATA ENDS

    CODE SEGMENT WORD 'CODE'
    ASSUME CS:CODE, DS:DATA
    Start: mov ax,DATA
    mov ds,ax
    mov dx,OFFSET Msg
    mov ah,009h
    int 021h
    mov ah,04Ch
    int 021h

    CODE ENDS

    END Start

    Ich habs mit __asm { .....} __asm versucht, geht aber nicht?!?! was mach ich falsch....ich mach nämlich gerade die ersten schritte mit assembler programmierung!! DANKE für die hilfe!!



  • p.s.: der smilie ist ausversehen!!!:-)



  • dann benutz Code-Tags und du bekommst keinen Smilie 🙂

    imho kannst du den Code gar nicht im MSVC++ benutzen, da man glaub ich beim MSVC++ keine interrupts benutzen darf (kann mich auch irren)



  • Ja, bei solchen Codes ist es manchmal hilfreich, die Smilies beim Erstellen eines Beitrags zu deaktivieren 😉

    Als naechstes: Du benutzt den VC++ von Mickersoft?
    Dann muesste das doch eigentlich mit __asm{...}; gehen...
    😕
    Aber mal ganz abgesehen vom Syntax des C++ Inline Asm, kannst du dieses Programm eh nicht im VC++ laufen lassen, da die 32Bit Windows-Konsole keine Interrupts unterstuetzt.



  • Hallo,
    Der Interrupt geht in MS-VC wie schon gesagt nicht. aber versuch mal

    _asm
    {
        mov eax,00000000
        usw, usw
    }
    

    Bei mir geht inline Assembler nur mit einem _ vor asm, bei 2 kommt nur undefinierte funktion oder so ein ähnlicher Fehler.

    mfg
    Noob



  • Wie wird beim VC++ eigentlich mov esi,offset ... umgesetzt? Wenn ich da sowas reinschreibe, dann sagt der Compiler nur "Ungueltiger Operandentyp" 😕


Anmelden zum Antworten