本文节选自《琢石成器——Windows环境下32位汇编语言程序设计》一书的前言

How——如何学习Win32汇编

以往的汇编书籍往往把重点放在硬件结构和指令上,讲述了一大堆电路框图和指令列表,把大家搞得晕晕乎乎后,再举出一些重量级的例子,不是一些像数组、矩阵计算一类的复杂运算,就是开始图形模式画图,以至于大家看完以后就再也找不到北了!实际上,这些例子不是太难了,而是太枯燥了。有人说,学汇编就像考大学,千军万马过独木桥,太多的人中途放弃了,只有少数人坚持到最后。
    笔者认为:学习汇编应该在轻松的环境下进行,在学习中使用的例子不一定太复杂,但一定要有吸引力。用汇编写复杂的运算程序固然会比C更有效率,但同样的事在C中用一个表达式就全部搞定了,从这里开始学汇编,给人的感觉就像从复杂的公式开始学算术,要知道,加法还没有学会呢!而对于高级语言封装起来的系统功能,用汇编解释起来就非常直接,非常自然,也更容易懂。以笔者自己学汇编的过程来说,那时候是1990年,刚好是中国第一次病毒大流行,大家的计算机上都是那个病毒的开山鼻祖——乒乓病毒,在流行DOS的时期,看着在屏幕上蹦的小球,心中就有一个问题:如何编出这样一个玩意来呢?要知道DOS是单任务的,而那个球在别的程序运行的时候照样蹦!这用当时流行的FORTRAN、C等课程中学到的任何知识都无法解释,因为这些课程中不可能有TSR、中断、引导区等内容。带着这样一个疑问学习汇编,在分析乒乓病毒的过程中啃一条条不懂的指令,病毒分析完了,汇编课也学完了,而且反过来看那些复杂的计算程序都是那么顺理成章,不攻自破了。实际上,从一些实用的系统功能开始学习汇编远比学矩阵计算容易理解。
    正如最经典的C程序就是那个“Hello,World!”一样,这个程序的有名并不是因为它用高深复杂的语句放倒了一大批人,而是它以最简单易懂的方式让人们走入C语言的大门。对于Win32汇编也是如此,从最简单的例子开始总是没错的,笔者建议读者跟随本书中从简到繁的例子,努力做到理解并灵活引用这些例子中的各种功能,正如“熟读唐诗三百首,不会写诗也会吟”,最后能够熟练地使用Win32汇编来解决各种编程需求就是最大的胜利。
    另外,正如前面讲到的,汇编语言的学习必须和操作系统紧密结合。经过简单的调查,笔者发现很多高校使用的汇编教程还是停留在清华91版《IBM-PC汇编语言程序设计》之类的教材上,虽然这些教材中基础知识部分永远不会过时,但涉及操作系统的部分还是停留在DOS阶段。随着DOS操作系统的悄然引退,继续把精力花在上面是一种浪费,因为任何语言都必须有应用的平台,否则课程学完之后会尴尬地发现没有地方可以应用。笔者认为,在《IBM-PC汇编语言程序设计》之类传统教材中的基础部分学习完毕以后,重点就应该转向Win32汇编,以及保护模式方面的知识。

更多精彩资源:
    博客园:    http://www.cnblogs.com/broadview/
    Web开发专栏    http://blog.csdn.net/broadviewwebdev
    嵌入式    http://blog.mcuol.com/Broadview/index.htm
    程序设计专栏http://blog.csdn.net/broadviewprograming
    数据库专栏    http://blog.csdn.net/broadviewdatabase
    Phpchina:    http://www.phpchina.com/home/space.php   
    Cn-java:    http://www.cn-java.com/www1/?564186/   
    Itpub:    http://space.itpub.net/13164110/

