zoukankan      html  css  js  c++  java
  • 32位汇编学习札记(二)

    win32汇编语言第二章(6.22)

    win32开发源码的组成

    win32可执行文件的源码包括两个大的部分:汇编代码和资源文件
    1.汇编代码:
      a. asm文件:我们自己编写的汇编源码
      b. windows.inc:系统api的声明文件,在我们的源代码中包含这个头文件后就可以调用windows提供的api。
      c. *.inc:用户自定义头文件,我们自己编写的或者第三方函数库的头文件
    2.资源文件:
      a.rc文件:资源文件脚本,用于定义可执行文件中的资源包括(菜单、窗口、图形、声音等资源)
      b.resource.h:资源文件头文件
      c.其他独立的文件资源:bmp、ico、cur、wav等文件

     win32可执行文件的编译过程:

    1.asm windows.inc *.inc 通过ml.exe生成 .obj
    2.rc resource.h 其他独立资源文件 通过rc.exe 生成 .res
    3.obj和rec加入dll文件 通过link.exe 生成exe文件

    编译过程常用的命令:

    ml 常用编译选项
      ml /c /coff /Cp /Gz /Zi
    link 常用方法
      link /subsystem:windows a.obj b.obj c.lib d.res
      link /subsystem:console a.obj b.lib c.res
      link /subsystem:windows /dll /def:a.def b.obj c.lib d.res 

    环境搭建

    1.下载masm32开发包,解压到c盘后在masm32目录下有bin,include,lib目录
    2.下载namke.exe文件,将namke.exe文件拷贝到masm32/bin目录下
    3.编写设置变量文件
    4.下载安装notepad++用于源文件编辑器
    5.下载安装vc6.0用于编辑资源文件

    makefile文件结构

    makefile包含3个部分
    1.宏定义部分
      a.定义目标文件
      b.定义obj文件
      c.定义res文件
      d.定义编译命令
    2.显示规则部分
      显示规则定义了文件之间的依赖关系及使用命令,除了特殊情况(clean)显示规则都需要定义依赖文件,当显示规则没有命令的时候就会使用隐含规则中的命令
    3.隐含规则部分
      定义了文件之间默认的编译规则,不包含依赖文件。可以把隐含文件理解为,遇到a文件就使用命令c编译成b文件

    nmake的执行过程

    nmake通过makefile来编译目标文件
    1.找到makefile中第一个显示规则,调用命令对依赖关系中提供的文件进行编译
    2.如果显示规则没有提供命令则使用隐含规则中的命令进行编译
    3.如果依赖关系不存在,则先找依赖关系的编译命令,编译完成后返回到总命令中。

    资料查找

    windows资料
    1.api可以通过msdn和一些api文档进行查找
    2.汇编的例子: http://www.movsd.com, http://win32asm.cjb.net, http://asm.yeah.net
  • 相关阅读:
    函数响应式编程及ReactiveObjC学习笔记 (-)
    Flask的第一个应用
    Django错误 OperationalError: no such column: xxx
    Python高级数据类型模块collections
    wsgiref 源码解析
    WSGI文档(中文版)
    Python:树的遍历
    Django+haystack实现全文搜索出现错误 ImportError: cannot import name signals
    Django+Celery+Redis实现异步任务(发送邮件)
    Python面向对象—类的继承
  • 原文地址:https://www.cnblogs.com/icestone/p/3148440.html
Copyright © 2011-2022 走看看