Fasm---Win32汇编学习1

本文是关于Win32汇编语言的学习,主要介绍了使用Fasm作为编译器的原因,并简述了Fasm的格式和PE文件结构。内容包括Fasm的format伪指令、entry、section的用法,以及Win32保护模式下的平坦内存模式和对关键寄存器的使用注意事项。
摘要由CSDN通过智能技术生成

   Fasm---Win32汇编学习1

    今天就由我来带领大家进入win32汇编学习的殿堂。我们以后采用的编译器是Fasm, 因为我比较偏向Fasm,其一它是开源的,我们可以自己通过学习Fasm的源代码来学习,且它的区段可以完全自己构建这使我们可以更加的深入对PE结构的掌握等。所以我比较推荐Fasm,当然你用其他的编译器也是可以的。。。 看个人爱好吧。。但是有必要说下,国内fasm使用甚少,大多人都喜欢使用masm,所以fasm的资料也是相当匮乏,所以大家可以选择任意的编译器。

   首先介绍下FASM书写的格式

 

    format  PE   子系统    子系统版本号

    entry  入口点

   

    section   '节名'   可用标志    节属性

   

    section   '节名'   可用标志    节属性

    format伪指令是用来指定输出的文件格式。。后面跟PE指定输出PE文件格式,当然也可以输出Win16下的MZ文件格式。不过既然我们讲的Win32汇编,所以以后都采用的是PE文件格式。。 ∩∩ ..   好,后面子系统标示我们输出的文件的子系统值。子系统值标示我们程序被加载时候按照何种方式运行。因为我们映像文件(也就是磁盘文件)在被映射到内存的时候,PE Loader会读取我们PE结构上相应的子系统值来通知何种子系统(也就是我们的程序运行在何种子系统环境下)。 我们一般编写的程序用到3种子系统。“console”控制台,“GUI”可视化图形程序 , “native” 驱动程序。好接下来是我们的子系统版本号,这里大家可以自己设置指定版本号。

   entry是用来指定我们的程序的入口点。就是程序从哪里开始执行(也就是初始化我们EIP寄存器的值),一般entry 后面跟的是我们的标号名称。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值