罕见的技术:.Net8机器码的生成
💡
原文中文,约1700字,阅读约需4分钟。
📝
内容提要
本文介绍了编程语言生成机器码的过程,通过.Net8 PreView JIT的机器码生成来看下一些过程。文章首先介绍了地址、机器码和汇编等概念,然后讲述了循环遍历机器码链表合集,逐一取出机器码伪代码,填充地址生成机器码的过程。
🎯
关键要点
- 编程语言最终运行在计算机上的形式是机器码,只有机器码能被硬件识别和执行。
- 文章通过.Net8 PreView JIT的机器码生成过程进行说明。
- 介绍了地址、机器码和汇编的基本概念,举例说明了汇编代码的结构。
- MSIL是由前端编译器Roslyn生成的,包含IL代码和元数据,JIT根据这些数据生成机器码。
- 机器码的生成过程涉及将机器码填充到相应的地址,从而生成汇编代码。
- emitOutputInstr函数是机器码生成的关键,包含三个参数:机器码链表、伪代码和填充地址。
- 通过循环遍历机器码链表,逐一取出伪代码并填充机器码,最终生成可执行的机器码。
➡️