简明 X86 汇编语言教程.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
简明 x86 汇编语言教程 作者:司徒彦南 来源:互联网 Vanembedded整理 2007-11-8 第○章 写在前面 我不想夸大或者贬低汇编语言。但我想说,汇编语言改变了 20 世纪的历史。与前辈相 比,我们这一代编程人员足够的幸福,因为我们有各式各样的编程语言,我们可以操作键盘、 坐在显示器面前,甚至使用鼠标、语音识别。我们可以使用键盘、鼠标来驾驭“个人计算机”, 而不是和一群人共享一台使用笨重的继电器、开关去操作的巨型机。相比之下,我们的前辈 不得不使用机器语言编写程序,他们甚至没有最简单的汇编程序来把助记符翻译成机器语 言,而我们可以从上千种计算机语言中选择我们喜欢的一种,而汇编,虽然不是一种“常用” 的具有“快速原型开发”能力的语言,却也是我们可以选择的语言中的一种。 每种计算机都有自己的汇编语言——没必要指望汇编语言的可移植性,选择汇编,意味 着选择性能而不是可移植或便于调试。这份文档中讲述的是 x86 汇编语言,此后的“汇编语 言”一词,如果不明示则表示 ia32上的 x86 汇编语言。 汇编语言是一种易学,却很难精通的语言。回想当年,我从初学汇编到写出第一个可运 行的程序,只用了不到 4 个小时;然而直到今天,我仍然不敢说自己精通它。编写快速、高 效、并且能够让处理器“很舒服地执行”的程序是一件很困难的事情,如果利用业余时间学 习,通常需要 2-3 年的时间才能做到。这份教材并不期待能够教给你大量的汇编语言技巧。 对于读者来说,x86 汇编语言“就在这里”。然而,不要僵化地局限于这份教材讲述的内容, 因为它只能告诉你汇编语言是“这样一回事”。学好汇编语言,更多的要靠一个人的创造力 于悟性,我可以告诉你我所知道的技巧,但肯定这是不够的。一位对我的编程生涯产生过重 要影响的人曾经对我说过这么一句话: 写汇编语言程序不是汇编语言最难的部分,创新才是。 我想,愿意看这份文档的人恐怕不会问我“为什么要学习汇编语言”这样的问题;不过, 我还是想说几句:首先,汇编语言非常有用,我个人主张把它作为 C 语言的先修课程,因为 通过学习汇编语言,你可以了解到如何有效地设计数据结构,让计算机处理得更快,并使用 更少的存储空间;同时,学习汇编语言可以让你熟悉计算机内部运行机制,并且,有效地提 高调试能力。就我个人的经验而言,调试一个非结构化的程序的困难程度,要比调试一个结 构化的程序的难度高很多,因为“结构化”是以牺牲运行效率来提高可读性与可调试性,这 对于完成一般软件工程的编码阶段是非常必要的。然而,在一些地方,比如,硬件驱动程序、 操作系统底层,或者程序中经常需要执行的代码,结构化程序设计的这些优点有时就会被它 的低效率所抹煞。另外,如果你想真正地控制自己的程序,只知道源代码级的调试是远远不 够的。 浮躁的人喜欢说,用 C++写程序足够了,甚至说,他不仅仅掌握 C++,而且精通 STL、 MFC。我不赞成这个观点,掌握上面的那些是每一个编程人员都应该做到的,然而 C++只是 我们“常用”的一种语言,它不是编程的全部。低层次的开发者喜欢说,嘿,C++是多么的 强大,它可以做任何事情——这不是事实。便于维护、调试,这些确实是我们的追求目标, 但是,写程序不能仅仅追求这个目标,因为我们最终的目的是满足设计需求,而不是个人非 理性的理想。 这份教材适合已经学习过某种结构化程序设计语言的读者。其内容基于我在 1995年给 别人讲述汇编语言时所写的讲义。当然,如大家所希望的,它包含了最新的处理器所支持的 特性,以及相应的内容。我假定读者已经知道了程序设计的一些基本概念,因为没有这些是 无法理解汇编语言程序设计的;此外,我希望读者已经有了比较良好的程序设计基础,因为 如果你缺乏对于结构化程序设计的认识,编写汇编语言程序很可能很快就破坏了你的结构化 编程习惯,大大降低程序的可读性、可维护性,最终让你的程序陷于不得不废弃的代码堆之 中。 基本上,这份文档撰写的目标是尽可能地便于自学。不过,它对你也有一些要求,尽管 不是很高,但我还是强调一下。 学习汇编语言,你需要 • 胆量。不要害怕去接触那些计算机的内部工作机制。 • 知识。了解计算机常用的数制,特别是二进制、十六进制、八进制,以及计算机保 存数据的方法。

文档评论(0)

勤劳的小厮 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档