新浪游戏 | 新浪首页
新浪首页 > 游戏世界 > 游民论谈 > 文章内容
INTELX86体系32位汇编语言速成
游民部落网友free_mind

      上回为大家简单介绍了VisualC++InlineAssembly,相信已经有人想实际动手来试试了。然而,要想自由使用InlineAssembly,你首先必须掌握INTELX86体系的32位汇编语言。本文正是为那些已经略有8086汇编语言基础却没接触过X86体系的32位汇编语言的同志们准备的。我们将一起了解和深入INTELX86体系的32位汇编语言。

      因为我们的目标是“速成”,如果你能有点基础的话,那么在此之上展开讨论就能让彼此都感觉轻松很多。假若你以前完全没有学习过汇编语言,那么请务必先去找本8086汇编语言的教科书来补习补习之后再来阅读本文。

      学习一种的汇编语言,必须了解这种CPU的寄存器、寻址方式以及各种指令。我们就先从寄存器开着手吧。

      INTELX86常用寄存器

      通用寄存器段寄存器

      AH/ALAX(EAX)累加器CS代码段

      BH/BLBX(EBX)基址DS数据段

      CH/CLCX(ECX)计数器SS堆栈段

      DH/DLDX(EDX)数据ES附加段

      (FS)386新增的段寄存器

      (Exx)为386新增的32位寄存器(GS)386新增的段寄存器

      指针寄存器堆栈寄存器

      SI(ESI)源索引指针SP(ESP)栈指针

      DI(EDI)目的索引指针BP(EBP)基址指针

      IP指令指针

      状态寄存器


      |11|10|F|E|D|C|B|A|9|8|7|6|5|4|3|2|1|0|
      |||||||||||||||||+---CFCarryFlag
      ||||||||||||||||+---1
      |||||||||||||||+---PFParityFlag
      ||||||||||||||+---0
      |||||||||||||+---AFAuxiliaryFlag
      ||||||||||||+---0
      |||||||||||+---ZFZeroFlag
      ||||||||||+---SFSignFlag
      |||||||||+---TFTrapFlag(SingleStep)
      ||||||||+---IFInterruptFlag
      |||||||+---DFDirectionFlag
      ||||||+---OFOverflowflag
      ||||+-----IOPLI/OPrivilegeLevel(286+only)
      |||+-----NTNestedTaskFlag(286+only)
      ||+-----0
      |+-----RFResumeFlag(386+only)
      +------VMVirtualModeFlag(386+only)


    [下一页]

    发表及查看评论】【关闭窗口



游戏世界意见反馈留言板 欢迎批评指正 游戏咨询电话:请与各公司客服热线联系

新浪简介 | About Sina | 广告服务 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

Copyright © 1996 - 2004 SINA Inc. All Rights Reserved

版权所有 新浪网
北京市通信公司提供网络带宽