Hello World auf Assemblerisch
-
so
wollte mal anfangen asm zu lernen damit ich meine led's am parallelport steuern kann
bloß häng ich irgendwie schon an hello world
hier mal mein codeorg 100h START: mov ah,09h mov dx, offset Hello INT 21h ENDE: mov ah,4ch INT 21h Hello db 'Hello World !!',10d,13d,'$' END START
und hier die fehler
bla.asm:4: error: comma or end of line expected bla.asm:9: error: expression syntax error bla.asm:10: error: parser: instruction expected
habs genauso gemacht wie in dem tutorial aber irgendwie funzt das net
-
Du verwendest ja NASM. Aber "offset irgendwas" is z.B. TASM-Syntax. Mit NASM muss es so aussehen:
org 100h section .data Hello db "Hello World!!",0Dh,0Ah,"$" section .text mov ah,09h mov dx,Hello ;lea dx,[Hello] int 21h mov ah,4Ch int 21h
Dann assemblieren mit z.B. "nasm -fbin -ohello.com hello.asm"
mov dx, offset Hello
Das soll ja die Effective Adress in dx laden. Aber bei NASM reicht es schon, nur "mov dx, Hello" zu schreiben um das zu erreichen.
Alternativ könntest du auch "lea dx,[Hello]" schreiben. Das macht das gleiche. LEA steht für "Load effective adress", da brauchst du dann allerdings diese eckigen Klammern darum, denn sonst ist es ja doppeltgemoppelt.
-
Hallo
Ich versuche seit einiger Zeit unter Linux Assembler Programme zuerstellen da ich bis jetzt nur mit TASM geschrieben habe, habe ich auch eine Frage zum NASM:In TASM schreibe ich z.B.
Hallo db "Hallo, Test"mov [Hallo+1],65
wie schreibe ich sowas in NASM?
mfg und thx im Voraus
Noob
-
mov byte [Hello+1],65