CPU指令、机器码、程序和汇编语言

一、指令

指令就是指挥机器工作的指示和命令。控制器靠指令指挥机器工作,人们用指令表达自己的意图,并交给控制器执行。一台计算机所能执行的各种不同指令的全体,叫做计算机的指令系统或指令集,每一台计算机均有自己的特定的指令系统,其指令内容和格式有所不同。一条指令具有实际的意义,CPU会完成一次操作,达到一定目的。人类能够理解其意义。

二、机器码

 机器码说白了,就是用一种机器也就是CPU认识和理解的有一定结构的语言来表达指令,某条指令用这种语言表达成一条语句,就是这条指令的机器码。我们知道,现在的CPU他只能理解二进制,那么机器码就是某条指令在某个CPU上一组有意义的二进制代码。为了指出数据来源、操作结果去向及所要执行的操作,指令必须包含下列信息:
  • 操作码
    用来表示该指令要完成的操作,如+-*/等
  • 操作数或操作数地址
    用来指出操作对象的地址(内存地址或寄存器)或直接给出操作数
  • 操作结果存储地址
  • 下条指令地址

如何区分指令和数据:我们可以通过不同的时间段来区分指令和数据,即在取指令阶段(或取指微程序)取出的为指令,在执行指令阶段(或相应微程序)取出的即为数据。如果通过地址来源区分,由PC提供存储单元地址的取出的是指令,由指令地址码部分提供存储单元地址的取出的是操作数。

三、程序

计算机程序(英语:Computer program),也称为软件(英语:software),简称程序。是指一组指示计算机或其他具有信息处理能力装置执行动作或做出判断的指令。也就是说,程序是为了实现某个目的或功能,按照一定逻辑人为编写的在特定目标机上运行的指令和数据的集合。

四、汇编语言

为了编写计算机能运行的程序,早期的程序设计均使用机器语言。程序员们将用0, 1数字编成的程序代码打在纸带或卡片上,1打孔,0不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算。这样的机器语言由纯粹的0和1构成,十分复杂,不方便阅读和修改,也容易产生错误。程序员们很快就发现了使用机器语言带来的麻烦,它们难于辨别和记忆,给整个产业的发展带来了障碍,于是汇编语言产生了。汇编语言的主体是汇编指令。汇编指令和机器码的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。所以汇编语言是符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。许多汇编程序为程序开发、汇编控制、辅助调试提供了额外的支持机制。有的汇编语言编程工具经常会提供宏,它们也被称为宏汇编器。汇编语言不像其他大多数的程序设计语言一样被广泛用于程序设计。在今天的实际应用中,它通常被应用在底层,硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序都需要汇编语言。

五、总结

  • 形而上的指令是人类能理解的要求计算机做的操作
  • 机器码是形而下的指令,对应目标机的具体表达形式和内容,也就是说机器码是指令在目标机的具象。
  • 每台机器的指令,其格式和代码所代表的含义都是硬性规定的,故称之为面向机器的语言,也称为机器语言。二进制,作为一种机器码,计算机可以直接识别,不需要进行任何翻译
  • 汇编语言可以简单理解为机器语言的助记符,也是人类能记忆和理解的。
原文地址:https://www.cnblogs.com/yilang/p/10997380.html