zoukankan      html  css  js  c++  java
  • masm32环境配置

    软件:

    Windows7-32bit

    visual c++6.0

    Masm32 sdk 11

    安装:

    0x00 ||  下载Masm sdk 11并安装,下载路径:http://www.masm32.com/

    0x01 ||  安装visual c++,自行百度,最好是英文版

    配置:

    0x02 ||  将E:Visual C++ 6.0VC6VC98Bin目录下的NMAKE.exe拷贝放到E:masm32目录下,我们后面要用到这个

    0x03 ||  添加var.bat文件到E:masm32目录,因为我们以后会用visual c++来建立一些资源文件,所以include里面的内容还包括VC安装路径include和MFCinclude

    1 @echo off
    2 rem 请根据 Masm32 软件包的安装目录修改下面的 Masm32Dir 环境变量!
    3 set include=E:masm32Include;E:Visual C++ 6.0VC6VC98Include;E:Visual C++ 6.0VC6VC98MFCInclude
    4 set lib=E:masm32lib
    5 set path=E:masm32Bin;%path%
    6 echo on

    实践:

     0x04 ||  按shift,鼠标右键打开cmd,切换到E:masm32目录下,运行var.bat文件,如下图

    0x05 ||  在该目录下新建一个工程目录source,以后可以在里面写一些win32项目

    0x06 ||  切换到source,新建一个Test文件夹,这样就可以写我们的win32代码,win32项目各文件如下

    0x07 ||  在cmd中执行nmake命令

    0x08 ||  第一个由汇编代码写的程序完成,双击Test.exe,弹出一个消息框

    代码:

    ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    ; Sample code for < Win32ASM Programming 3rd Edition>
    ; by 罗云彬, http://www.win32asm.com.cn
    ; Change by 大老黑, http://geekfz.cn
    ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    ; Test.asm
    ; 编程环境测试代码
    ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    ; 使用 nmake 或下列命令进行编译和链接:
    ; ml /c /coff Test.asm
    ; rc Test.rc
    ; Link /subsystem:windows Test.obj Test.res
    ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
            .386
            .model flat,stdcall
            option casemap:none
    ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    ; Include 文件定义
    ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    include        windows.inc
    include        user32.inc
    includelib    user32.lib
    include        kernel32.inc
    includelib    kernel32.lib
    ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    ; 数据段
    ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
            .const
    
    szCaption    db    '极客改变世界', 0
    szText        db    '来吧,和极客方舟一起成长',0
    
    ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    ; 代码段
    ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
            .code
    start:
            invoke    MessageBox,NULL,offset szText,offset szCaption,MB_OK
            invoke    ExitProcess,NULL
    ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
            end    start
    Test.asm
    EXE = Test.exe        #指定输出文件
    OBJS = Test.obj        #需要的目标文件
    RES = geek.res        #需要的资源文件
    
    LINK_FLAG = /subsystem:windows    #连接选项
    ML_FLAG = /c /coff        #编译选项
    
    $(EXE): $(OBJS) $(RES)
        Link $(LINK_FLAG) $(OBJS) $(RES)
    
    .asm.obj:
        ml $(ML_FLAG) $<
    .rc.res:
        rc $<
    
    clean:
        del *.obj
        del *.res
    Makefile

    总结:

    0x09 ||  这个程序虽小但却五官俱全,包括源代码.asm、资源文件.res、以及我们看不到的一些.lib

    0x0A ||  小技巧:制作资源文件时候可以导入图标后直接保存为.RES文件,这样nmake命令就不用再去调用.rc文件生成资源文件

    0x0B ||  nmake和Makefile用法及格式可以参考以下书籍

    参考书籍:Windows环境下32位汇编语言程序设计(典藏版).pdf

    (百度云盘:https://pan.baidu.com/s/1ZAgw0Wpn2quL4bC-YKhSZg  uh97)

     

  • 相关阅读:
    MyCAT-安装配置读写分离
    MYSQL-GTID复制
    Harbor使用
    ansible-playbook(合集)
    Ansible批量添加主机
    MyCAT+MGR
    随笔说明
    常用sql语句
    接口测试基础
    正则表达式
  • 原文地址:https://www.cnblogs.com/YangARTuan/p/10764742.html
Copyright © 2011-2022 走看看