【发布时间】:2021-02-06 10:23:38
【问题描述】:
x86 CPU:MSVC (2010)
EXTRN _printf:PROC 在下面的代码中是什么意思,为什么在“:”之后我们使用一些“PROC”指令而不是“near”或“far”?
CONST SEGMENT
$SG3830 DB 'hello, world', 0AH, 00H
CONST ENDS
PUBLIC _main
EXTRN _printf:PROC <- what is this funct?!
_TEXT SEGMENT
_main PROC
push ebp
mov ebp, esp
push OFFSET $SG3830
call _printf
add esp, 4
xor eax, eax
pop ebp
ret 0
_main ENDP
_TEXT ENDS
【问题讨论】:
-
你读过汇编手册吗?它说了什么?如果您需要进一步的帮助,我需要知道您正在使用哪个特定的汇编程序进行编程。
-
@fuz 如果你愿意的话,刚刚编辑了问题。其实我认为任何基于 Intel 的编译器都是一样的,所以没有提及。
-
@Deno 汇编器与编译器不同。确保不要混淆他们。请注意,有许多汇编程序使用类似 Intel 的语法。其中之一是 MASM,MSVC 附带的汇编程序。还有其他流行的汇编程序,如 nasm、fasm 和 yasm。
-
也感谢 4 提供的信息。下次问之前,我会考虑如何使汇编程序合格。直到现在还想知道为什么人们不明白.. ????
标签: assembly x86 masm cl intel-syntax