Problem mit erstem Programm:



  • Hi, ich versuch mich gar am nasm, allerdings hab ich ein Problem mit dem programm:

    section .text
     global start
     start:
     mov ax, data
     mov ds, ax
    
     mov dx, hello
     mov ah, 09h
     int 21h
    
     mov al, 0
     mov ah, 4Ch
     int 21h
    
    section .data
     hello: db 'Hello World!', 13, 10, '$'
    

    assemblieren geht, linken mit alink geht auch, allerdings gibts die fehler meldung, dass kein entrypoint und kein stack definiert sind. Ich glaub am entry point liegts, allerdings find ich da keine Lösung.
    So ruf ichs auf:

    nasm bsp1.asm -fobj -o bsp1.obj

    alink bsp1.obj

    Das Programmm gibt dann nichts aus, und beendet sich sofort wieder.
    Hat da jemand eine Idee ? Danke schonmal !



  • Fuer den entrypoint kannst du es mal mit ..start probieren und das global weglassen.
    Fuer den Stack machst du ein Segment mit CLASS=STACK dazu, dann sollte das gehen.
    BTW: Das Programm ist genau so gecshrieben, dass es sich gleich nach der Textausgae beendet. zB. in WinXP schliesst sich das Fenster dann eben sofort wieder.



  • Super, danke.
    Wieso gerade ..start? In all den Tutorials bzw. MiniBeispielen, die den Nasm behandeln wirds komplett adners gemacht, und so funktionierts dann eben auch nicht..

    Kennst du zufällig eine gute Seite/Tutorial/sonstwas wo man was lernen kann? Danke nochmals für die Hilfe!



  • Je nach OS laeuft das eben etwas anders. So wie in deinem 1. Code wuerde man es zB. eher fuer Windows-Programme machen.
    Gute Tutorials findest du in den FAQ (allerdings nur wenige zu NASM). Einige gute Hinweise bietet auch die Hilfe zu NASM - die mal gelesen zu haben, kann beim Verwenden von NASM bestimmt nicht schaden (das mit dem ..start steht da zB. auch drin). 😉


Anmelden zum Antworten