| Refresh | Home EGTry.com

array operation


array operations for each type

type new array set element get element
int size visitIntInsn(NEWARRAY, T_INT) arrayref index value IASTORE arrayref index IALOAD
boolean size visitIntInsn(NEWARRAY,T_BOOLEAN) arrayref index value BASTORE arrayref index BALOAD
byte size visitIntInsn(NEWARRAY,T_BTYE) arrayef index value BASTORE arrayref index BALOAD
short size visitIntInsn(NEWARRAY,T_SHORT) arrayef index value SASTORE arrayref index SALOAD
char size visitIntInsn(NEWARRAY,T_CHAR) arrayref index value CASTORE arrayref index CALOAD
long size visitIntInsn(NEWARRAY,T_LONG) arrayref index value LASTORE arrayref index LALOAD
float size visitIntInsn(NEWARRAY,T_FLOAT) arrayref index value FASTORE arrayref index FALOAD
double size visitIntInsn(NEWARRAY,T_DOUBLE) arrayref index valaue DASTORE arrayref index DALOAD
Object size visitIntInsn(ANEWARRAY,"java/lang/Object") arrayref index value AASTORE arrayref index AALOAD

boolean array - java code

		boolean booleanA[]=new boolean[2];
		booleanA[0]=true;
		booleanA[1]=false;
		boolean bool1=booleanA[0];


boolean array - asm code

		
mv.visitInsn(ICONST_2);
mv.visitIntInsn(NEWARRAY, T_BOOLEAN);
mv.visitVarInsn(ASTORE, 1);

mv.visitVarInsn(ALOAD, 1);
mv.visitInsn(ICONST_0);
mv.visitInsn(ICONST_1);
mv.visitInsn(BASTORE);

mv.visitVarInsn(ALOAD, 1);
mv.visitInsn(ICONST_1);
mv.visitInsn(ICONST_0);
mv.visitInsn(BASTORE);

mv.visitVarInsn(ALOAD, 1);
mv.visitInsn(ICONST_0);
mv.visitInsn(BALOAD);
mv.visitVarInsn(ISTORE, 2);


short array - java source

		byte byteA[]=new byte[2];
		byteA[0]=10;
		byteA[1]=20;
		byte byte1=byteA[0];


short array - asm bytecode generating code

//short array
mv.visitInsn(ICONST_2);
mv.visitIntInsn(NEWARRAY, T_SHORT);
mv.visitVarInsn(ASTORE, 5);

mv.visitVarInsn(ALOAD, 5);
mv.visitInsn(ICONST_0);
mv.visitIntInsn(BIPUSH, 100);
mv.visitInsn(SASTORE);

mv.visitVarInsn(ALOAD, 5);
mv.visitInsn(ICONST_1);
mv.visitIntInsn(SIPUSH, 200);
mv.visitInsn(SASTORE);

mv.visitVarInsn(ALOAD, 5);
mv.visitInsn(ICONST_0);
mv.visitInsn(SALOAD);
mv.visitVarInsn(ISTORE, 6);


char array - java source

		short shortA[]=new short[2];
		shortA[0]=100;
		shortA[1]=200;
		short short1=shortA[0];
		


char array

//char array
mv.visitInsn(ICONST_2);
mv.visitIntInsn(NEWARRAY, T_CHAR);
mv.visitVarInsn(ASTORE, 7);

mv.visitVarInsn(ALOAD, 7);
mv.visitInsn(ICONST_0);
mv.visitIntInsn(BIPUSH, 65);
mv.visitInsn(CASTORE);

mv.visitVarInsn(ALOAD, 7);
mv.visitInsn(ICONST_1);
mv.visitIntInsn(BIPUSH, 66);
mv.visitInsn(CASTORE);

mv.visitVarInsn(ALOAD, 7);
mv.visitInsn(ICONST_0);
mv.visitInsn(CALOAD);
mv.visitVarInsn(ISTORE, 8);


int array - java source

		int intA[]=new int[2];
		intA[0]=1024;
		intA[1]=2048;
		int int1=intA[0];


int array

//int array
mv.visitInsn(ICONST_2);
mv.visitIntInsn(NEWARRAY, T_INT);
mv.visitVarInsn(ASTORE, 9);

