鱼C论坛

 找回密码
 立即注册
查看: 9999|回复: 28

[技术交流] 不再疑惑,汇编之后【转载】

  [复制链接]
发表于 2011-7-8 12:27:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 lsgo 于 2011-7-8 12:27 编辑

学习计算机知识的目的是为了使用计算机解决问题。为了更好的使用计算机我们必须要学会能与计算机直接沟通和交流的汇编语言。在我们认真学完《汇编语言》之后,就可以和计算机进行基本的沟通和交流了,也就是有了基础,但只有这些基础还不够,我们还需要更多的计算机方面知识。作为一个渴望知识和并不满足于现状的你,一定会想下一步该学习什么?任何简单的答复都让你质疑。但是你已学完了《汇编语言》,你应该对机器有了了解,也具备了独立判断下一步该学什么的能力了。下面是汇编相关的几个方面的介绍和分析,你看你应该从那方面入手进行下一步的学习。

1、从汇编语言自身的角度看
   《汇编语言》讲解了8086汇编机制,学完它后就具备了汇编编程的基础,并了解了8086CPU的工作机制。想进一步学习可以从以下几个方面考虑:

  1)学习所有8086汇编指令和汇编结构化编程。
  所有汇编指令我们可以从指令表查看,如果单独列出来学习也可以。但这样更像我们遇到一些生词和生字去查字典一样,我们一般不会抱着一本字典去学习。结构化编程方面可以去学习一下,如果以后需要大量的汇编编程需要深入学习。否则了解一下,打下理解高级语言的基础就可以了。现在绝大多数的应用是用高级语言编写。

  2)386及以上的保护模式。
  保护模式的编程更多的是编写操作系统人需要的。如果需要编写操作系统,我想你要深入研究一下。如果不是,可以先了解一下原理就够了。现在操作系统核心编写绝大部分用的C,只有少量要求效率很高和C没法实现的功能才用汇编实现。在windows下你无法使用受保护的指令,只能在实模式下学习。这些编程是普通应用程序用不着的,这些保护措施都是给操作系统用的。
     
  3)win32汇编编程
  主要是用汇编的方式调用windows API, 我想现在主流是用C语言方式调用windows API,用汇编纯粹是花架子,效率提高不多,程序结构和可读性比C差很多。这种逻辑上的编程,为什么不用更符合人逻辑的高级语言(C语言),而要用符合机器逻辑的汇编语言呢。我们主要是高效的解决问题,而不是炫耀。
     
  4)其它CPU编程(如Arm、8051等嵌入式)
  如果从事嵌入式开发,可以学习一下其它类型cpu的汇编,嵌入式主流的开发开始用C,当然也可能嵌入汇编。

2、从硬件设备的控制及它们直接连接看
  硬件控制和使用方面,主要通过端口编程控制硬件设备,借助8086汇编基础可以看一下微机原理及接**术方面的书。可以了解硬件之间是怎样连接和使用的,掌握更多的硬件特性。一般微机的组成: CPU、内部存储器、输入输出接口、外部设备。它们之间靠总线连接。学习这方面知识可以知道CPU是如何通过总线和设备协调工作和如何通过接口控制设备。对于硬件设备驱动的底层编程大有好处。也可以学习现有的总线和接**术如:PCI总线、USB接口等

3、从机器语言的实现和运行原理看
  如果你学完《汇编语言》后,已经知道机器是在运行机器指令。但这些机器指令是如何设   计和怎样用硬件实现的?指令的设计、寻址方式、中断控制、设备端口设计等可以去学习系统结构。它详细说明的如何设计指令的编码,寻址方式的种类及实现,为什么要使用中断机制和DMA方式。硬件和软件如何分层等问题。该方面比较综合,需要大量软件和硬件知识,建议学完组成原理和操作系统后再学系统结构。
   
  想知道CPU如何把机器翻译成信号,控制内部电路完成工作。机器指令是用硬连线实现、还是由微指令实现。 CPU的运算器和控制器怎样用硬件实现等这方面的知识可以看组成原理。

  这里和硬件更接近,相比来说嵌入式编程就不算什么硬件的工作了^_^。

