use*_*147 15 x86 assembly x86-64 masm visual-studio
我搜索并发现我无法__asm
在视觉工作室的x64中使用.相反,我必须使用外部程序集文件.
如何将外部程序集文件添加到我的win32控制台项目?
如何编译它们?
你能一步一步解释吗?
rkh*_*khb 39
如何在Visual Studio中使用x64程序集文件构建混合源x64项目:
1)启动Visual Studio(社区)2015并选择FILE - New - Project
.
2)在下一个窗口中选择Win 32 Console Application
.
3)你得到确认.点击Next >
.
4)在下一个窗口中,您可以接受默认设置.点击Finish
.
5)现在选择PROJECT - Build Customizations...
.
6)在下一个窗口中勾选masm(.targets,.props)
并单击OK
.
7)选择 Build - Configuration Manager...
8)更改Active solution platform
为x64
9)创建callee.asm : PROJECT - Add New Item
.
10)在下一个窗口中选择C++File(.cpp)
和 - 重要!- 给它一个带.asm
扩展名的名字.点击Add
.
10)现在检查.asm
文件是否具有正确的属性.在解决方案资源管理器中,右键单击该文件并选择Properties
.
11)在属性页面中,您应该至少看到:
Excluded From Build (empty) or No
Item Type Microsoft Macro Assembler
Run Code Online (Sandbox Code Playgroud)
下Command Line
确保ml64.exe
被选择作为汇编.
点击OK
.
12)现在您可以用内容填充文件.
ConsoleApplication1.cpp:
#include <iostream>
using namespace std;
extern "C" void hello_from_asm();
int main()
{
cout << "Hello from CPP" << endl;
hello_from_asm();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
callee.asm:
PUBLIC hello_from_asm
EXTERN puts:PROC
.data
hello1 db "Hello from ASM.",0
.code
hello_from_asm PROC
push rbp
mov rbp, rsp
sub rsp, 32 ; Shadow Space
and spl, -16 ; Align stack at 16
lea rcx, hello1
call puts
leave ; Restore stack (rsp) & frame pointer (rbp)
ret
hello_from_asm ENDP
END
Run Code Online (Sandbox Code Playgroud)
13)构建.exe
并运行它CTRL-F5.
该应用程序将在新窗口中打开.
归档时间: |
|
查看次数: |
11140 次 |
最近记录: |