Karoshi MSX Community
05 de Julio de 2021, 07:04:02 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 [2]
  Imprimir  
Autor Tema: Ayuda con un problema ... absurdo ¿?¿?  (Leído 8087 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Jon_Cortazar
Administrator
Karoshi Forum's God
********
Mensajes: 2777



WWW Email
« Respuesta #15 : 06 de Marzo de 2007, 07:55:30 pm »

Para el BCD, el señor robsy se curró un tutorial muy bueno!. En resumidas cuentas, se basa en tratar los números hexadecimales como si fueran cifras decimales, de forma que los acarreos se actualizan como si fueran cuentas decimales de toda la vida. MUY UTIL para hacer marcadores: de recomendada lectura es, de nuevo, el tutorial de robsy que lo puedes bajar aquí: A VUELTAS CON LOS NÚMEROS DECIMALES (Eduardo Robsy)
En línea

Jon Cortázar Abraido (aka El Viejo Archivero)
RELEVO Videogames
[Dioniso: La cafeína está haciendo su trabajo; yo espero hacer el mío.]
[pitpan: Me sigue pareciendo más productivo jugar al SNAIL MAZE que seguir esta discusión.]
jjfranco
Visitante
« Respuesta #16 : 07 de Marzo de 2007, 02:15:57 pm »

Hola, como yo tambien soy nuevo en esto del ensamblador, y sé lo que cuesta empezar,
 me voy a permitir la licencia de sugerirte una forma eficaz y estandar de
realizar bucles, y ademas muy sencilla, y ya que has conseguido que tu
codigo funcione (ya sé que este no es el motivo de tu pregunta, pero eso que
me permito la licencia de hacerte la sugerencia despues
de ver tu codigo)

El Z80, por suerte tiene una instruccion que está pensada para eso, para
hacer bucles, con lo que con esa instruccion y el registro b, puedes hacer
bucles de cualquier tamaño.

PARA BUCLES DE MENOS DE 255 REPETICIONES
---------------------------------------------------------------
   ld b,número_de_repeticiones_del_bucle
bucle:
   ;
   ; Tarea a realizar por el bucle
   ;
   djnz bucle
---------------------------------------------------------------



PARA BUCLES DE MAS DE 255 REPETICIONES
---------------------------------------------------------------

   ld b,número_de_repeticiones_del_bucle_exterior
buc_ext:
   push bc

   ld b,número_de_repeticiones_del_bucle_interior
buc_int:
   ;
   ; Tarea a realizar por el bucle
   ;
   djnz buc_int

   pop bc   
   djnz bu_ext
---------------------------------------------------------------
En este último, el numero de veces que se realizará el bucle sera un total de

[numero_de_repeticiones_del_bucle_exterior]
X
[numero_de_repeticiones_del_bucle_interior]


Bueno pos eso que espero que no tomes a mal la sugerencia. Yo llevo muy poco
tiempo programando en ensamblador y te puedo decir que es más sencillo
de lo que parece, solo es cuestión de saber las cuatro cosas básicas, como
los bucles, o como tomar decisiones, por ejemplo.

Por lo demás tu pregunta, que aquí hay gente que sabe mogollo.Creeme. Yo estoy
aprendiendo, de ellos, más de lo que ellos se creen.

Respecto al BCD, es solo el acrónimo de Decimal Codificado en Binario (pero en
inglés claro), es un concepto que se usa mucho en electronica digital, normalmente
se suele usar un formato basado en el peso de los bits como es el 8-4-2-1,
pero nada impide que se pueda codificar de otra manera.La idea es poder representar
números más grandes que los que se pueden representar utilizando el formato
binario puro.

Usando la codificacion BCD 8-4-2-1 el binario 0001 representaria el uno
decima, y el resto de los números se representarian según la siguiente tabla.

0000=0
0001=1
0010=2
0011=3
0100=4
0101=5
0111=6
1000=7
1001=8
1010=9

El resto de combinaciones binarias para 4bits no se usan.

Y respecto a lo de las mascaras, yo personalmente prefiero hacerlas en
binario, es mi gusto.

Y ya esta por hoy, espero que este post quede para la posteridad, como mi
contribución a la comunidad MSXera.

Y lo dicho, tu pregunta, pregunta, que este año queremos más juegos en la
DEv. Yo soy nuevo, y al principio cuesta pero creeme que es muy sencillo, a
ver si alguien más se anima a programar, manque sea en C.
En línea
cybernoid
Karoshi Maniac
****
Mensajes: 368



WWW
« Respuesta #17 : 07 de Marzo de 2007, 02:37:32 pm »


Y ya esta por hoy, espero que este post quede para la posteridad, como mi
contribución a la comunidad MSXera.

Y lo dicho, tu pregunta, pregunta, que este año queremos más juegos en la
DEv. Yo soy nuevo, y al principio cuesta pero creeme que es muy sencillo, a
ver si alguien más se anima a programar, manque sea en C.

buena contribucion ^_^ siempre es de agradecer, aunque ya tenia varias pruebas hechas con ese tipo de bucles, pero leerlo asi de claro es un placer Smiley, es bueno saber que no soy el unico que se esta rompiendo el coco para aprender algo.


y como pueda desde luego que me presento a la Dev ^_^
En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #18 : 07 de Marzo de 2007, 09:44:59 pm »

Como bucle de 16 bits, prefiero la siguiente expresión:

ld bc,NUM_VECES

BUCLE:
push bc ; incluir esta línea en caso de que el código del bucle modifique el registro B o el C

...

pop bc ; incluir esta línea en caso de que el código del bucle modifique los registros B o C
dec bc
ld a,b ; ojo: modifica A
or c   ; ojo: modifica A
jr nz,BUCLE

Esta rutina te permite hacer cualquier número de iteraciones entre 1 y 65536.

Se pueden hacer variaciones semejantes. De todos modos, en http://map.tni.nl encontraréis un artículo muy bueno sobre bucles, que va mucho más allá de lo que aquí se ha explicado.
En línea
Páginas: 1 [2]
  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!