Karoshi MSX Community
05 de Julio de 2021, 12:57:41 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: [1]
  Imprimir  
Autor Tema: sumar 32 a de  (Leído 3380 veces)
0 Usuarios y 1 Visitante están viendo este tema.
jrcp_kun
Karoshi Newbie
*
Mensajes: 34


Email
« : 14 de Octubre de 2014, 10:56:30 pm »

la rutina es asi??  tengo un valor en de y quiero ir sumándole 32

pop de
ld bc,32
ex hl,de
add hl,bc
ex de,hl
push de


si la meto en un bucle

ld bc,5
push bc
bucle:
pop de
ld bc,32
ex hl,de
add hl,bc
ex de,hl
push de
pop bc
dec bc
jp nz,bucle
En línea
kabish
Karoshi Maniac
****
Mensajes: 470


caspaflims@hotmail.com
« Respuesta #1 : 15 de Octubre de 2014, 06:06:24 am »

Código:
ld d,0
ld e,32
add hl,de (o con acarreo seria, adc hl,de)

Con eso haces la suma. Luego lo metes en un bucle con las instrucciones que sea.
En línea
theNestruo
Karoshi Lover
***
Mensajes: 236


Email
« Respuesta #2 : 15 de Octubre de 2014, 06:14:02 am »

  push bc
bucle:
  pop de

Creo que el problema de tu rutina (al margen de optimizaciones como la que te recomienda kabish) puede estar ahí: metes el contador (bc) en la pila y luego intentas sacar lo que supongo que es un puntero (de) de la pila... pero como acabas de hacer un push bc, en realidad estás recuperando en de el valor del contador.
Prueba sin el par pop de/push de.
En línea

theNestruo."Old BASIC programmers never die; they GOSUB but never RETURN."
jrcp_kun
Karoshi Newbie
*
Mensajes: 34


Email
« Respuesta #3 : 15 de Octubre de 2014, 07:16:14 am »

Ese add hl,de me dice el asm que combinacion de comandos erronea. Por eso estoy usando bc. No me deja sumarlos asi. Jeje asi lo intentaba sin tanto lio
En línea
theNestruo
Karoshi Lover
***
Mensajes: 236


Email
« Respuesta #4 : 15 de Octubre de 2014, 06:01:45 pm »

Imagino que estarías intentando hacer ld de,hl, porque ld hl,de sí que existe Smiley
Hay muchos listados de instrucciones de Z80; a mí me resulta muy cómodo tener a mano éste de la MSX Assembly Page: http://map.grauw.nl/resources/z80instr.php y, para medir tiempos de rutinas enteras, BiT de Jannone: http://msx.jannone.org/bit/
Quizá no sea el mejor listado del mundo (no habla de cómo quedan afectados los flags ni nada de eso), pero para hacer una búsqueda rápida y ver si la instrucción que quiero poner existe me resulta bastante práctico.
En línea

theNestruo."Old BASIC programmers never die; they GOSUB but never RETURN."
jrcp_kun
Karoshi Newbie
*
Mensajes: 34


Email
« Respuesta #5 : 15 de Octubre de 2014, 09:26:41 pm »

gracias sigo trasteando
En línea
Páginas: [1]
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!