机器语言

维基百科,自由的百科全书
跳转至: 导航搜索
WikipediaBinary.svg
W65C816S 機器碼

机器语言machine language)是一種指令集的體系。这种指令集,称機器碼machine code),是電腦的CPU可直接解讀的資料。

機器碼有時也被稱為原生碼Native Code),這個名詞比較強調某種程式語言或函式庫,它與執行平台相關的部份。

簡介[编辑]

机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。不同型号的计算机其机器语言是不相通的,按着一种计算机的机器指令编制的程序,不能在另一种计算机上执行。

用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作,编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。现在,除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。

  • 机器语言是微处理器理解和使用的,用于控制它的操作二进制代码。
  • 8086Pentium的机器语言指令长度可以从1字节到13字节。
  • 尽管机器语言好像是很复杂的,然而它是有规律的。
  • 存在着多至100000种机器语言的指令。这意味着不能把这些种类全部列出来。

以下是一些範例:

  • 指令部份的範例
    1. 0000 代表 載入(LOAD)
    2. 0001 代表 儲存(STORE)

...

  • 暫存器部份的範例
    1. 0000 代表暫存器 A
    2. 0001 代表暫存器 B

...

  • 記憶體部份的範例
    1. 000000000000 代表位址為 0 的記憶體
    2. 000000000001 代表位址為 1 的記憶體
    3. 000000010000 代表位址為 16 的記憶體
    4. 100000000000 代表位址為 2^11 的記憶體
  • 整合範例
    1. 0000,0000,000000010000 代表 LOAD A, 16
    2. 0000,0001,000000000001 代表 LOAD B, 1
    3. 0001,0001,000000010000 代表 STORE B, 16
    4. 0001,0001,000000000001 代表 STORE B, 1