在 64 位 masm 中打印 hello
Print hello in 64-bit masm
我是编程小白。
我想写一个程序在 64 位 masm 中显示 hello。
我将 VS 代码与 ml64.exe 和 gcc 一起使用。
以下是我写的:
;; 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
然后我写了一个脚本到 assemble, link , 然后执行:
@:: file name: run.cmd
@ml64 /c hello.asm
@gcc -o hello.exe hello.obj
@del *.obj
@hello.exe
它是这样的:
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
它没有输出 hello 字符串。
我该如何解决?
我只用 ml64 hello.asm
(没有 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
基本上是迈克尔所说的。
我是编程小白。
我想写一个程序在 64 位 masm 中显示 hello。
我将 VS 代码与 ml64.exe 和 gcc 一起使用。
以下是我写的:
;; 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
然后我写了一个脚本到 assemble, link , 然后执行:
@:: file name: run.cmd
@ml64 /c hello.asm
@gcc -o hello.exe hello.obj
@del *.obj
@hello.exe
它是这样的:
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
它没有输出 hello 字符串。
我该如何解决?
我只用 ml64 hello.asm
(没有 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
基本上是迈克尔所说的。