机器语言是由计算机直接使用的二进制编码指令构成的语言,每条机器语言只能执行一个非常低级的任务,但其却是一切编程语言的基础与起源,因此对机器语言进行了解是计算机学习必不可少的一环。
大家对机器语言难以理解的根源还是因为其抽象性,对此我们有必要先了解Pep/9的部分指令:
| 操作码 | 指令的意义 |
|---|---|
| 0000 | 停止执行 |
| 1100 | 将字载入寄存器A中 |
| 1101 | 将字节载入寄存器A中 |
| 1110 | 存储寄存器A中的字 |
| 1111 | 存储寄存器A中的字节 |
| 0110 | 将操作数加到寄存器A中 |
| 0111 | 从寄存器A减操作数 |
然后我选择直接用例子来向大家解释:
1. 行为:将‘H’载入累加器中
二进制指令:1101 0000
0000 0000 0100 1000
解释:1101是指令说明符,表示将字节载入寄存器的操作,0000是寄存器说明符和寻址模式的代码,表示立即寻址,即其下操作说明符中的值即为需要被操作的值。
0000 0000 用于占位,因为‘H’不需要16位二进制字符表示,所以需要0来占位。
0100 1000 是ASCII字符集中用于表示‘H’的编码。0100 1000 是ASCII字符集中用于表示‘H’的编码。
### 2. 行为:将‘i‘载入累加器中
二进制指令:1101 0000
0000 0000 0110 1001
解释:与上述同理,只是最后被替换为了0110 1001(‘i‘的编码)
如此一来,机器语言便显得简单易懂了,其实部分同学觉得很难的原因还是源于没有静下来认真思考分析,分析之后可以发现这其实是一个很机械的过程。