ok I figured it out...my setup should be like this:

vec_set(CELL.p[0],vector(x,y,z));
vec_set(CELL.p[1],vector(x+1,y,z));
vec_set(CELL.p[2],vector(x+1,y,z+1));
vec_set(CELL.p[3],vector(x,y,z+1));

vec_set(CELL.p[4],vector(x,y+1,z));
vec_set(CELL.p[5],vector(x+1,y+1,z));
vec_set(CELL.p[6],vector(x+1,y+1,z+1));
vec_set(CELL.p[7],vector(x,y+1,z+1));

CELL.val[0]=voxel[x][y][z];
CELL.val[1]=voxel[x+1][y][z];
CELL.val[2]=voxel[x+1][y][z+1];
CELL.val[3]=voxel[x][y][z+1];

CELL.val[4]=voxel[x][y+1][z];
CELL.val[5]=voxel[x+1][y+1][z];
CELL.val[6]=voxel[x+1][y+1][z+1];
CELL.val[7]=voxel[x][y+1][z+1];