java中是否能嵌入伪指令呢
http://www.diybl.com/ 2008-2-22 网络 点击:
[ 评论 ]
文章搜索:
【点击打包该文章】
都知道在C/C++语言中可以嵌入汇编代码,是否能在Java中也嵌入伪指令呢?
例如如下代码
//计算a和b运算结果,可能是相加,也可能是相减,由oper决定。
//变量oper,可能是96(iadd,加操作),也可能是100(isub,减操作),当然也可以是乘或者除
public int calculator(int a,int b,byte oper){
${
iload a;//a变量的值入栈
iload b;//b变量的值入栈
# oper;//执行指定操作符,可能是96(iadd加操作),也可能是100(isub减操作)
istore a;//计算结果存入a变量
}
}
其中$和#作为标识符,$块表示一段伪指令代码,#表示执行一个不确定的操作指令。
编译器在编译的时候需要验证${...}块执行前后的堆栈内容要完全相同,还要将伪指令所在行号写入class文件的行号表。
我想如果用普通的java编程方法好像很难能达到上面4行代码如此精简的效果吧?
这个例子很简单,没有什么实际的用处,只是表达一下想法罢了。
如果图片或页面不能正常显示请点击这里 站内搜索:
推荐文章 |
