Tasm "Hello World" auf Konsole



  • Hi,
    nachdem ich mir verschiedene Hochsprachen angeschaut habe und mittlerweiel ganz gut OOP und funktional programmieren kann, würde ich gerne mal in ASM reinschnuppern und hab dazu auch einiges gelesen. Leider krieg ich es einfach nicht hin mit Tasm (5.x, war beim C++ Compiler dabei) etwas in einer Win32 Konsole auszugeben.
    Könnte bitte jemand den Quellcode für TASM posten mit dem ich in einer Win32 Console einen "Hello World" String ausgeben kann.

    mfg
    AsmNoob



  • Sollte das ganze nun ein DOS oder ein Win32-Programm werden?



  • Das Programm sollte ein Win32 Konsolenprogramm sien, dass ich mit Tasm32 und TLink32 asemblieren und linken kann.

    mfg
    AsmNoob



  • Wenn du was für die Console machen willst musst du mit TASM UND TLINK (ohne 32) arbeiten...

    Tutorials: http://www.robsite.de/tutorials.php?tut=assembly



  • @AsmNoob:

    Ein Beispiel:

    ;
    ; tasm32 /zn /ml /z DasProgramm.asm
    ;
    ; tlink32 -x -Tpe -ap -c -LD:\Tasm32\lib DasProgramm.obj
    ;
    .586
    
    .model flat, stdcall
    
    includelib import32.lib
    
    extrn GetStdHandle  						: near
    extrn WriteConsoleA 						: near
    extrn ExitProcess   						: near
    
    STD_INPUT_HANDLE    equ	-10
    STD_OUTPUT_HANDLE   equ -11
    STD_ERROR_HANDLE    equ -12
    
    .data
    
    hOut			dd  0
    
    iRead			dd  0
    
    szBuffer		db  81 dup(0)
    
    szWarte			db  13, 10, 'Eine feine Nachricht...', 13, 10, 13, 10
    iWarteEnde  	        db  0
    
    			align 4
    
    .code
    
    start:		        push STD_OUTPUT_HANDLE
    			call GetStdHandle
    			cmp  eax, -1
    			je   ende
    			mov  [hOut], eax
    
    			push 0
    			push offset iRead
    			push offset iWarteEnde - offset szWarte
    			push offset szWarte
    			push hOut
    			call WriteConsoleA
    
    ende:		push 0
    			call ExitProcess
    
    end  start
    

    Das Programm ist eine Win32-Anwendung und muss daher auch mit tlink32 gelinkt werden. Des Weiteren kommt hierbei natürlich auch tasm32 zur Anwendung. tasm und tlink(ohne 32) kommen bei DOS-Anwendungen zum Einsatz.

    Ciao...



  • Ob TASM, TASMX oder TASM32 verwendet wird, ist fuer HelloWorld-Programme erstmal ziemlich egal.
    Diese Programme erzeugen alle so ziemlich den selben Output.
    TLINK dient zum erstellen von 16Bit-Anweundungen (das ist fuer Win32 nicht so sinnvoll) mit TLINK32 koennen 32Bit-Programme - uA. Win32-Konsolenanwendungen - erstellt werden.



  • Danke hab mir sehr geholfen.

    mfg
    AsmNoob



  • AsmNoob schrieb:

    Danke hab mir sehr geholfen.

    🤡 Selbst ist der Mann... 👍



  • Shit happens 😉

    mfg
    AsmNoob


Anmelden zum Antworten