求一些做里番的网站,wordpress新闻快讯插件,网络推广培训方案,群晖 wordpress 配置楔子#xff1a;windows11上编译x64汇编#xff0c;很多人不太了解。甚至搞出DOSBox这种几亿年前的老古董#xff0c;还有的专门搞些Linux下面的工具来搞到Windows上运行。其实这些大可不必#xff0c;也没这么麻烦。微软技术出身#xff0c;基本上工具链齐全。本篇来看下…楔子windows11上编译x64汇编很多人不太了解。甚至搞出DOSBox这种几亿年前的老古董还有的专门搞些Linux下面的工具来搞到Windows上运行。其实这些大可不必也没这么麻烦。微软技术出身基本上工具链齐全。本篇来看下Windows简单的搭建X64汇编环境非常简单。作用因为.Net 7 AOT的编译就是这么搞的ILC通过被封装的ObjWriter.dll来操纵LLVM调用ml64生成目标文件。来具体来看看。ml64这个工具是微软的新一代x64汇编编译工具主要是编译.Obj。打开VS命令行工具x64 Native Tools它可以操纵前者。代码includelib User32.lib
extern MessageBoxA:Proc
.datag_CT db Zhu Yoa Nei Rong!,0g_BT db Biao Ti,0
.code
Winmain Procsub rsp, 68hmov rcx, 0mov rdx,offset g_CTmov r8,offset g_BTxor r9, r9call MessageBoxAadd rsp, 68hret
Winmain Endp
end编译成目标文件把上面的代码保存为test.asm然后用命令ml64 /c test.asm编译成 test.obj文件。链接成exe通过link的子系统来连接下这个Winmain入口函数link /subsystem:windows /entry:Winmain test.obj结果最后得到了一个exe文件双击就会弹出对话框。结尾通过上面的过程以及结果可以看到了一个完整的AOT编译链。