public void execute(byte[] bytes) {
        for (int i = 0; i < bytes.length; ++i) {
            byte b = bytes[i];
            switch (b) {
                case STORE:
                    i += 1;
                    stack.push(NumberUtil.bytesToDouble(bytes, i));
                    i += 7;
                    break;
                case ADD:
                    stack.push(stack.pop() + stack.pop());
                    break;
                case SUB:
                    stack.push(stack.pop() - stack.pop());
                    break;
                case MUL:
                    stack.push(stack.pop() * stack.pop());
                    break;
                case DIV:
                    stack.push(stack.pop() / stack.pop());
                    break;
                case POW:
                    stack.push(Math.pow(stack.pop(), stack.pop()));
                    break;
                case SQRT:
                    stack.push(Math.sqrt(stack.pop()));
                    break;
                case PRINT:
                    System.out.println(stack.getFirst());
                    break;
                default:
                    throw new RuntimeException("ERROR[VM] ERROR BITS");
            }
        }
    }