机器码监视器

科技工作者之家 2020-11-17

机器码监视器(又名机器语言监视器)是允许用户输入命令以预览并修改计算机上内存位置的软件,同时有着保存内存内容从/至次级存储的选项。一些完整功能的机器码监视器提供了对机器语言程序执行(就像调试器一样)的详细控制("单步跟踪"),包括绝对地址的代码汇编和反编译的能力。

详解机器码监视器1于20世纪70年代与80年代的家用计算机时期变得火热,且有时候作为常驻固件在某些计算机中提供(例如Commodore 128中的内建监视器)。在显示器中执行所有程序代替一个完整的符号汇编程序并不是闻所未闻。即使在完整功能的汇编程序变得可用之后,机器码监视器对于调试程序也是必不可少的。调试程序通常在代码进行测试时设置断点(例如使用6502汇编语言中的BRK指令)并启动程序。 当微处理器遇到了断点时测试程序将中断且控制会转移至机器码监视器中。通常这将触发寄存器转储随后监视器将等待程序员输入。在此点激活可能包含检查内存内容、修补码和/或也许会在改变处理器寄存器之前重新启动测试程序。

从头编写的汇编语言软件数量的普遍下降使得机器码监视器成为了一种失落的艺术。在大多数使用高级语言的系统上,调试器通过更为抽象和友好的界面呈现程序运行情况。然而,仍有使用机器码监视器的情况,特别是在业余爱好计算机的领域。

机器语言简介机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。不同种类的计算机其机器语言是不相通的,按某种计算机的机器指令编制的程序不能在另一种计算机上执行。

要用机器语言编写程序,编程人员需首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员要自己处理每条指令和每一数据的存储分配和输入输出,还需记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作,编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,这样编写出的程序完全是0与1的指令代码,可读性差且容易出错。在现今,除了计算机生产厂家的专业人员外,绝大多数程序员已经不再学习机器语言。

1)机器语言是微处理器理解和使用的用于控制它的操作的二进制代码。

2)8086到Pentium的机器语言指令长度可以从1字节到13字节。

3)尽管机器语言看似非常复杂,但它是有规律的。

4)现今存在着超过100000种机器语言的指令,因此不可能将它们的种类完全列出。

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

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

与字节码的关系机器代码通常与字节码(也称为p代码)不同,后者或者由解释器执行,或者将其自身编译为机器代码以便更快速(直接)执行。当处理器被设计为直接使用特定的字节码作为其机器码时,例外情况是Java处理器。

当引用语言特征或库的平台相关部分时,机器代码和汇编代码有时称为本机代码。

本词条内容贡献者为:

刘军 - 副研究员 - 中国科学院工程热物理研究所

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。