- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在研究 C# 的中间语言 (IL) 时遇到了以下代码:-
//Add.il
//Add Two Numbers
.assembly extern mscorlib {}
.assembly Add
{
.ver 1:0:1:0
}
.module add.exe
.method static void main() cil managed
{
.maxstack 2
.entrypoint
ldstr "The sum of 50 and 30 is = "
call void [mscorlib]System.Console::Write (string)
ldc.i4.s 50
ldc.i4 30
add
call void [mscorlib]System.Console::Write (int32)
ret
}
我是了解 IL 的初学者,但我知道上面示例中 Main
中使用的这些非常基本的指令的含义。
我的问题是,用于加载50的指令ldc.i4.s
和用于加载50的指令ldc.i4
有什么区别吗? 30 进入评估堆栈。
编译器如何决定使用哪条指令(从这两条指令中选择)以及何时使用?
最佳答案
对于带符号的字节值,没有。
ldc.i4.s is a more efficient encoding for pushing the integers from -128 to 127 onto the evaluation stack.
参见 MSDN
关于c# - ldc.i4.s 和 ldc.i4 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21519951/
我想知道为什么这个 C# 代码 long b = 20; 编译为 ldc.i4.s 0x14 conv.i8 (因为它需要 3 个字节,而不是 ldc.i8 20 所需的 9 个字节。有关详细信息,请
我在研究 C# 的中间语言 (IL) 时遇到了以下代码:- //Add.il //Add Two Numbers .assembly extern mscorlib {} .assembly Add
CIL中有ldc.i4.0、ldc.i4.1、ldc.i4.2等加载指令, ldc.i4.3 ... 我想知道,是否可以使用 ldc.i4 1 而不是 ldc.i4.1 或 ldc.i4 5 而不是l
我正在尝试找出一些 CIL 代码。但这似乎这两个陈述做了同样的事情(根据我读过的所有内容)。 ldc.i4 33 和 ldc.i4.33 两者都被认为“将 int32 加载到值 33 的堆栈上”。 这
这是我的 C# 代码: const long pSize = 20; 无论我使用 x64 还是任何 CPU 在 Release模式下构建它,我都会得到以下 MSIL 指令: IL_0010: l
我是 java 字节码世界的新手。我有一些涉及字节码的调试任务。在经历那件事时,我注意到一些看起来可疑的值,但我不确定。这是完整字节码的一部分 // access flags 0x100A pri
ByteCode:ldc pushes a one-word constant onto the operand stack. ldc takes a single parameter, , whic
不同 D 编译器的优缺点是什么?性能和标准合规性/D2 支持如何?调试器的支持程度如何?错误消息有多好以及 IDE 集成如何? 64 位支持有多好?到目前为止我的想法: DMD 成熟且维护良好 只有一
我在哪里可以找到关于 GDC(GNU D 编译器)的规范以及如何重写标准 D 类型,如 uint 等? 有关信息:我对将 D 用于内核和其他低级内容很感兴趣。 谢谢。 最佳答案 您可以遵循 D ABI
我在哪里可以找到关于 GDC(GNU D 编译器)的规范以及如何重写标准 D 类型,如 uint 等? 有关信息:我对将 D 用于内核和其他低级内容很感兴趣。 谢谢。 最佳答案 您可以遵循 D ABI
我对任何形式的 C 编程都是新手。 我有一个带有液晶屏(矩阵轨道LK204-7T-1U-USB-WB)的PLC(Teso PC1620)(使用rabbit处理器)。我正在尝试使用 LCD 内置的水平条
我正在用 ASM 编写一个程序,它使用 Tree API 将字节码添加到某些方法中。我已经使用 ASMifier 生成创建特定方法所需的代码,但我在使用以下行时遇到了一些问题: mv.visitLdc
我是一名优秀的程序员,十分优秀!