win32汇编-Win32可执行文件的编译过程

 

 

 

MASM32_SDKv10r

下载:

链接:https://pan.baidu.com/s/1095X2t6rWV6aqDryBOuPjA
提取码:6666  

 

安装: 

1.

 自动安装到masm32文件夹

 

编译过程

方法一:利用qeditor.exe

安装之后桌面会有一个,就是qeditor.exe

可以建立、汇编、链接源程序文件和运行生成的可执行文件

1.创建文件

输入代码:

复制代码
.386
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
.data
HelloWorld db "Hello World!", 0
.code
start:
invoke MessageBox, NULL, addr HelloWorld, addr HelloWorld, MB_OK
invoke ExitProcess, 0
end start
复制代码

先不用理解代码的含义,目的是了解编译过程

保存为asm文件

 

2.编译为obj文件

 

 3.链接为执行文件

 

 4.双击执行

 

方法二: 完全手动--麻烦

1.设置环境变量

 注意:设置完毕需要重启电脑

2.编译成obj文件

管理员运行cmd

进入asm所在的文件夹

指令:

ml /c /coff /Cp 1.asm

 

 

 

 

2.利用vc6.0创建资源

文件-->新建-->

 

 

 

 文件-->另存为-->

   

 

 

3.链接成执行文件

指令:

link /subsystem:windows 1.obj zy.res

 

 

方法三:利用nmake

nmake下载: 

链接:https://pan.baidu.com/s/1UKlxsXGPOsZK1AW0htSsJw
提取码:6666

Makefile下载:

链接:https://pan.baidu.com/s/1WrvHU6zcpk3SDYdyi1sSUg
提取码:6666

把这两个文件放到asm所在的文件夹

修改Makefile

 

 

方法四:利用VS2019MFC 

 

复制代码
int result = 0;
int MyFunction()
{
    __asm
    {
        mov eax, 10
        add eax, 20
        mov result, eax
            
    }
    return result;
}
void ChbDlg::OnBnClickedButton1()
{
    // TODO: 在此添加控件通知处理程序代码

    int n=MyFunction();


}
复制代码

 

方法五--VS2019纯汇编-推荐 

1.用VS2019创建空项目

 2.生成依赖项

 

 3.添加asm文件

 

 

 

 

4.测试

输入以下代码进行测试

复制代码
.386
.model flat,stdcall
.stack 4096
ExitProcess PROTO,dwExitCode:DWORD

.data


.code
main PROC
    

    INVOKE ExitProcess,0
main ENDP
END  main
复制代码

5.安装高亮插件

菜单栏中的"扩展"->"管理扩展",弹出管理扩展窗口。

单击左侧"联机",在右侧"搜索"框中输入"asm",稍等一下,包含"asm"关键字的插件就显示出来了,我们选择第一个"AsmDude"进行安装。"AsmDude"下载完成后,我们需要关闭Visual Studio,这时"AsmDude"会开始进行安装,当"AsmDude"提示安装完成后,我们再打开"Visual Studio",代码就可以高亮显示了

 

6.下载和安装MASM32_SDKv10r

看上边

 

7.添加lib库路径:

D:\masm32\lib;

 

8.添加include路径

D:\masm32\include;

 

9.修改MSVC版本

原因和修改方法看:https://blog.csdn.net/zhanghaishan/article/details/111201645

 

 

6.实例工程下载

链接:https://pan.baidu.com/s/1rl50f4zoI7sqk_CIODOt1A
提取码:6666

 

 

 

 

 

 

posted @   天子骄龙  阅读(107)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
历史上的今天:
2022-10-06 qt5--QRandomGenerator随机数类
2021-10-06 opencv-图像遍历
2020-10-06 qt--textEdit多行文本编辑框
点击右上角即可分享
微信分享提示

目录导航