Karoshi MSX Community

Desarrollo MSX => Desarrollo (Español/Spanish) => Mensaje iniciado por: aorante en 13 de Febrero de 2011, 11:55:52 am



Título: suma de un numero de 8 bits con signo a un registro de 16bits
Publicado por: aorante en 13 de Febrero de 2011, 11:55:52 am
Necesito sumar en assembler un numero con signo (byte) a un registro de 16bits, pero no se como hacerlo.  ???

alguien sabe?


Título: Re: suma de un numero de 8 bits con signo a un registro de 16bits
Publicado por: SapphiRe_MSX en 13 de Febrero de 2011, 12:28:40 pm
Necesito sumar en assembler un numero con signo (byte) a un registro de 16bits, pero no se como hacerlo.  ???

A ver si me sale de cabeza...

Entrada:

HL número de 16 bits
A número de 8 bits con signo

Código:
push bc ;guardamos bc porque lo vamos a engorrinar
ld b,0
ld c,a
bit 7,c
jp z,@@suma
dec b
@@suma:
add hl,bc
pop bc ; recuperamos bc tras engorrinarlo

Salida:

HL contiene el resultado
Ningún otro registro se ve modificado :D

Espero que funcione y te valga :P


Título: Re: suma de un numero de 8 bits con signo a un registro de 16bits
Publicado por: Mortimer en 13 de Febrero de 2011, 04:38:14 pm
Que rodeos hay que dar a veces para hacer algo que parece sencillo con nuestro modesto Z80  ::) En el 8086 por ejemplo ya hay una instrucción exprofeso para extender byte a word (CBW)


Título: Re: suma de un numero de 8 bits con signo a un registro de 16bits
Publicado por: aorante en 13 de Febrero de 2011, 05:05:36 pm
Espero que funcione y te valga :P

Gracias!  :D

ya te comentaré a lo largo de la semana que viene, cuando lo pruebe.
Es para el player que estoy programando de la version 2 del PSGed. Sobre la frecuencia dada correspondiente a la nota, permito aplicarle un offset (el byte con signo), que podrá modificarse con un controlador de pots (paddles), dando más juego para hecer cosas en directo.   ;D