4、从常用的高级语言看
  汇编语言更接近的是机器的运行方式,不太符合人们通常的逻辑习惯。所以人们对机器编程模型进行了抽象,发明了高级语言。高级语言发明极大的推动了计算机编程,大量的应用都是用高级语言实现。这也导致了人们对汇编重要性认识的不足。高级语言最终都要被翻译成汇编语言,这样才能在机器上运行。汇编语言基础掌握后,可以开始高级语言的学习。高级种类繁多,应该学习哪种? 并以怎样的角度来学习能取得最好的效果呢?当然应该从一种简洁并实用的语言开始,它既具备高级语言的特性,又更接近汇编语言(就是接近些机器)。C语言是目前所有高级语言里最适合的。如果只学习C本身语法和使用,是不太合适的,关键我们应该从学习C的过程中看到高级语言的共同特征和C语言在机器上实际运行的机制。这样我们能更快的学会其它高级语言和更好的使用其它高级语言。甚至可以创造自己的编程语言。

5、从操作系统看
  汇编可以通过中断方式调用操作系统功能,可以用汇编进行操作系统编程。 汇编可以理解操作系统,因为操作系统的一些功能只能用汇编实现,另一部分用用C语言实现。学习操作系统需要你掌握汇编语言和 C语言,当然还要学习一下数据结构的知识,只有汇编的基础不建议你马上开始学习操作系统。当然用纯汇编实现操作系统而跳过C,没问题,但现在没人愿意这么做,你要是不服,可以尝试一下!

6、解决现实问题
  汇编语言也可以解决一些实际的通用问题,这需要用汇编去实现基本数据结构和算法,在一些对效率要求高的地方使用。如果要求不太高,用C语言实现就足够了,可移植性还好,也容易改为其它高级语言。现在大部分应用程序是用高级语言写的,汇编一般只是配合一下。

  汇编是基础的基础,C语言、数据结构、组成原理、微机原理和接口是基础,操作系统和系统结构就比较系统和综合了。

  组成原理和系统结构告诉怎么实现硬件。微机原理和接口更多的是告诉你怎么连接和使用硬件。C是一种高级语言。操作系统是使用汇编语言和C语言实现的一个综合的控制硬件和提供虚拟软件接口的程序。 如果你偏向软件领域,学完《汇编语言》后还是从C语言开始吧!
本文转载于http://www.asmedu.net/news.jsp?index=185文章作者:伶妖

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-8 15:12:54 | 显示全部楼层
{:7_166:}现在就是比较急切的想了解编译器~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-12 17:26:56 | 显示全部楼层
太强大了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-18 18:12:27 | 显示全部楼层
受教了,很有启发性,不致于学完汇编就迷茫了,不过我刚开始学习汇编,感觉挺难的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-18 18:22:03 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-20 19:28:18 | 显示全部楼层
想制作属于自己的操作系统,黑客电影看多了.:lol:lol
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-21 21:00:05 | 显示全部楼层
现在就是比较急切的想了解编译器~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-21 23:59:12 | 显示全部楼层
我也有一个想法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-22 09:36:50 | 显示全部楼层
为了学单片机而去学汇编的啊!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-25 12:15:55 | 显示全部楼层
看完觉得迷茫
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-26 22:09:18 | 显示全部楼层
:(为了炫耀去学汇编哇。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-29 13:34:38 | 显示全部楼层
知道自己现在缺什么就是没有时间啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-30 17:10:40 | 显示全部楼层
c语言 我会一点 正在学习  汇编刚开始 呵呵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-2 08:35:12 | 显示全部楼层
我想学完汇编后,去学数据结构和驱动保护,API~~不知道方向对不
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-2 21:01:48 | 显示全部楼层
其实书上已经写过了,学汇编的主要目的,就是能过用汇编语言进行编程而深入的理解计算机底层的基本工作机理,达到可以随心所欲的控制计算机。
还有一本书写的很好,也是我一直追逐的目标《疯狂的程序员》,大家有时间看看,收获很多的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-3 23:41:02 | 显示全部楼层
口味重的很!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-3 23:43:31 | 显示全部楼层
想深入汇编  想逆向
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-5 11:13:05 | 显示全部楼层
顶顶啊  学习哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-5 11:15:02 | 显示全部楼层
顶顶啊  学习哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-5 21:50:02 | 显示全部楼层
惨了.目标远了.又嘚多学了..
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-21 00:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表