Probleme mit dem allseits beliebten NASM



  • Hallo Leute
    Ich wollte gerade ne COFF OBJ-File linken und da kam. Ein Entrypunkt gefunden.
    Der Code:

    ;do nothing
    section .text
            message db "Hello World",10,13,"$"
            global __start
    __start:
            mov edx,message
            mov ah,0
            int21
    

    laut nasm doc ist __start: der Entrypoint..
    Was ist zu tun?



  • und wieso kann ich folgenden Code nicht mit nasm übersetzen?

    .model small
    .data
    message db "Hallo World",10,13,"$"
    
    .code
    .startup
    lea dx, message
    mov ah,9
    int 21h
    .exit
    end
    

    gibt's da keinen Schalter füs einen Doskompatibeln und codetechnisch MASM kompatiblen assemblen?



  • Hi.

    Original erstellt von stealth00:**
    Ich wollte gerade ne COFF OBJ-File linken und da kam. Ein Entrypunkt gefunden.**

    Gehe ich recht in der Annahme, dass das "Kein Entrypoint gefunden" heissen sollte?

    Wenn ja:
    So weit ich das in der NASM Doc. gelesen habe, kann in COFFs kein Entrypoint definiert werden. Fuer normale .obj-Dateien wird der Entry-Point durch das reservierte Symbol "..start" festgelegt.
    Nun kannst du dir also aussuchen, ob du nun die prozedur in der Assemblerdatei erst aus deinem C-Code heraus aufrufst oder stattdessen alles zu .obj-dateien compilierst und anschliessend linkst.

    Original erstellt von stealth00:**
    gibt's da keinen Schalter füs einen Doskompatibeln und codetechnisch MASM kompatiblen assemblen?**

    Noe, NASM ist nunmal nicht MASM.
    Was meinst du mit "Doskompatibeln"?
    Es gibt eine DOS-Version von NASM, falls du Programme fuer DOS erstellen willst...



  • ok, thx..
    das mit coff linken etc ist hilfreich..
    Hab inzwischen schon ein bisschen rumgespielt und probiere z.Z. hauptsächlich die Probesachen mit den MASM32 aus..
    Der funzt realativ gut...


Anmelden zum Antworten