目录
最早的程序开发过程
- 用机器语言编写程序. 并记录在纸带或卡片上
- 例如 :
假设 : 0010-jc
0 : 0101 0110
1 : 0010 0100
2 : ...
3 : ...
4 : 0110 0111
5 : ...
6 : ...
- 0101 表示加法, 0110表示一个地址
用汇编语言开发程序
- 用符号表示跳转位置和变量位置.
add B
jc L0
...
...
L0 : sub C
...
B : ...
C : ...
- 用助记符表示操作码 : 比如 add
- 用标号表示位置 : 比如 B
- 用助记符表示寄存器
但是机器不认识这些指令
需要将汇编语言转换为机器语言
- 汇编语言由汇编指令构成
- 汇编指令是用助记符和标号来表示的指令
指令
- Ld M# , R# : 将存储单元内容装入寄存器
- Ld : load , 装入
- St R# , M# : 将寄存器内容装入存储单元
- St : store , 存储
- Add R# , M# : 将存储单元某个内容和寄存器某个内容做加法
- 类似的还有**Sub (减法), Mul (乘法)**等.
- 操作数还可以写做 “R# , R#” 等
- Jxx M# : 如果满足条件, 则转移到另一处执行.
指令包含操作码和操作数或其地址码
高级语言开发程序
- 它们与具体机器结构无关
- 面向算法描述, 比机器及语言描述能力强的多
- 高级语言中一条语句对应几条, 几十条甚至几百条指令
- 有两种转换方式 : 编译 和 解释
- 编译程序 : 将高级语言源程序转换为机器级目标程序, 执行只有启动目标程序即可
- 解释程序 : 将高级语言语句逐条翻译成机器指令并立即执行
一个典型程序转换处理过程
hello.c
#include <stdio.h>
int main()
{
printf("hello, world\n");
}