ChristmasError-Blog

《深入了解计算机系统》笔记——汇编语言和机器语言

字数统计: 767阅读时长: 2 min
2018/10/15 Share

汇编语言和机器语言

我们不需要完全了解掌握机器语言、汇编语言来进行编程(这是计算机生产厂家要做的事)。我们所要知道的是如何看懂汇编语言就行了。我们所编写的高级语言,被翻译成汇编语言时,编译器会自动进行一些优化处理。

机器语言

计算机是不能直接识别我们所编写的C程序或者Java程序的。它只能识别机器语言,而机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指指令系统令的集合。
但要用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这个工作十分繁琐且困难。编写程序花费的时间往往是实际运行时间的几十倍或几百倍;并且编出的程序只是0和1的指令代码,直观性差,还容易出错。
这时候我们就需要用到汇编语言了:

汇编语言

汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上,汇编指令是机器指令便于记忆的书写格式

计算机是只认识机器指令的,这时候我们就需要编译器将汇编语言转换成机器指令的工具。

程序员->(输入)汇编指令->编译器->(转化)机器码->计算机

汇编语言是直接面向处理器(Processor)的程序设计语言。
处理器是在汇编指令的控制下工作的,处理器可以识别每一条指令为机器指令。
汇编语言另一个特点是是它所操作的对象不是具体的数据而是寄存器或者存储器。(汇编语言直接和寄存器和存储器打交道),这也是汇编语言比其他语言执行速度要快的原因(相应的也比其他语言更复杂)。
汇编语言指令是机器指令的一种符号表示,而不同类型的CPU 有不同的机器指令系统,也就有不同的汇编语言。因此汇编语言程序与机器有着密切的关系。也正因如此,汇编语言的通用性和可移植性要比高级语言程序低。

总结对机器有相关性、高速度&效率、(相对于高级语言)编写和调试复杂

高级语言

高级语言并不是指一种语言,而是包括很多编程语言,比如Java、C、C++、C#、python等等,是高度封装的编程语言。

CATALOG
  1. 1. 汇编语言和机器语言
    1. 1.0.1. 机器语言
    2. 1.0.2. 汇编语言
    3. 1.0.3. 高级语言