简述机器指令及组成。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简述机器指令及组成。相关的知识,希望对你有一定的参考价值。
机器指令(MachineInstructions)是CPU能直接识别并执行的指令,它的表现形式是二进制编码。机器指令通常由操作码和操作数两部分组成,操作码指出该指令所要完成的操作,即指令的功能,操作数指出参与运算的对象,以及运算结果所存放的位置等。
由于机器指令与CPU紧密相关,所以,不同种类的CPU所对应的机器指令也就不同,而且它们的指令系统往往相差很大。但对同一系列的CPU来说,为了满足各型号之间具有良好的兼容性,要做到:新一代CPU的指令系统必须包括先前同系列CPU的指令系统。只有这样,先前开发出来的各类程序在新一代CPU上才能正常运行。
机器语言是用来直接描述机器指令、使用机器指令的规则等。它是CPU能直接识别的唯一一种语言,也就是说,CPU能直接执行用机器语言描述的程序。
用机器语言编写程序是早期经过严格训练的专业技术人员的工作,普通的程序员一般难以胜任,而且用机器语言编写的程序不易读、出错率高、难以维护,也不能直观地反映用计算机解决问题的基本思路。 参考技术A 机器指令主要有操作码和地址码。操作码用来区分指令所要完成的功能和指令数量。地址码就是操作数所在的位置,按地址数量分为0地址,1地址,2地址等。按寻址方式可以分为:立即数(操作数就包含在指令中),直接寻址,间接寻址(单重简介和多重简介),寄存器直接寻址、简介寻址,相对寻址,变址寻址等。这个太多了,还有指令设计啥的,你找本计算机组成原理的书看吧。
浅谈语言的发展历史及未来发展
发展历程:
计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。
1.机器语言:(1940年之前)
机器语言,是第一代计算机语言,是由"0"和"1"组成的二进制数,不同的 CPU 具有不同的指令系统。机器语言程序难编写、难修改、难维护,需要用户直接对存储空间进行分配,编程效率极低。
2.汇编语言:(20世纪40年代)
汇编语言指令是机器指令的符号化,与机器指令存在着直接的对应关系,所以汇编语言同样存在着难学难用、容易出错、维护困难等缺点。但是汇编语言也有自己的优点:可直接访问系统接口,汇编程序翻译成的机器语言程序的效率高。
3.高级语言:(20世纪50年代)
高级语言是面向用户的、基本上独立于计算机种类和结构的语言。其最大的优点是:形式上接近于算术语言和自然语言,概念上接近于人们通常使用的概念。高级语言的一个命令可以代替几条、几十条甚至几百条汇编语言的指令。因此,高级语言易学易用,通用性强,应用广泛。高级语言种类繁多,可以从应用特点和对客观系统的描述两个方面对其进一步分类。
- 1951 – Regional Assembly Language
- 1952 – Autocode
- 1954 – IPL (LISP语言的祖先)
- 1955 – FLOW-MATIC (COBOL语言的祖先)
- 1957 – FORTRAN (第一个编译型语言);COMTRAN (COBOL语言的祖先)
- 1958 – LISP;ALGOL 58
- 1959 – FACT (COBOL语言的祖先);COBOL;RPG
- 1962 – APL;Simula;SNOBOL
- 1963 – CPL (C语言的祖先)
- 1964 – BASIC;PL/I
- 1966 – JOSS
- 1967 – BCPL (C语言的祖先)
- 1968 – Logo
- 1969 – B (C语言的祖先)
- 1970 – Pascal;Forth
- 1972 – C;Smalltalk;Prolog
- 1973 – ML
- 1975 – Scheme
- 1978 – SQL
- 1980 – C++ (既有类的C语言,更名于1983年7月)
- 1983 – Ada
- 1984 – Common Lisp;MATLAB
- 1985 – Eiffel
- 1986 – Objective-C;Erlang
- 1987 – Perl
- 1988 – Tcl;Mathematica
- 1989 – FL
- 1990 – Haskell
- 1991 – Python;Visual Basic
- 1993 – Ruby;Lua
- 1994 – CLOS (ANSI Common Lisp的一部分)
- 1995 – Java;Delphi (Object Pascal);JavaScript;PHP
- 1996 – WebDNA
- 1997 – Rebol
- 1999 – D
- 2000 – ActionScript
- 2001 – C#;Visual Basic .NET
- 2002 – F#
- 2003 – Groovy;Scala
- 2007 – Clojure
- 2009 – Go
- 2011 – Dart
发展趋势
大的发展趋势是: 体力劳动和重复劳动越来越少, 需要程序员编写的代码越来越少, (大部分由IDE或工具自动生成,或根本不需要那些代码) 程序员只编写核心逻辑.
计算机语言趋势面向对象程序设计以及数据抽象在现代程序设计思想中占有很重要的地位,未来语言的发展将不在是一种单纯的语言标准,将会以一种完全面向对象,更易表达现实世界,更易为人编写,其使用计算机语言将不再
只是专业的编程人员,人们完全可以用订制真实生活中一项工作流程的简单方式来完成编程。未来发展的三个方向:1.并发式;2.声明式;3.函数式;4.动态式。
以上是关于简述机器指令及组成。的主要内容,如果未能解决你的问题,请参考以下文章