meter numeros de tablas de 16 bit

Programando el Amstrad en Ensamblador.
Reglas del Foro
Debido a que hay varios temas pidiendo ayuda para programar en ensamblador máquinas distintas al Amstrad CPC, con micro distinto al Z80 y que incluso dependen del sistema operativo, nos vemos en la necesidad de poner por escrito que estos posts son bienvenidos pero que no es el lugar adecuado ya que por estos lares nos dedicamos más al ensamblador del Z80, un microprocesador de 8 bits que tuvo su gran auge en ordenadores y consolas de los años 80.

De todas formas, esto no quita que alguien que sepa del asunto pueda postear alguna respuesta pero es más fácil encontrar foros dedicados a programar en ensamblador en Windows o MS-DOS que ayudarán más que nosotros:
http://www.lawebdelprogramador.com/news ... nsamblador
halcon357
Lechoncillo
Lechoncillo
Mensajes: 11
Registrado: Dom 04 Nov , 2012 7:00 pm

meter numeros de tablas de 16 bit

Mensajepor halcon357 » Jue 28 Ene , 2016 9:15 pm

buenas a to dos soy nuevo en esto del ensamblador quisiera pasar esta rutina de 8 bit a 16
ejemplo,+

org &4000
ld b,3
ld hl,&4040
ld de,dato
sa
ld a,(de)
ld (hl),a
inc de
inc hl
djnz sa
ret
dato
db 12,2,4



meter los numeros de las tablas a 16 bit

org &4000
ld b,3

ld de,dato
sa
ld hl,(de)
ld (&4040),hl
inc de

djnz sa
ret
dato
dw 1233,1000,3000

Avatar de Usuario
dinoneno
Megaforero
Megaforero
Mensajes: 298
Registrado: Mié 13 Sep , 2006 7:32 am
Ubicación: Nambroca

Re: meter numeros de tablas de 16 bit

Mensajepor dinoneno » Vie 29 Ene , 2016 5:53 pm

Algunas alternativas:

1) Interpretar que en lugar de 3 números de 16 bits son 6 números de 8 bits:

Código: Seleccionar todo

org &4000
ld b,6
ld hl,&4040
ld de,dato
sa
ld a,(de)
ld (hl),a
inc de
inc hl
djnz sa
ret
dato
dw 1233,1000,3000
2) Esta primera alternativa se puede mejorar con la instrucción LDIR, intercambiando el uso de los punteros DE y HL como origen y destino:

Código: Seleccionar todo

org &4000
ld bc,3
ld de,&4040
ld hl,dato
ldir
ret
dato
dw 1233,1000,3000
3) Y siendo fiel a la idea que tenías para resolverlo:

Código: Seleccionar todo

org &4000
ld b,3
ld hl,&4040
ld de,dato
sa
ld a,(de)
ld c,a
inc de
ld a,(de) ;; CA contiene el valor
inc de
ld (hl),c
inc hl
ld (hl),a
inc hl
djnz sa
ret
dato
dw 1233,1000,3000

halcon357
Lechoncillo
Lechoncillo
Mensajes: 11
Registrado: Dom 04 Nov , 2012 7:00 pm

Re: meter numeros de tablas de 16 bit

Mensajepor halcon357 » Sab 30 Ene , 2016 8:51 pm

muchisimas gracias dinoneno,estaba a punto de abandonar esto del ensamblador.gracias compañero


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro


La Comunidad Española
ESP Soft, juegos para tu CPC Foro de Amstrad CPC Todos los juegos para CPC en un CD Web dedicada al Amstrad CPC (utilidades) Información útil para el CPC (talleres) Selección de juegos de Amstrad CPC Mundo CPC Pree Play then any Key CPC Basic