using instruction decoder