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类型变量;

然后就是输出了;

相关推荐
bugcome_com20 分钟前
C# 常量详解:从基础语法到实际应用
c#
qq_150841992 小时前
3天基于VS2026的C#编程入门及动态调用CH341DLLA64读写I2C从机
开发语言·c#
CHANG_THE_WORLD2 小时前
字符串定义的汇编分析
汇编·数据库
CHANG_THE_WORLD4 小时前
深入理解C语言指针:从源码到汇编的彻底剖析
c语言·开发语言·汇编
溪水西流5 小时前
NodifyEditor Zoom 机制分析
开发语言·c#·avalonia
Never_Satisfied8 小时前
在c#中,抛出异常,并指定其message的值
java·javascript·c#
不想看见40410 小时前
Word Ladder Ⅱ -- 广度优先搜索--力扣101算法题解笔记
开发语言·c#
全栈小510 小时前
【C#】.net 6.0和8.0有什么区别,以及8.0增加了那些功能,这些功能有那些作用
开发语言·c#·.net
qq_2979080110 小时前
C#印刷线路板ERP进销存报价财务库存贸易生产企业管理系统软件
sqlserver·开源·c#·.net·开源软件
bugcome_com11 小时前
C# 循环语句详解:理解常见循环类型与控制语句
c#