如何实现CRT入口点调用的主要功能?

时间:2017-08-31 10:11:10

标签: windows assembly x86 nasm

说我在NASM中有以下代码:

global _main

section .text
_main:
    mov ebx, 12345
    mov ecx, 678910
    ret

汇编此代码后,我想将生成的目标文件与CRT链接。

现在,我的计划的入口点为mainCRTStartupmainCRTStartup将致电_main

现在我有以下两个问题:

  1. _main的调用约定是什么(我相信它是cdecl,但我不确定。)
  2. 我应该将_main实现为另一个cdecl函数吗?也就是说,当输入_main时,我应该将ebp寄存器的值压入堆栈,并且在离开_main时,是否应该从堆栈中弹出ebp值进入ebp寄存器,还应该保留cdecl调用约定指定的寄存器吗?
  3. 我问这个问题的原因是因为我看过的例子只发出ret中的_main指令(就像我在我的例子中所做的那样)而没有做我提到的其他事情。

    请注意,我使用的是VC ++链接器。

0 个答案:

没有答案