zoukankan      html  css  js  c++  java
  • 用VS2019开发汇编程序

    1、安装VS2019社区版,下载地址:

    https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community&rel=15#

    安装时选择 桌面C++ 组件。

    如果安装失败,说明你的操作系统用的时间太长了,环境搞坏了,最好是重装一下系统。

    2、安装AsmDude插件,支持.asm文件的语法高亮。

    这个插件不太完善,问题比较多,但是就这么一个独苗,凑合着用吧。

    3、安装MASM32 SDK,下载地址:

    http://website.assemblercode.com/masm32/masm32v11r.zip

    我们其实不用它的汇编器,只是用它打包好的 lib 和 inc 文件,用起来比较方便。

    假设安装在D盘。

    4、新建一个空项目,项目类型为c++、Windows、控制台。

    项目节点上右键菜单,“生成依赖项” -> 自定义->masm

    项目节点上右键菜单,链接器 -> 附加库目录,增加路径:d:masm32lib

    5、添加一个文件,选择c++,但是把后缀名改为.asm,例如:hello.asm。

    6、输入源代码,运行即可。

    .386
    .model flat,stdcall
    option casemap:none
    
    includelib msvcrt.lib
    
    printf proto c: ptr sbyte, :vararg
    getchar proto c
    ExitProcess proto,dwExitCode:dword
     
    .data
    msg1 BYTE "Hello, world!", 0ah, 0
    msg2 BYTE "Press any key to exit...", 0
    
    .code
    main Proc
        push offset msg1
        call printf
    
        invoke printf, offset msg2
        invoke getchar
    
        invoke ExitProcess, 0
    main ENDP
    end main

    7、如果用命令行,代码中includelib指令需要指定具体的路径,否则找不到指定的lib文件。并且,link需要指定/SUBSYSTEM参数。如下:

    > ml /c hello.asm
    > link /SUBSYSTEM:CONSOLE hello.obj
  • 相关阅读:
    React跨域问题解决
    PBFT性能会下降? 各种算法的对比。
    ssl证书原理
    UTXO是什么?
    以太访solidity常用的函数有哪些
    ERC720和erc721的区别
    椭圆曲线加密和rsa对比
    将pdf书籍变成横排的方法
    童年回忆(1)
    Inheritance
  • 原文地址:https://www.cnblogs.com/lavezhang/p/13794767.html
Copyright © 2011-2022 走看看