开发语言小传之二:进化后的机器语言——汇编语言
2014-12-28 22:05
218 查看
为了写本文,我在网上搜索汇编语言的发明者,结果出乎意料,几乎找不到!后来又搜索英文网站,才在Ask网站(http://www.ask.com/)上找到一个回答,是NathanialRochester和Stan Poley。正如Ask那个回答所说的那样,汇编语言与其说是被发明出来的,还不如说是自然而然进化、发展出来的。当然,这不能说最早想到这个点子的人不重要。
我想,之所以汇编语言不如其他流行高级语言的发明者那样,名字广为人知,主要是汇编语言跟计算机的体系设计密切相关,不同型号的机器有不同的设计,汇编语言这种本质上只是机器语言的简单映射(早期时候),因为不同的机器而完全不同,所以最初的设计者只是设计思想被传播,实际的指令什么的每种机器都要重新弄一遍,当时各种体系计算机数目又很多,所以才把设计者轻易的湮灭掉了。
我们知道,最早出现的电子计算机是靠机器语言,也就是二进制来操纵的。要想表达一个指令,要在卡片或者纸带上打上一大堆表示0或1的孔。不用说别的,光是核对一遍就够让人头疼的。于是在1949年末,1950年初的时候,汇编程序的雏型在电子离散时序自动计算机 EDSAC上研制成功的。这是非常简单、初级的指令系统,比如“A 128 F”,“A”表示加(add),“128”表示地址,“F”是终结字母。要知道,当年的存储器都是非常昂贵的,连汇编语言本身字符占位都是要节约的,能少则少!上面那条最早的汇编指令,换算成二进制是11100000100000000,要占17比特(bit)。
第一个汇编程序是符号优化汇编程序(SOAP)系统﹐它是50年代中期为IBM650计算机研制的,是汇编程序发展中的一个重要里程碑。此後的汇编程序大都以这一系统为模型﹐其主要特征至今未发生本质的变化。随著计算机软件的高速发展和广泛应用﹐汇编程序又吸收了宏加工程序﹑高级语言翻译程序等系统的一些优点﹐相继出现了宏汇编程序﹑高级汇编程序等。
※图片来自《CODING forthe MIT-IBM 704 COMPUTER》。
汇编语言是对机器语言(二进制)的抽象,用人容易记忆、理解的字母符号代替直接的二进制。但它本质上依然是面向机器的语言,每一个语句都能对应上机器指令,一步步告诉机器(主要是CPU)该干什么。汇编语言一直都是跟机器直接打交道的最有效手段,今天也是。但现在基本局限于需要跟机器直接打交道驱动程序、操作系统底层跟硬件结合部分、嵌入式工业芯片等领域。
我想,之所以汇编语言不如其他流行高级语言的发明者那样,名字广为人知,主要是汇编语言跟计算机的体系设计密切相关,不同型号的机器有不同的设计,汇编语言这种本质上只是机器语言的简单映射(早期时候),因为不同的机器而完全不同,所以最初的设计者只是设计思想被传播,实际的指令什么的每种机器都要重新弄一遍,当时各种体系计算机数目又很多,所以才把设计者轻易的湮灭掉了。
我们知道,最早出现的电子计算机是靠机器语言,也就是二进制来操纵的。要想表达一个指令,要在卡片或者纸带上打上一大堆表示0或1的孔。不用说别的,光是核对一遍就够让人头疼的。于是在1949年末,1950年初的时候,汇编程序的雏型在电子离散时序自动计算机 EDSAC上研制成功的。这是非常简单、初级的指令系统,比如“A 128 F”,“A”表示加(add),“128”表示地址,“F”是终结字母。要知道,当年的存储器都是非常昂贵的,连汇编语言本身字符占位都是要节约的,能少则少!上面那条最早的汇编指令,换算成二进制是11100000100000000,要占17比特(bit)。
第一个汇编程序是符号优化汇编程序(SOAP)系统﹐它是50年代中期为IBM650计算机研制的,是汇编程序发展中的一个重要里程碑。此後的汇编程序大都以这一系统为模型﹐其主要特征至今未发生本质的变化。随著计算机软件的高速发展和广泛应用﹐汇编程序又吸收了宏加工程序﹑高级语言翻译程序等系统的一些优点﹐相继出现了宏汇编程序﹑高级汇编程序等。
※图片来自《CODING forthe MIT-IBM 704 COMPUTER》。
汇编语言是对机器语言(二进制)的抽象,用人容易记忆、理解的字母符号代替直接的二进制。但它本质上依然是面向机器的语言,每一个语句都能对应上机器指令,一步步告诉机器(主要是CPU)该干什么。汇编语言一直都是跟机器直接打交道的最有效手段,今天也是。但现在基本局限于需要跟机器直接打交道驱动程序、操作系统底层跟硬件结合部分、嵌入式工业芯片等领域。
相关文章推荐
- 《PL/SQL 语言开发参考手册》之二:PL/SQL 程序结构
- 汇编语言新手入门:VC2008 环境下汇编语言开发环境的配置,支持Visual Assist
- LIMS系统开发经历----之二(将业务流程转换成计算机语言)
- 第一课机器语言与汇编语言
- 【COCOS2DX-LUA 脚本开发之二】LUA语言基础
- Java语言实验机器与环境及JDK开发工具简介及Java程序开发步骤
- 开发语言小传之一:最早的编程语言——机器语言
- 《PL/SQL 语言开发参考手册》之二:PL/SQL 程序结构
- 【COCOS2DX-LUA 脚本开发之二】LUA语言基础
- 【Cocos2dx-Lua 脚本开发之二】Lua语言基础
- 编程语言小传之 一.最早的编程语言——机器语言
- 【COCOS2DX-LUA 脚本开发之二】LUA语言基础
- 开发语言小传之零:第一个写程序的人
- VS2010开发体验系列之二 - 语言C#4.0
- 基于Axis2的webservice开发及跨平台跨语言调用之二
- 【COCOS2DX-LUA 脚本开发之二】LUA语言基础
- 【COCOS2DX-LUA 脚本开发之二】LUA语言基础
- 发现Rose比一门开发语言还难学
- 不同开发语言下的三元运算符
- 开发Foxmail与Pocket PC的同步软件系列之二--FreeMail