Home > Back-end >  Print hello in 64-bit masm
Print hello in 64-bit masm

Time:01-12

I'm a noob for programing.
I want to write a program to show hello in 64-bit masm.
I use VS code with ml64.exe and gcc.
The following is what I write:

;; file name: hello.asm
printf proto

.data
    messenge dq "hello", 0

.code
main proc
    sub rsp, 40h
    mov rcx, messenge
    call printf
    add rsp, 40h
    ret
main endp

end

And I write a script to assemble, link ,and execute:

@:: file name: run.cmd
@ml64 /c hello.asm
@gcc -o hello.exe hello.obj
@del *.obj
@hello.exe

It goes like this:

C:\code\MASM>run.cmd
Microsoft (R) Macro Assembler (x64) Version 14.25.28614.0
Copyright (C) Microsoft Corporation.  All rights reserved.

 Assembling: hello.asm

It didn't output hello string.
How could I fix it?

CodePudding user response:

I build this with just ml64 hello.asm (no gcc).

;; file name: hello.asm
printf proto
includelib msvcrt.lib
includelib legacy_stdio_definitions.lib

.data
    messenge db "hello", 13, 0

.code
main proc
    sub rsp, 40h
    mov rcx, offset messenge
    call printf
    add rsp, 40h
    ret
main endp

end

Basically what Michael said.

  •  Tags:  
  • Related