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).