Mono里运行C#脚本27—X86_64指令寄存器初步了解mono_arch_regname
Mono里运行C#脚本27—X86_64指令寄存器初步了解mono_arch_regname
通过前面的分析,我们知道一个程序要运行,要么解释执行,
要么编译后执行。JIT是采用即时编译的技术,显然是把程序转换为机器码再运行的。
要实现从C#代码到机器码的转换,就需要了解X86_64的指令格式。
当然,如果你想转换C#程序到鸿蒙系统上运行,那么就需要了解ARM64的指令格式。
如果想转换到龙芯系统上运行,就需要了解龙芯架构指令。
因此,JIT是基于不同的CPU架构指令来实现的。
不过,只要理解一种CPU架构的实现,再实现其它架构的CPU就比较容易了。
目前先了解X86_64的指令,毕竟它是目前最方便调试的系统。
从mini-amd64.c文件里,就可以看到下面的代码:
const char*
mono_arch_regname (int reg)
{
switch (reg) {
case AMD64_RAX: return "%rax";
case AMD64_RBX: return "%rbx";
case AMD64_RCX: return "%rcx";
case AMD64_
原文地址:https://blog.csdn.net/caimouse/article/details/145134025
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!