汇编语言入门笔记

一。模式定义
    1。指令集
 .386
    2。.model语句
 .model 内存模式[,语言模式][,其他模式]
 内存模式:tiny , small ,medium ,compact ,large ,huge ,flat(常用)
 .model后面只能跟stdcall
    3。option语句
 option casemap:none
二。段的定义
    1。段的概念
 .data <一些初始化的变量定义>
 .data?  <一些没有初始化的变量定义>
 .const <一些常量定义>
 .code <代码>
 <开始标号>
  <其他语句>
 end 开始标号
    2。数据段
 (1)可读可写的已定义变量   放在.data段中,一般在可执行文件的_DATA节区中
 (2)可读可写的未定义变量   放在.data?段中,一把存放在)BSS节区中
 (3)一些常量     放在.code段中,可读不可写
    3。代码段
 所有的指令都必须放在代码段中,在可执行文件中,代码一般放置在_TEXT节区中。
 在Win32汇编中,只有代码段具有可执行的属性,不能在EXE文件中对代码段进行改动。
 但是,在特权级0下运行的程序,对所有的段都有读写的权利。而且,代码段的属性是由可执行文件的PE头部中的属性位来决定的,通过编辑磁盘上的EXE文件,将可执行文件的PE头部改为可写,那么在程序中就允许修改自己的代码段。典型的应用是:针对可执行文件的压缩软件和加壳软件:Upx和PeCompact等,这些软件靠把代码段做出一些变换来达到解压缩,解密的目的,被处理过的可执行文件在还原时需要有解压代码来将代码段解压缩,所以说这些可执行软件对可执行文件代码段的属性预先做了修改。
    4。堆栈段
 可读可写可执行。可以靠动态修改代码的反跟踪模块可以拷贝到堆栈段中去边修改边执行。一些病毒和黑客工具用到的缓冲区溢出技术也用到了这个特征。
三。程序结束和程序入口
    end  后面的富豪标志就是入口标志
四。注释和换行
    ;注释
    / 换行

转载于:https://www.cnblogs.com/StivenYang/p/8441349.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值