; Demostracion de datos y variables en memoria ORG 33500 CALL CLS ; Primero vamos a copiar unos datos a la videomemoria. LD HL, datos ; origen LD DE, 16384 ; destino LD BC, (longitud_datos) ; longitud (BC son 2 bytes, var es DW) LDIR LD DE, 10 ; D = 0, E = 10 CALL CursorAt LD DE, texto CALL PrintString ; Imprimimos cadena ; Ahora vamos a sumar 1 a cada caracter de la cadena, ; un total de "repeticiones" veces: LD HL, texto ; Origen LD A, (repeticiones) ; A LD B, A ; B = A (para DJNZ) bucle: INC (HL) ; Incrementamos el valor apuntado por HL INC HL ; Siguiente posicion de la cadena DJNZ bucle ; Repetir "variable (27)" veces LD DE, texto CALL PrintString ; Imprimimos cadena transformada LD A, 1 LD (fin), A ; Cambiamos valor de variable LD BC, (variable_16bit) ; Ahora BC vale 12345 CALL PrintNum ; imprimir su valor CALL PrintSpace LD A, (fin) ; Ahora BC debería valer 1 LD B, 0 LD C, A ; BC = A (B=0 y C=A) CALL PrintNum RET datos DB 0, $FF, $FF, 0, $FF, 12, 0, 0, 0, 10, 255 longitud_datos DW 10 texto DB "Esto es una cadena de texto", _CR, _CR, _EOS repeticiones DB 27 variable_16bit DW 12345 fin DB 0 ;; Incluimos nuestra libreria aqui INCLUDE "utils.asm" END 33500