mv.visitVarInsn(ALOAD, 9);
mv.visitInsn(ICONST_0);
mv.visitIntInsn(SIPUSH, 1024);
mv.visitInsn(IASTORE);

mv.visitVarInsn(ALOAD, 9);
mv.visitInsn(ICONST_1);
mv.visitIntInsn(SIPUSH, 2048);
mv.visitInsn(IASTORE);

mv.visitVarInsn(ALOAD, 9);
mv.visitInsn(ICONST_0);
mv.visitInsn(IALOAD);
mv.visitVarInsn(ISTORE, 10);


long array - java source

		long longA[]=new long[2];
		longA[0]=123;
		longA[1]=456;
		long long1=longA[0];


long array

//long array
mv.visitInsn(ICONST_2);
mv.visitIntInsn(NEWARRAY, T_LONG);
mv.visitVarInsn(ASTORE, 11);

mv.visitVarInsn(ALOAD, 11);
mv.visitInsn(ICONST_0);
mv.visitLdcInsn(new Long(123L));
mv.visitInsn(LASTORE);

mv.visitVarInsn(ALOAD, 11);
mv.visitInsn(ICONST_1);
mv.visitLdcInsn(new Long(456L));
mv.visitInsn(LASTORE);

mv.visitVarInsn(ALOAD, 11);
mv.visitInsn(ICONST_0);
mv.visitInsn(LALOAD);
mv.visitVarInsn(LSTORE, 12);


float array - java source

		float floatA[]=new float[2];
		floatA[0]=10.1f;
		floatA[1]=11.1f;
		float float1=floatA[0];


float array

//float array
mv.visitInsn(ICONST_2);
mv.visitIntInsn(NEWARRAY, T_FLOAT);
mv.visitVarInsn(ASTORE, 14);

mv.visitVarInsn(ALOAD, 14);
mv.visitInsn(ICONST_0);
mv.visitLdcInsn(new Float("10.1"));
mv.visitInsn(FASTORE);

mv.visitVarInsn(ALOAD, 14);
mv.visitInsn(ICONST_1);
mv.visitLdcInsn(new Float("11.1"));
mv.visitInsn(FASTORE);

mv.visitVarInsn(ALOAD, 14);
mv.visitInsn(ICONST_0);
mv.visitInsn(FALOAD);
mv.visitVarInsn(FSTORE, 15);


double array - java source

		double doubleA[]=new double[2];
		doubleA[0]=100.5;
		doubleA[1]=200.2;
		double  double1=doubleA[0];


double array

//double array
mv.visitInsn(ICONST_2);
mv.visitIntInsn(NEWARRAY, T_DOUBLE);
mv.visitVarInsn(ASTORE, 16);

mv.visitVarInsn(ALOAD, 16);
mv.visitInsn(ICONST_0);
mv.visitLdcInsn(new Double("100.5"));
mv.visitInsn(DASTORE);

mv.visitVarInsn(ALOAD, 16);
mv.visitInsn(ICONST_1);
mv.visitLdcInsn(new Double("200.2"));
mv.visitInsn(DASTORE);

mv.visitVarInsn(ALOAD, 16);
mv.visitInsn(ICONST_0);
mv.visitInsn(DALOAD);
mv.visitVarInsn(DSTORE, 17);


object array - java source

		
		Object objectA[]=new Object[2];
		objectA[0]=new Object();
		objectA[1]=new java.util.Date();
		Object object1=objectA[1];


object array

//object array
mv.visitInsn(ICONST_2);
mv.visitTypeInsn(ANEWARRAY, "java/lang/Object");
mv.visitVarInsn(ASTORE, 19);

mv.visitVarInsn(ALOAD, 19);
mv.visitInsn(ICONST_0);
mv.visitTypeInsn(NEW, "java/lang/Object");
mv.visitInsn(DUP);
mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V");
mv.visitInsn(AASTORE);

mv.visitVarInsn(ALOAD, 19);
mv.visitInsn(ICONST_1);
mv.visitTypeInsn(NEW, "java/util/Date");
mv.visitInsn(DUP);
mv.visitMethodInsn(INVOKESPECIAL, "java/util/Date", "<init>", "()V");
mv.visitInsn(AASTORE);

mv.visitVarInsn(ALOAD, 19);
mv.visitInsn(ICONST_1);
mv.visitInsn(AALOAD);
mv.visitVarInsn(ASTORE, 20);