CIL 中的普通操作码和短格式操作码有什么区别?
我正在查看 CIL 中的各种操作码,发现很多类似的代码,例如 Beq,Beq_S Bge,Bge_S Bgt,Bgt_S Br,Br_S
其中 S 被认为是“缩写形式”。这意味着什么??
I am going through various opcodes in CIL and I find a lot of similar looking codes like
Beq,Beq_S
Bge,Bge_S
Bgt,Bgt_S
Br,Br_S
Where S is supposedly "short form". What does that mean??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
指令的简短形式占用更少的空间(也就是说,CIL 指令的二进制编码本身更短,因此您的程序集将占用更少的磁盘或内存空间)。因此,在适用时它们通常是首选。然而,代价是与指令的完整形式相比,它们的范围有限(例如,分支目标偏移量必须适合字节而不是整数)。
The short forms of the instructions take up less space (that is, the binary encoding of the CIL instructions are themselves shorter, so your assembly will take up less space on disk or in memory). Therefore, they would typically be preferred when applicable. However, the tradeoff is that they have limited ranges compared to the full forms of the instructions (e.g. branch target offsets must fit within bytes instead of ints).