机器语言是直接操作硬件的,汇编简单的封装了机器语言,从而便于读写。
汇编语言和机器语言的语句之间是一一对应或者一对多的简单对应关系,从抽象层次上来说,机器语言和汇编语言处在差不多同一个level。
CPU要做的事情无谓于算术运算,逻辑运算等,再加上条件判断和跳转等等就足够了。因为要从汇编语句里面总结出结构(模式)是非常困难的,所以,汇编语言的代码复用性很不好,没有人喜欢做重复劳动,于是将语言的抽象层次提高到更高的抽象层,条件判断用if else来写,跳转用goto来写,这样将重复劳动交给计算机去做。
另外,还有一点为什么需要C语言的原因是,汇编离硬件太近了,每一次硬件的修改,都触动汇编程序的重新修改。
而如果是C语言编写的源代码,将站在一个更高的抽象层次,隔离硬件的差异,不会因为硬件的改动而改动源代码。