What & How & Why

这是本文档旧的修订版!


Machine Language

Week 4 notes


Overview

  • Univeraslity: 相同的硬件运行不同的软件 Turing + von Neumann
  • 计算机通过机器语言(二进制指令)来实现软件层面上的不同功能
  • 机器语言提供的的三个信息:
    • Operations:指令需要计算机做什么
    • Counter:指令以及下一步指令是什么
    • Addressing:指令需要操作哪些硬件

Compilcation

  • 计算机只能识别机器语言
  • 人类需要通过编译器将人类友好的语言转化为机器语言
Mnemonics

为了更方便的讨论机器语言,人们通常将指定的代码段与相应的含义(Mnemonic Form)对应起来。下面的例子中,ADD 就是 0100010 对应的 Mnemonic Form。可以观察到的是,这种替代不仅可以代表 operation,也可以代表地址。

需要注意的是:

  • 类似 ADD 这样的形式不是真正存在的
  • 人类通过汇编语言(assembly language)来讲上述形式转化为机器语言
Symbols

Symbols 主要应用于简化内存寻址的过程。比如维护一个 index,将指定的内存区域分为不同的片区,当需要对指定区域进行操作时,我们可以通过对应的 index 对其进行快速访问。这种将 symbol 与实际内存地址建立映射关系的方式,会大大增强程序的易读性和可维护性。该映射关系也是由 assmbler 来翻译的。