当前位置: 首页 > article >正文

Mono里运行C#脚本26—CEE_ADD/MONO_CEE_ADD/OP_IADD/X86_ADD的转换过程

Mono里运行C#脚本26—CEE_ADD/MONO_CEE_ADD/OP_IADD/X86_ADD的转换过程

在Mono里,运行时需要经历好多个阶段,才可以正确地生成可执行代码,然后才能调用运行。
首先C#代码被编译后,会产生CIL指令的代码,
这些指令是定义在mono\cil目录里的opcode.def文件:
OPDEF(CEE_ADD, "add", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x58, NEXT)
OPDEF(CEE_SUB, "sub", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x59, NEXT)
OPDEF(CEE_MUL, "mul", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x5A, NEXT)
OPDEF(CEE_DIV, "div", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x5B, NEXT)
OPDEF(CEE_DIV_UN, "div.un", Pop1+Pop1, Push1, InlineNone, 0, 1, 0xFF, 0x5C, NEXT)

然后被mono工程通过下面的文件转换:
#define MONO_PREFIX1_OFFSET MONO_CEE_ARGLIST
#define M


http://www.kler.cn/a/473116.html

相关文章:

  • IWOA-GRU和GRU时间序列预测(改进的鲸鱼算法优化门控循环单元)
  • ADO.NET知识总结3---SqlCommand命令对象
  • Nature Electronics——近传感器计算:50 nm异构集成技术的革命
  • 对快速由表及里说拜拜/如何正确运用由表及里
  • 自定义EasyCode模板生成CRUD
  • vue3运行时执行过程步骤
  • java项目学科竞赛管理系统的设计与实现源码(springboot+mysql+vue)
  • 预训练语言模型——BERT
  • 【免费】2000-2019年各省技术市场成交额数据
  • 字玩FontPlayer开发笔记9 Tauri2打包应用
  • Golang的并发编程框架比较
  • ASP.NET Core实现微服务--什么是微服务
  • Java语法总结
  • 【Uniapp-Vue3】computed计算属性用法及方法对比
  • Scratch024(糖饼印花)
  • 数据分析思维(九):分析方法——AARRR模型分析方法
  • docker minio镜像arm64架构
  • Ruby语言的软件开发工具
  • 精选2款.NET开源的博客系统
  • 表达式翻译 一
  • Agentic AI 深度剖析
  • Spark创建多种数据格式的DataFrame
  • 消息队列:原理、问题与设计全解析
  • BERT模型详解及代码复现
  • JAVA学习记录3
  • vue之element-ui文件上传(二)