Originalmente enviado por mellin
yo creo que hay que cambiar
paddub $a0, $s0, $0 =28260072 en hex
por
li $a0,1 =01000424 en hex
por que hablais de 01001024?
si siempre se a sustituido por el otro
venga saludos a los dos
Como te ha dicho Cybblade,no estamos tocando el registro $a0,ahora el puntero a la pila ya no nos sirve ya que lo han metido dentro de uno de los registros que no tiene acceso a la pila: $s1.
Y la sentencia es daddu dentro de la funcion del check...por qué?
Por esto:
(ojo,que no estoy sentando catedra ni nada por el estilo ;) que me ha costao un huevo entender el porque podría ser así y no estoy ni seguro de ello )
daddu $s0, $a0, $0 -->
Meto lo que hay en $a0 en $0 sin preocuparme por el overflow
Pero si lo cambio por esto:
li $s1,1 -->
modifico el s1 de tal forma que en ese registro (que parece que es donde quiere ir a buscar la info) le digo que ya está encontrado
La operacion anterior ddadu sacaba de la pila los datos para comprobar el dvdcheck y los metia en $s0 y en $0 sin preocuparle el overflow (ya que es como si lo repartiera en ambos registros) y luego,dentro de la funcion del check jugaba con el registro $s1 hasta conseguir que este fuera el que realmente viera si los datos eran correctos (se asemeja a la tipica funcion de ensamblador de cryptografia básica -espero que los que sepan ensamblador no se me echen al cuello,he dicho se asemeja y no es criptografia..).
De todas formas la pila de datos de la ps2 es la leche!!!!tiene 4 punteros (que se vean a simple vista)...donde estan el sp y el bp de nuestro querido msdos????