什么是汇编语言
编辑汇编语言,是任何一种低级编程语言,其中语言中的指令与体系结构的机器代码指令之间有很强的对应关系。因为汇编依赖于机器代码指令,所以每种汇编语言都是为一种特定的计算机体系结构而设计的。汇编语言也可以称为符号机器码。
汇编代码由称为汇编程序的实用程序转换为可执行的机器代码。转换过程被称为组件,如在组装的源代码。汇编语言通常每条机器指令有一条语句(1:1),但通常也支持常量、注释、汇编指令、程序和内存位置的符号标签以及宏。
“汇编程序”一词通常归因于Wilkes、Wheeler和Gill在他们1951年出版的《电子数字计算机程序的准备》一书中,然而,他们使用该术语来表示“将另一个程序组装起来的程序,该程序由多个程序组成。部分合并为一个程序”。
每种汇编语言都特定于特定的计算机体系结构,有时也特定于操作系统。然而,一些汇编语言没有为操作系统调用提供特定的语法,大多数汇编语言可以在任何操作系统上普遍使用,因为该语言提供了对处理器所有实际功能的访问,所有系统调用都基于这些功能机制最终休息。与汇编语言相比,大多数高级编程语言通常可以跨多种架构移植,但需要解释或编译,比组装复杂得多的任务。
汇编语言语法
编辑汇编语言使用助记符来表示每个低级机器指令或操作码,通常也是每个架构寄存器、标志等。许多操作需要一个或多个操作数才能形成完整的指令。大多数汇编器允许程序和内存位置的命名常量、寄存器和标签,并且可以计算操作数的表达式。因此,程序员从繁琐的重复计算中解脱出来,汇编程序比机器代码更具可读性。根据体系结构,这些元素也可以组合用于特定指令或寻址模式使用偏移量或其他数据以及固定地址。许多汇编程序提供了额外的机制来促进程序开发、控制汇编过程和帮助调试。
汇编语言的典型应用
编辑- 汇编语言通常用于系统的引导代码,这是在引导操作系统之前初始化和测试系统硬件的低级代码,通常存储在ROM中。(IBM兼容PC系统和CP/M上的BIOS就是一个例子。)
- 汇编语言通常用于低级代码,例如操作系统内核,它不能依赖于预先存在的系统调用的可用性,并且必须确实为系统将在其上运行的特定处理器体系结构实现它们。
- 一些编译器在完全编译之前先将高级语言翻译成汇编,从而允许查看汇编代码以进行调试和优化。
- 一些相对低级语言的编译器,例如Pascal或C,允许程序员直接在源代码中嵌入汇编语言(所谓的内联汇编)。使用这些工具的程序然后可以在每个硬件平台上使用不同的汇编语言构建抽象。然后,系统的可移植代码可以通过统一接口使用这些特定于处理器的组件。
- 汇编语言在逆向工程中很有用。许多程序仅以机器码形式分发,通过反汇编器直接将其翻译成汇编语言,但通过反编译器将其翻译成高级语言则比较困难。诸如交互式反汇编器之类的工具为此目的广泛使用了反汇编。黑客使用这种技术来破解商业软件,而竞争对手使用这种技术来生产与竞争公司具有相似结果的软件。
- 汇编语言用于提高执行速度,尤其是在处理能力和RAM有限的早期个人计算机中。
- 汇编器可用于从格式化和注释的源代码生成供其他代码使用的数据块,没有高级语言开销。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/127530/