机器语言属于什么语言:计算机唯一能直接识别的低级语言
上周帮班里同学梳理计算机基础期末考点,被反复问到机器语言属于什么语言,当时对着课本上的分类表直接卡壳,照着书本字面定义死记硬背,刷题的时候还是频频出错。
照着教辅资料把机器语言归类为低级语言,做完十道选择题,连着六道都选错答案。题目里区分机器语言、汇编语言、高级语言,每次都把机器语言和汇编语言混为一谈,明明都标注了低级语言,做题时依旧分不清二者的核心区别,选择题得分一直卡在及格线以下。
直接抛开所有书本定义,打开电脑本地的汇编调试工具,亲手输入一段最简单的加法汇编代码。
代码写完点击运行,屏幕没有任何运算结果弹出,系统直接弹出报错弹窗,提示代码无法被CPU直接读取执行,必须经过汇编器翻译成二进制机器码,硬件才能识别指令。
0和1组成的二进制代码,不用任何翻译软件、不用编译器、不用汇编工具,粘贴到调试器里可以直接运行。
很多人都会下意识把所有贴近计算机硬件的语言全部归为一类,这也是刷题时最常见的做题误区。汇编语言依旧需要二次翻译,不能直接和硬件交互,它只是机器语言的符号化改写。
真正能直达计算机底层硬件,无需任何中转编译步骤的,只有纯二进制构成的机器语言。
课堂上机实操的时候,亲眼见过同桌直接复制网上的机器语言代码运行,程序秒启动,没有丝毫编译等待的时间。而同样功能的C语言代码,等待编译耗时接近十秒,中间还要经过预处理、编译、汇编、链接四个完整流程,才能最终转化成机器语言被硬件识别。
高级语言屏蔽了所有硬件底层细节,开发者不用了解CPU寄存器、内存地址就能写代码,上手门槛极低。汇编语言需要贴合硬件结构编写指令,门槛大幅提升,但依旧不属于计算机原生语言。机器语言完全贴合硬件架构,每一串二进制数字都对应CPU专属的控制信号,没有任何一层封装。
考试判断题里有一道高频原题:机器语言和汇编语言可以直接被计算机执行。直接勾选错误即可。只有机器语言满足直接执行的条件,汇编语言始终依赖程序翻译,无法脱离工具独立运行。
不用纠结各类语言晦涩的官方概念,只记一个实操判断标准就行。能不能跳过所有编译、汇编工具,直接让电脑CPU运行,能直接运行的就是机器语言,它是原生的计算机低级语言。