作者asjustinhsu (asjustinhsu)
看板ASM
标题Re: [问题] 我适合现在就去接触组合语言吗
时间Wed Mar 7 17:43:30 2007
Handspring老兄,从你的文章里,我发现你有很多观念很混淆
我试着帮你厘清,看看有没有帮助
你的文章里提到几个名词,我把它分成四大类
A C语言、组合语言
B 低阶语言、高阶语言、中高阶语言
C 系统程式
D X86 80X86 CPU
这些是不同的东西,但相互有关联
首先第一类,电脑语言
我们先不去谈电脑语言,先来看看我们平常说话的语言
有中文、日文、西班牙文、英文.......
各语文有各语文的特色,以及它使用的场合
但是各语言之间的转换遵守一定的法则
我们统称文法
在电脑的世界也是一样的
C语言有C语言使用的场合,组合语言也有它适用的场合
延伸来说,BASIC、PASCAL、FORTRAN也各有牠们适用的场合
各语言相互独立,各有各的开发环境
单看你在何种场合使用它
但各语言间也有转换的法则
但通常,都以组合语言为转换的标准
为什麽会这样呢
这就要用下一类的观念来解释------低阶、高阶、中高阶
首先有个观念我一定要先说明
在电脑的世界里,中央处理单元(CPU),最重要的核心
CPU只懂一种语言,叫做机器码,是由一堆16进位的数字组成
各不同的CPU都有不同的机器码
INTEL 80系列有一套,Motorola也有一套
而且十分复杂,尔且很不直觉
於是就有人发展出了一种电脑语言,加上一些简单易记的助记码
这就是组合语言
因此,组合语言是最贴近电脑能懂的电脑语言
不知从何开始,有人就定义,
越接近机器码的语言,统称为低阶语言,如组合语言
越接近人类直觉能懂得语言,统称为高阶语言,如BASIC
介於低阶及高阶之间的语言,统称为中高阶语言,如C
回到上一个问题
为何大家都以组合语言为依规呢
经过上面的说明,其实你也大概知道
组合语言最接近机器码,大家都翻译成机器码,最能相互融合
就像我们说的语言,大家通常都会翻译成英文
因为英文最多人懂,也最好纪录
一样的道理
以上讨论的,我们统称软体(Software)(对岸翻译成软件)
接下来,我们讨论硬体(Hardware)
8086、80x86是CPU晶片的编号,这是Intel族系的编号
我们写出来的软体,只是一串逻辑观念,需要透过硬体,才能把这串逻辑加以实现
CPU就是指挥调度这串逻辑最重要的中心
这就是你问,"组合语言跟X86或80X86是什麽关系"的解答
最後,系统程式
我们都知道,电脑硬体不单单仅只有CPU
它还包含其他部分,才能完成我们输入的命令
喔!对了,再定义一个名词,由程式员输入的命令,统称为指令(Instruction)
这些部份,包含键盘、萤幕、音效卡、显示卡.......很多很多
这些元件,我们统称系统周边
如果我们实现一串指令,形成一串程式,控制这些系统周边
这种程式,通常称为系统程式
所以,系统程式不一定要由组合语言实现
C、BASIC都可以实现
写了一大串,试着厘清你所提出的问题
希望对你有帮助
※ 引述《loveflames (.....)》之铭言:
: ※ 引述《Handspring (我厌倦资本的竞争主义)》之铭言:
: : 我都不会任何程式语言
: : 这学期要去上一门C++
: : 另外也考虑要去旁听组合语言
: : 请问这样好吗
: : C++跟组合语言不是独立的东西
: : 所以不会C++应该没差吧??!!
: : 请问 组合语言是不是一些低级语言的总称
: : 不然组合语言跟X86或80X86是什麽关系
: : 另外 组合语言的别称 是不是又叫系统程式
: 在不同的cpu
: 都大概是这样
: 机械语言→组合语言→(中高阶语言)→(高阶语言)
: 凡是可直接看出cpu动作的就算组合语言了
: x86架构下
: 中高阶语言应该是C
: 其他大概都算是高阶语言
: 注:系统程式是OS、Assembler、compiler的入门
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.110.232
1F:推 compound:路过推一下 03/08 00:57
2F:推 Handspring:谢谢 其实我概念半知半解 你这篇帮我厘清 谢谢<(_ _)> 03/08 01:00
3F:推 meanwhy:推~~ 03/08 10:36
4F:推 happycoco:很好的评论,推 03/11 14:41