| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1026 人关注过本帖, 1 人收藏
标题:不同角度看计算机的一门语言
只看楼主 加入收藏
mouse_china
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-11-8
收藏(1)
 问题点数:0 回复次数:9 
不同角度看计算机的一门语言
文章作者:dodo
学习计算机知识的目的是为了使用计算机解决问题。为了更好的使用计算机我们必须要学会能与计算机直接沟通和交流的汇编语言。在我们认真学完《汇编语言》之后,就可以和计算机进行基本的沟通和交流了,也就是有了基础,但只有这些基础还不够,我们还需要更多的计算机方面知识。作为一个渴望知识和并不满足于现状的你,一定会想下一步该学习什么?任何简单的答复都让你质疑。但是你已学完了《汇编语言》,你应该对机器有了了解,也具备了独立判断下一步该学什么的能力了。下面是汇编相关的几个方面的介绍和分析,你看你应该从那方面入手进行下一步的学习。


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的运算器和控制器怎样用硬件实现等这方面的知识可以看组成原理。

   这里和硬件更接近,相比来说嵌入式编程就不算什么硬件的工作了^_^。本栏目所有文章的版权归本站所有,转载请注明出处为汇编网程序员眼中的世界<[url]www.[/url]> 。
 


4、从常用的高级语言看

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


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

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


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

组成原理和系统结构告诉怎么实现硬件。微机原理和接口更多的是告诉你怎么连接和使用硬件。C是一种高级语言。操作系统是使用汇编语言和C语言实现的一个综合的控制硬件和提供虚拟软件接口的程序。 如果你偏向软件领域,学完《汇编语言》后还是从C语言开始吧!本栏目所有文章的版权归本站所有,转载请注明出处为汇编网程序员眼中的世界<[url]www.[/url]> 。

发表日期:07/12/11
搜索更多相关主题的帖子: 计算机 语言 角度 
2007-12-11 18:15
mouse_china
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-11-8
收藏
得分:0 
这么好的文章怎么没有人顶阿
2007-12-14 15:18
维c
Rank: 1
等 级:新手上路
帖 子:202
专家分:0
注 册:2007-8-13
收藏
得分:0 
顶。。

花开花落
不愁不惑
http://hi.baidu.com/vitaminic
2007-12-14 20:31
孤魂居士
Rank: 2
来 自:老A(中国地大)
等 级:论坛游民
威 望:4
帖 子:1142
专家分:18
注 册:2007-5-21
收藏
得分:0 

个人看了好像有的不懂
好像对我没有什么用
不过楼主辛苦了

准备用3年做个高级软件工程师 10年也做不成。准备用10年做成高级软件工程师 3年就成了QQ 群 45771086
欢迎版主...欢迎JAVA爱好者...
一起从深夜 到凌晨...
2007-12-14 20:40
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
顶一下...........

樱花大战,  有爱.
2007-12-14 20:58
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
谢谢了
2007-12-14 22:28
mouse_china
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-11-8
收藏
得分:0 
2008-01-02 18:54
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
顶一个
2008-01-02 19:39
l670397306
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2007-10-13
收藏
得分:0 
问楼主一个问题啊
楼主是不是也是要学单片机啊
你说的这些都与单片机有很大的联系哦
C语言学完后可不可以直接学汇编语言啊

2008-01-07 20:27
l670397306
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2007-10-13
收藏
得分:0 
为了学单片机,可不可以C语言学完后可不可以直接学汇编语言啊
请知道的人帮帮我啊

2008-01-07 20:28
快速回复:不同角度看计算机的一门语言
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018988 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved