IL汇编赋值

cpp 复制代码
.assembly extern mscorlib {}
 
 .assembly Test
 {
     .ver 1:0:1:0
 }
 .module test.exe
  
 .method static void main() cil managed
 {
     .maxstack 5
     .entrypoint
     
    .locals init (int32, string)
    ldc.i4 34
    stloc.0
    ldstr "Some Text for Local Variable"
    stloc.1
    ldloc.0
    call void [mscorlib]System.Console::WriteLine(int32)
    ldloc.1
    call void [mscorlib]System.Console::WriteLine(string)
   
     ret
 }

运行如下;

首先是定义了2个局部变量,一个是int32类型,一个是string类型;

指令的含义,

ldstr string---把一个字符串常量装入堆栈;

ldc.i4.n---把一个 32 位的常量( n 从 0 到 8)装入堆栈;

stloc.n--- 把一个从堆栈中返回的值存入第 n( n 从 0 到 8)个局部变量;

执行了,

ldc.i4 34

stloc.0

这两句以后,把34赋给定义的第一个整型变量;

执行了,

ldstr "Some Text for Local Variable"

stloc.1

这两句以后,把"Some Text for Local Variable"赋值给定义的第二个string类型变量;

然后就是输出了;

相关推荐
何以解忧唯有撸码16 分钟前
【开源】c#造个轮子-日程安排工具
c#·自定义控件
周杰伦fans27 分钟前
CAD菜单栏和工具栏都不见了,怎么显示?
其他·c#
曹牧28 分钟前
C#:HashSet<T> 去重
c#
czhc114007566328 分钟前
起点、口径与因果:今天用错的七把尺子
c#
c#上位机14 小时前
C#上位机项目实战——Task.Run执行带参数的方法
c#·上位机
Lost of 程序猿20 小时前
用 YARP 为 .NET 微服务搭一座“立交桥“:路由转发与生产配置实践
c#·asp.net
斑马1391 天前
ARM学习笔记(二)——ARM汇编基础
汇编·arm开发·arm
点纭1 天前
C 语言 第七章 常用函数(3)
c语言·开发语言·算法·oracle·c#
用户788477316341 天前
用 .NET MAUI 一套 C# 同时出 Windows 和 Android:哪些是真能共享,哪些是 marketing
c#
Lost of 程序猿1 天前
用 Quartz.NET 优雅地处理 .NET 定时任务:从选型到 Docker 部署全记录
后端·c#·asp.net