06 de Julio de 2021, 12:10:48 am
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
1 Hora
1 Día
1 Semana
1 Mes
Siempre
Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias
:
Inicio
Ayuda
Buscar
Ingresar
Registrarse
Karoshi MSX Community
>
Desarrollo MSX
>
Desarrollo (Español/Spanish)
>
Mitos y leyendas del mnemonico CP 0
Páginas: [
1
]
« anterior
próximo »
Imprimir
Autor
Tema: Mitos y leyendas del mnemonico CP 0 (Leído 4435 veces)
0 Usuarios y 1 Visitante están viendo este tema.
j4mk3
Karoshi Maniac
Mensajes: 376
MSx Powa!
Mitos y leyendas del mnemonico CP 0
«
:
02 de Febrero de 2011, 04:40:08 pm »
Supongo que me vais a abuchear
...pero tengo que preguntarlo...
¿Produciria el mismo resultado...
Código:
ld a,[HL]
and 00001111b
cp 0
jp z,ESZERO
que ...
Código:
ld a,[HL]
and 00001111b
jp z,ESZERO
?
¿Es cierto que los CP 0 no tienen sentido si la operación anterior ya da un resultado (cero o no) dado que pone el flag Z indicandolo ?
¿Que verdad hay en toda esta mitologia del CP 0 ?
En línea
--- G Fan --- Galious & Gradius & G Boys ---
---
Play HANS' ADVENTURE, STAN, THE DREAMER & BITLOGIC
---
OKI09
Karoshi Maniac
Mensajes: 275
Re: Mitos y leyendas del mnemonico CP 0
«
Respuesta #1 :
02 de Febrero de 2011, 06:22:20 pm »
Al hacer una operacion logica con el acumulador, como es :
AND 00001111b
Si es cero el flag Z se activara solo, no tienes porque hacer el CP 0.
Funcionarian las dos opciones, pero la segunda ocuparia menos Bytes.
En línea
La derrota no es una opción y no hay excusas.
"Parasiempre"
j4mk3
Karoshi Maniac
Mensajes: 376
MSx Powa!
Re: Mitos y leyendas del mnemonico CP 0
«
Respuesta #2 :
02 de Febrero de 2011, 06:58:52 pm »
¿ Y tras un LD A,[HL] que lleve un cero a A?
¿ Se pone el flag Z a cero ?
En línea
--- G Fan --- Galious & Gradius & G Boys ---
---
Play HANS' ADVENTURE, STAN, THE DREAMER & BITLOGIC
---
pitpan
Karoshi Forum's Guru
Mensajes: 1812
Re: Mitos y leyendas del mnemonico CP 0
«
Respuesta #3 :
02 de Febrero de 2011, 07:09:28 pm »
No. En el Z80 las instrucciones de carga no actualizan las banderas de estado, salvo, claro está POP AF. Y puede que alguna otra un poco más rara, que tenga que ver con los registros I o R.
Ojo. Otras instrucciones aritméticas no actualizan la bandera de estado, como los incrementos y decrementos de 16 bits. Es decir, si haces INC HL o DEC BC o cualquiera de sus primos, olvídate de las banderas de acarreo, cero y todas las demás. Hay que comprobarlo a pelo después de la operación. Afortunadamente, las instrucciones ADC, SBC de 16 bits sí que cambian el estado. Pero no así ADD.
Así que la moraleja más sencilla es: RTFM! Es decir, conseguid un buen manual de referencia y aseguraos antes de que os pase como a cualquier hijo de vecino y tiréis a la basura horas tratando de depurar un programa en el que todo es correcto, excepto lo que el programador cree que va a hacer el Z80. A mí me resulta muy práctico tener a la vista el UNDOCUMENTED Z80 de Sean Young y herederos.
Si tenéis más dudas, RTFM. O preguntad aquí, que para eso estamos...
En línea
OKI09
Karoshi Maniac
Mensajes: 275
Re: Mitos y leyendas del mnemonico CP 0
«
Respuesta #4 :
02 de Febrero de 2011, 10:26:18 pm »
No tenia ni idea de lo del incremento/decremento en 16 bits.
Bueno, aunque es un poco logico, pues no actuan directamente sobre el acumulador. ¿no?
En línea
La derrota no es una opción y no hay excusas.
"Parasiempre"
pitpan
Karoshi Forum's Guru
Mensajes: 1812
Re: Mitos y leyendas del mnemonico CP 0
«
Respuesta #5 :
02 de Febrero de 2011, 10:40:38 pm »
No, no es lógico. Todas las instrucciones de incremento / decremento de 8 bits sí que actualizan correctamente las banderas de estado del procesador. Incluso el INC/DEC [HL], es decir, con indirección incluida.
La primera vez que me enfrenté a esto fue programando para GAMEBOY clásica
Ah, qué tiempos aquellos, descubriendo el ensamblador...
En línea
OKI09
Karoshi Maniac
Mensajes: 275
Re: Mitos y leyendas del mnemonico CP 0
«
Respuesta #6 :
02 de Febrero de 2011, 10:52:10 pm »
Oido cocina.
En línea
La derrota no es una opción y no hay excusas.
"Parasiempre"
Metalbrain
Karoshi Fan
Mensajes: 92
Z80jutsushi
Re: Mitos y leyendas del mnemonico CP 0
«
Respuesta #7 :
02 de Febrero de 2011, 11:07:28 pm »
Y a todo esto, añadir que salvo alguna ocasión muy muy rara en la que querais cambiar con código automodificable el valor de la comparación, para comparar el acumulador con 0 es muchísimo mejor hacer AND A (o bien su equivalente en este caso OR A), con lo que se ahorra 1 byte y varios estados respecto al CP 0 (que hay que evitar).
En línea
burguera
Visitante
Re: Mitos y leyendas del mnemonico CP 0
«
Respuesta #8 :
03 de Febrero de 2011, 01:12:57 pm »
Yo tengo en todo momento abierto un listado de instrucciones del Z80 con indicaciones de como afectan a los flags.
En línea
aorante
Karoshi Maniac
Mensajes: 451
nuTella Power!
Re: Mitos y leyendas del mnemonico CP 0
«
Respuesta #9 :
05 de Febrero de 2011, 11:57:48 am »
como se agradece que exista este templo de sabidudida compartida!
En línea
--------------------------------- ------ ----- --- -- -
aorante/303bcn
http://aorante.blogspot.com
http://twitter.com/#
!/aorante
http://303bcn.wordpress.com/
--------------------------------- ------ ----- --- -- -
Páginas: [
1
]
Imprimir
« anterior
próximo »
Ir a:
Por favor selecciona un destino:
-----------------------------
Desarrollo MSX
-----------------------------
=> Desarrollo (Español/Spanish)
=> Development (English/Ingles)
=> Rutinas - Snipets
=> Herramientas - Dev Tools
=> Hardware
=> Enlaces - Links
=> Team-Up
-----------------------------
MSX Actualidad
-----------------------------
=> General
=> Eventos - Events
=> Concursos - Contest
=> Reviews
-----------------------------
Archivo (pre 2018)
-----------------------------
=> Karoshi Corporation
===> Karoshi Open Source
===> Videogames | Juegos
===> Unfinished projects | Proyectos inacabados
===> Applications | Aplicaciones
=> Media
=> MSXdev Archives
===> MSXdev '14
===> MSXdev '13
===> MSXdev '12
===> MSXdev '11-'03 (wip)
=> AUIC - Comunicados
=> AAMSX - General
=> English Boards
===> Off-topic
===> Contests
===> Suggest a Game
===> General Info
=> Otros
===> Sugierenos un juego
===> Compro/Cambio/Vendo/Subasto
===> Off-topic
Cargando...