Intento ensamblar el siguiente código con sjasmplus:
DEVICE ZXSPECTRUM48
ORG 32768
COMIENZO
AND A,#C0
RET
savesna "prueba.sna",COMIENZO
Una vez ensamblado cuando desensamblo la imagen prueba.sna en spectaculator o en emuzwin obtengo un byte más:
AND A
AND A,#C0
RET
he comprobado que siempre que pongo AND A,valor introduce un AND A delante. ¿Tiene una explicación razonable? ¿le ha pasado a alguien? ¿cómo se evita?. Gracias
sjasmplus raro raro
Moderador: Sir Cilve Sinclair
- Rinconete
- Jack The Nipper
- Mensajes: 193
- Registrado: Mar Oct 09, 2007 7:32 pm
- Ubicación: Valladolid
- mcleod_ideafix
- Johnny Jones
- Mensajes: 3985
- Registrado: Vie Sep 21, 2007 1:26 am
- Ubicación: Jerez de la Frontera
- Contactar:
Imagino que AND A,#C0 es una licencia que se permite el ensamblador, no? Porque nmemotécnico, tal cual, no existe en Z80: es AND #C0
¿Es posible que el generador de código se lie por eso? Prueba lo que ha dicho Bubu, que es el nmemotécnico correcto...
¿Es posible que el generador de código se lie por eso? Prueba lo que ha dicho Bubu, que es el nmemotécnico correcto...
Web: ZX Projects | Twitter: @zxprojects
-
- Nonamed
- Mensajes: 1067
- Registrado: Lun May 07, 2007 10:06 pm
Tiene pinta de ser una "funcionalidad" del ensamblador, para meter ands encadenados.
Imagino que and a, #C0, #01 producirá
and a
and #C0
and #01
En un ensamblador normal and a, #C0 te daría un error, como bien te dicen el resto de compañeros.
EDITADO: Acabo de ver que me acabo de convertir en "Minero loco"
Imagino que and a, #C0, #01 producirá
and a
and #C0
and #01
En un ensamblador normal and a, #C0 te daría un error, como bien te dicen el resto de compañeros.
EDITADO: Acabo de ver que me acabo de convertir en "Minero loco"
Un saludo,
Gandulf
Gandulf
- Rinconete
- Jack The Nipper
- Mensajes: 193
- Registrado: Mar Oct 09, 2007 7:32 pm
- Ubicación: Valladolid
Exactamente, acabo de comprobarlo y es eso lo que pasa. He revisado la documentación del ensamblador y, en efecto, permite instrucciones encadenadas, por lo que interpreta que se trata de dos instrucciones: AND A y AND #C0.
Lo curioso es que esto me ha ocurrido utilizado el depurador de Emuzwin. Permite generar el código ensamblador de un bloque de memoria. Ha sido al ensamblarlo con Sjasmplus cuando he visto que había "más código" que en el programa original. Se ve que es un bug.
Hay también otros fallos en Emuzwin, por ejemplo, al generar un bloque con una instrucción RST #10 he visto que aparecía como RST 2, por lo que parece que se ha liado con la base.
Muchas gracias a todos!
Lo curioso es que esto me ha ocurrido utilizado el depurador de Emuzwin. Permite generar el código ensamblador de un bloque de memoria. Ha sido al ensamblarlo con Sjasmplus cuando he visto que había "más código" que en el programa original. Se ve que es un bug.
Hay también otros fallos en Emuzwin, por ejemplo, al generar un bloque con una instrucción RST #10 he visto que aparecía como RST 2, por lo que parece que se ha liado con la base.
Muchas gracias a todos!
¿Quién está conectado?
Usuarios navegando por este Foro: Ahrefs [Bot], Google [Bot], Majestic-12 [Bot] y 22 invitados