How——如何学习Win32汇编相关推荐

  1. 【Win32汇编】学习Win32汇编

    学习Win32汇编(Windows下的32位汇编) 第一个程序Hello world 控制台输出(新建Console App工程) Debug输出(新建Win32 App工程) 后面代码的头文件在这里 ...

  2. 学习win32汇编指令:lea和offset

    主要来源:http://topic.csdn.net/t/20061216/21/5235706.html#r_achor lea   是机器指令,offset   是伪指令. LEA  BX,  B ...

  3. 【win32汇编】0x01 开篇一些乱七八糟的话

    之前弄完了16位汇编,现在正式学习win32汇编,首先就是一些原理了,其实就是在16位的基础上增加了一些内容,其程序主要的结构记录如下 (1)指令集     .386     这是指定指令集 必须工作 ...

  4. 选择“Win32汇编”的三大理由?

    选择Win32汇编的理由是什么呢? 在DOS时代,学习汇编就是学习系统底层编程的代名词,仅要成为一名入门级的汇编程序员,就需要学习从CPU结构.CPU工作方式.各种硬件的编程方法到DOS工作方式等范围 ...

  5. Win32汇编项目总结——猎杀潜航

    必须得承认,这个项目的名字<猎杀潜航>起得大了点,一开始设想的挺好的,想用刚学到的win32汇编做点有意义的项目,都说名字是成功的一半,所以想了老半天,看了很多小游戏,觉得这种" ...

  6. Win32汇编学习——windows汇编语法(小甲鱼教程)

    Win32汇编学习--windows汇编语法(小甲鱼教程) 1)指令集 .386 语句是汇编语句的伪指令,类似指令有:.8086 . .186  ..286  ..386/.386p  . .486/ ...

  7. Win32汇编学习笔记之基础篇

    基础篇 第一章 背景知识 1.1 Win32的软硬件平台 1.1.1    80x86系列处理器简史 Win32可以在多种硬件平台上运行,但使用最广泛的硬件平台是基于Intel公司80x86系列处理器 ...

  8. Win32汇编学习——windows基础知识(小甲鱼教程)

    <Win32汇编语言程序设计>(小甲鱼) 1)windows特权保护机制 1)80386的中断和异常 2)80386的保护机制 3)Windows的保护机制 2)80x86处理器的工作模式 ...

  9. Win10系统VS2022开发环境中(X86)Win32汇编(MASM32)环境配置和一些示例源码及解释

    抱歉,还是只能用米国的软件以及技术以及等等等等......,所以各位勿怪. 如果配置完成,在vs2022调试环境下正确编译运行后,可以看到如下画面: 在VS022中开发学习汇编必然很方便. 这里可以下 ...

  10. 新版WIN32汇编开发环境介绍及RadAsm简明教程

    写在前面的话: 在准备做教程的时候去查资料,关于WIN32下汇编方面的,本来想找些现成的拿到教程里用下,但发现貌似只有一篇,是2005年时jhkdiy写的,而且翻来翻去发现所有图片也都失效了.所以准备 ...

最新文章

  1. 管理 Oracle Solaris ZFS 存储池网址
  2. 关于tomcat8在windows2008下高并发下问题的解决方案
  3. 概率分布的熵归一化(Entropy Normalization)
  4. 图解 继电器模组接线图_交流接触器,继电器的知识你了解多少?(值得收藏)...
  5. 141.Linked List Cycle
  6. Oracle提升查询性能之-简单范围分区表的创建
  7. Linux 2.6 和安卓一样吗,Linux2.4和Linux2.6设备驱动的一些区别
  8. 360os比android,手机系统比拼360OS、Flyme究竟哪个好?
  9. C语言每日一练——第88天:汉诺塔问题(河内塔)
  10. Keil5下载芯片包并导入教程
  11. 上市企业高管背景特质研究解析
  12. 开始学习机器学习之前你必须要了解的知识有哪些?机器学习系列入门篇
  13. [ZT]狄马:老子与美国南北战争
  14. Kubernetes之Service
  15. excel处置4000行数据卡_数十万数据Excel数据不好处理怎么办?几行Python搞定
  16. 电脑不能开热点的一种可以尝试的解决方法
  17. 远程计算机IP地址如何获取,获取远程主机的IP地址
  18. 汪源:数据分析热词迭出,“三个统一”值得关注
  19. 五分钟教会你如何使用GitHub
  20. 前端开发需要学什么(数据可视化)

热门文章

  1. ActiveMQ Windows部署
  2. PYTHON_错误处理
  3. python coroutine测试
  4. 两种改变 Windows Vista UI语言的途径
  5. LeetCode:每日一题——数位成本和为目标值的最大数字
  6. (Sublime Text 3)自动跳转到MATLAB运行程序
  7. Microsoft Excel常用操作
  8. shiro的详细讲解
  9. 多线程的实现方式01 Thread
  10. Android-利用LinearGradient实现文字一闪一闪