机器代码

编辑
本词条由“匿名用户” 建档。

在计算机编程中,机器代码是任何低级编程语言,由机器语言指令组成,用于控制计算机的中央处理器(CPU)。每条指令都会使CPU执行一项非常具体的任务,例如对CPU寄存器或内存中的一个或多个数据单元进行加载、存储、跳转或算术逻辑单元(ALU)操作。 机器代码是一种严格的数字语言,旨在尽可能快地运行,并且可以被视为已编译或组装的计算机程序的最低级别表示,或者被视为原始和依赖于硬件的编程语言。虽然可以直接用...

机器代码

编辑

计算机编程中,机器代码是任何低级编程语言,由机器语言指令组成,用于控制计算机的中央处理器(CPU)。每条指令都会使CPU执行一项非常具体的任务,例如对CPU寄存器或内存中的一个或多个数据单元进行加载、存储、跳转或算术逻辑单元(ALU)操作。

机器代码是一种严格的数字语言,旨在尽可能快地运行,并且可以被视为已编译或组装的计算机程序的最低级别表示,或者被视为原始和依赖于硬件的编程语言。虽然可以直接用机器代码编写程序,但手动管理单个位和计算数字地址和常数是乏味且容易出错的。出于这个原因,在现代环境中,程序很少直接用机器代码编写,但可以用于低级调试、程序修补(特别是当汇编源代码不可用时)和汇编语言反汇编.

今天的大多数实用程序都是用高级语言或汇编语言编写的。然后,源代码被编译器、汇编器和链接器等实用程序转换为可执行的机器代码,但解释程序的重要例外不会被转换为机器代码。然而,解释器本身可以被视为执行源代码指令的执行器或处理器,通常由直接可执行的机器代码(从汇编或高级语言源代码生成)组成。

根据定义,机器代码是程序员可见的最低级别的编程细节,但在内部,许多处理器使用微代码或优化并将机器代码指令转换为微操作序列。这通常不被认为是机器代码。

与微码的关系

编辑

在某些计算机体系结构中,机器代码由一个更基本的底层实现,称为微代码,为具有广泛不同底层数据流的不同计算机模型的产品线或系列提供通用机器语言接口。这样做是为了便于在不同模型之间移植机器语言程序。这种用途的一个例子是IBMSystem/360系列计算机及其后续产品。数据流路径宽度为8位至64位及以上,但它们仍然在整个生产线的机器语言级别呈现通用架构。

使用微码实现仿真器使计算机能够呈现完全不同的计算机的体系结构。System/360系列使用它来允许将程序从早期的IBM机器移植到新的计算机系列,例如IBMS/360型号40上的IBM1401/1440/1460模拟器。

与字节码的关系

编辑

机器码通常与字节码(也称为p码)不同,字节码要么由解释器执行,要么自己编译成机器码以更快(直接)执行。一个例外是当处理器被设计为直接使用特定的字节码作为其机器码时,例如Java处理器的情况。

当提及语言功能或库的平台相关部分时,机器代码和汇编代码有时被称为本机代码。

机器代码

存储在内存中

编辑

的哈佛体系结构是一种计算机体系结构与物理上分离的存储及信号通路的代码(指令)和数据。今天,大多数处理器出于性能原因实现了这种单独的信号通路,但实现了改进的哈佛架构,因此它们可以支持诸如从磁盘存储加载可执行程序作为数据然后执行它的任务。哈佛架构与冯诺依曼架构形成对比,其中数据和代码存储在相同的内存中,由处理器读取,允许计算机执行命令。

从进程的角度来看,代码空间是其地址空间中存储正在执行的代码的部分。在多任务系统中,这包括程序的代码段和通常的共享库。在多线程环境中,一个进程的不同线程共享代码空间和数据空间,与进程切换相比,xxx减少了上下文切换的开销。

人类可读性

编辑

PamelaSamuelson写道,机器代码是如此难以阅读,以至于美国版权局无法确定特定编码程序是否为原创作品;然而,美国版权局确实允许对计算机程序进行版权注册并且有时可以对程序的机器代码进行反编译,以使其功能更容易被人类理解。然而,反编译器或反汇编器的输出将缺少注释和符号引用,因此虽然输出可能比目标代码更容易阅读,但仍然比原始源代码更难。对于像SQUOZE这样的目标代码格式,此问题不存在,其中源代码包含在文件中。

认知科学教授DouglasHofstadter将机器代码与遗传代码进行了比较,他说“查看用机器语言编写的程序与查看一个原子一个原子的DNA分子大致相当。”

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/127540/

(6)
词条目录
  1. 机器代码
  2. 与微码的关系
  3. 与字节码的关系
  4. 存储在内存中
  5. 人类可读性

轻触这里

关闭目录

目录