zoukankan      html  css  js  c++  java
  • 今天开始第一次win32汇编之旅 先搭建编程环境吧

    编译环境选择的是罗云斌推荐的MASM32下载地址:http://www.masm32.com/masmdl.htm

    其他很多工具在看雪学院直接可以下到所以不提供具体工具下载方式了,直接提供下载地址:http://www.pediy.com/tools.htm

    首先设置系统path 增加 masm32 bin目录 如C:\masm32\bin

    编辑环境是editplus 下载地址:http://www.editplus.com/index.html

    EditPlus asm语法高亮文件
        下载地址:http://www.editplus.com/others.html    直接下载地址:MASM 6.15 stx - 吴文希 (2007-10-12) 就看到这个是最新的所以下载这个了

    语法高亮很容易配置,只需要下载好stx文件放到程序文件夹,选择第五步的按钮选择即可,注意第四步写上文件扩展名,不然不能高亮

    下边是快捷工具的配置

    用MASM编译和链接一个Win32汇编源程序常用的命令是:
    编译:ml /c /coff program.asm

    连接: link /subsystem:windows xx.obj yy.lib zz.res (普通PE文件)
        link /subsystem:console xx.obj yy.lib zz.res (控制台文件)
        link /subsystem:windows /dll /def:aa.def xx.obj yy.lib zz.res (DLL文件)

    link命令参数有不确定性,比如需要使用.lib文件所以不知道怎么配置,暂时手动输入吧,呵呵,配置好的如图

    现在开始经典的hello world测试一下环境

    View Code
    .486 ; create 32 bit code
    .model flat, stdcall ; 32 bit memory model
    option casemap :none ; case sensitive

    include windows.
    inc
    include masm32.
    inc
    include user32.
    inc
    include kernel32.
    inc

    includelib masm32.lib
    includelib user32.lib
    includelib kernel32.lib


    .data
    szCaption db
    "A MessageBox !",0
    szText db
    "Hello,World !",0


    .code

    start:
    invoke MessageBox,NULL,offset szText,\
    offset szCaption,MB_OK
    invoke ExitProcess,NULL

    end start

    提示不能打开windows.inc,原来忘了设置告诉编译器上哪找头文件、库文件了

    我是设置的用户变量反正就我一个人用,就不设置系统变量了,新建一下变量

    变量名:include 变量值:C:\masm32\include  这是是masm32的头文件

    变量名:lib 变量值:C:\masm32\lib  这是是masm32的库文件

    变量名:PATH 变量值:C:\masm32\bin;%path%  这是是masm32的库文件 系统因为变量中增加了bin目录,所以我就删除了系统变量的那个

    现在终于可以编译完成了,左侧出现了obj文件了,obj 文件目 标 文 件 ,一 般 是 程 序 编 译 后 的 二 进 制 文 件 ,在 通 过 链 接 器 和 资 源 文 件 链 接 就 成 exe 文 件 了。 OBJ 只 给 出 了 程 序 的 相 对 地 址 , 而 EXE 是 绝 对 地 址 。如果没有看到,那么记得点右键刷新一下

    产生了obj文件就需要连接生成exe文件了

    进入cmd,进入程序代码产生obj的目录

    输入link /subsystem:windows Noname1.obj 命令格式记得往上翻下

    完成后可以输入dir /w看看已经产生了exe程序了,哈哈,赶快运行看看啥样子

    出来了,高兴的有点早了万里长征才走完第一步,因为现在只是搭建开发环境而已,继续努力

  • 相关阅读:
    汉语-谚语:条条大路通罗马
    汉语-词语:缱绻
    几何-对称图形:中心对称图形
    java解析获取Excel中的数据--同时兼容2003及2007
    如何使gcc输出搜索到的头文件路径?
    如何使tmux可以像vi一样操作(如快速跳转到某一行)?
    如何使tmux能够使用鼠标上下滚动?
    ID3v2: 为aac格式的音频文件添加ID3v2 Header
    FFmpeg: 利用FFmpeg提取音频文件中的metadata
    C语言:变长结构体
  • 原文地址:https://www.cnblogs.com/lilongjiang/p/2078135.html
Copyright © 2011-2022 走看看