美文网首页汇编(MOV,SUB,PUSH,POP,...)
汇编环境搭建 -- Visual Studio

汇编环境搭建 -- Visual Studio

作者: _凌浩雨 | 来源:发表于2019-01-23 17:06 被阅读457次
    1. 创建空项目
    图1.png
    2. 生成MASM规则

    项目右键 -> 生成自定义 -> 勾选masm选项


    图2.png
    图3.png
    3. 添加源文件

    选择源文件右键->添加->新建项,新建时将文件的后缀名修改为.asm(注意必须此时改)

    图4.png
    4. 设置属性
    • 选中项目右键 ->属性-> 链接器->系统-> 子系统 -> "控制台(SUBSYSTEM:CONSOLE)" -> 应用


      图5.png
    • 选中项目右键 ->属性 -> 链接器-> 高级 -> 入口点 -> 输入"main@0" -> 应用


      图6.png
    5. 输入代码
    .486        ; 定义32位程序可以接受32位的寄存器和地址
    .model flat, stdcall    ; 选择程序的内存模式为平坦模式,stdcall调用习惯
    .stack 4096             ; 设置运行的堆栈大小为4096字节
    ; 分号为单行注释, COMMENT&...&为多行注释
    COMMENT &
        定义了一个ExitProcess函数, 它是标准的Windows服务。PROTO是原型关键字, 
        并定义了一个DWORD类型的输入参数, 函数返回0认为我们执行成功
    &
    ExitProcess PROTO, dwExitCode: DWORD    
    
    .data
        sum  DWORD 0    ; 定义变量
    
    .code
    main PROC           ; 定义主函数开始位置
        mov eax, 5      ; 将eax寄存器的值设置为5
        add eax, 6      ; 为eax寄存器加5
        mov sum, eax    ; 将eax的设置给sum变量
    
        INVOKE ExitProcess, 0   ; 退出程序
    main ENDP           ; 函数结束位置, ENDP 之前的内容,要与PROC 
    END main            ; 设置了函数的入口与出口
    
    6. 运行

    注:此时运行无任何效果,因为程序中没有打印

    7. 调试查看值
    效果图.gif
    8. 特别说明

    之前搭建了一篇汇编环境搭建 -- MASM32,此文将开发工具由MASM32更改为Visual Studio的原因为:

    • Assembly Language for x86 Processors (7th Edition) 一书的作者在文中使用此工具
    • 汇编语言的不可移植性
    • MASM32 开发复杂,工具的不完善性,此工具可查看堆栈信息,方便调试
    • 可以看出在不同工具下的汇编代码框架是不同的,因此程序要因开发工具特定
    9. Visual Studio 快捷键
    • Ctrl+F5:编译-链接-运行
    • F5:调试
    • 修改字体大小:工具 -> 选项 -> 环境 -> 字体和颜色
    • 添加行号:工具 -> 选项 -> 文本编辑器 -> 纯文本 -> 常规 -> 行号

    相关文章

      网友评论

        本文标题:汇编环境搭建 -- Visual Studio

        本文链接:https://www.haomeiwen.com/subject/dgcsjqtx.html