Código SQL:
Ver originalDELIMITER $$
DROP PROCEDURE IF EXISTS `prueba` $$
CREATE PROCEDURE `prueba`(IN cantidad INT)
BEGIN
INSERT INTO tb_asignacion (id_cliente,id_carga,id_usuario,id_regist)
SELECT codigo,carga,2,1
FROM clientes_asignacion
LIMIT cantidad;
END $$
DELIMITER ;
Por un lado, te faltaba el CREATE..., por otro, no estoy seguro del comportamiento de LIMIT con variables...
Creo que en ese caso te conviene usar
sentencias preparadas.