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


文档评论(0)