机器语言
外观
此条目没有列出任何参考或来源。 (2014年4月3日) |
程序执行 |
---|
基础概念 |
代码类型 |
编译策略 |
|
知名运行环境 |
著名编译器及工具链 |
机器语言(machine language)是一种指令集的体系。这种指令集称为机器码(machine code),是电脑的CPU或GPU可直接解读的资料。
机器码有时也被称为原生码(Native Code),这个名词比较强调某种程式语言或函式库与执行平台相关的部份。
简介
[编辑]机器语言是用二进制代码表示的、计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。不同种类的计算机其机器语言是不相容的,按某种计算机的机器指令编制的程式不能在另一种计算机上执行。
要用机器语言编写程序,编程人员需首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员要自己处理每条指令和每一数据的存储分配和输入输出,还需记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作,编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,这样编写出的程序完全是0与1的指令代码,可读性差且容易出错。在现今,除了计算机生产厂家的专业人员外,绝大多数程序员已经不再学习机器语言。
- 机器语言是微处理器理解和使用的用于控制它的操作的二进制代码。
- 8086到Pentium的机器语言指令长度可以从1字节到13字节。
- 尽管机器语言看似非常复杂,但它是有规律的。
- 现今存在着超过100000种机器语言的指令。
以下是一些范例:
- 指令部份的范例
- 0000 代表 载入(LOAD)
- 0001 代表 储存(STORE)
...
- 暂存器部份的范例
- 0000 代表暂存器 A
- 0001 代表暂存器 B
...
- 记忆体部份的范例
- 000000000000 代表位址为 0 的记忆体
- 000000000001 代表位址为 1 的记忆体
- 000000010000 代表位址为 16 的记忆体
- 100000000000 代表位址为 2^11 的记忆体
- 整合范例
- 0000,0000,000000010000 代表 LOAD A, 16
- 0000,0001,000000000001 代表 LOAD B, 1
- 0001,0001,000000010000 代表 STORE B, 16
- 0001,0001,000000000001 代表 STORE B, 1