汇编器、编译器、反汇编器和反编译器的全面解析
1. 汇编器概述
汇编器比编译器显著简单,通常用于将汇编代码通过一对一的对应关系转换为二进制机器代码。汇编器很少进行超出选择最短指令形式或填充延迟槽的优化。
由于汇编过程相对简单,反汇编通常也不复杂。汇编指令和机器代码字存在一对一的对应关系,每个机器代码字都能精确映射到一条汇编指令。不过,反汇编也有一些问题,不能仅通过简单的代码字查找来解决。
汇编器的基本功能是将汇编指令一对一地转换为机器代码,还能把命名变量转换为硬编码的内存地址,将标签转换为相对代码地址。一般来说,汇编器不进行代码优化,输出的机器代码与输入的汇编指令等价。部分汇编器具备宏的高级功能。
在汇编过程中,程序的一些信息会丢失。首先,程序数据和机器代码指令以相同的原始二进制格式存储,难以确定程序的哪些部分是实际的指令。其次,汇编源代码文件中的文本信息,如变量名、标签名和代码注释,在汇编过程中都会被销毁。反汇编代码时,指令不变,但其他有用信息会丢失,代码虽准确但更难阅读。
2. 不同语法的汇编器
2.1 Intel 语法汇编器
由于基于 Intel 的 IA - 32 微处理器在家庭 PC 市场的普及,大多数汇编工作基于 x86 架构。
- MASM :是 Microsoft 的汇编器,“Macro Assembler”的缩写,也常被用作“Microsoft Assembler”的缩写。它具有强大的宏功能,能编写低级语法和伪高级代码。MASM 6.15 可从 Microsoft 免费下载,MASM 7.xx 是 Micro
超级会员免费看
订阅专栏 解锁全文
1959

被折叠的 条评论
为什么被折叠?



