Tod ist unvermeidlich, aber meist unbedeutend...

martes, 19 de marzo de 2013

Multiplicación en ASM Z-80

Usando el Microprocesador Z80 programé el siguiente código, cuyo fin es la multiplicación de dos números previamente cargados en memoria, por ejemplo en la localidad 1000H cargamos un 5 y en la localidad 1001H cargamos un 10, y el resultado de la multiplicación lo cargamos en la localidad 1002H.

;Multiplicacion en ASM
;Usando el microprocesador Z80
;@GraggLoki
MAIN: 
    LD A,(1000H) ; A <- (1000H)
    CP 0         ; Comparacion con cero
    JR Z,ETI5    ; Si la bandera Z esta encendida vamos a ETI5
    LD B,A       ; Cargamos a B con el contenido de A
    LD A,(1001H) ; Cargamos a A con el contenido de la dir 1001H
    CP 0        
    JR Z,ETI5    
    CP B         
    JP P,ETI2
    LD C,A
    LD A,0
ETI3:
    ADD A,B
    DEC C       ; C=C-1
    JR NZ,ETI3
ETI5:
    LD (1002H),A
    HALT
ETI2:
    LD C,A
    LD A,0
ETI4:
    ADD A,C
    DEC B
    JR NZ,ETI4
    JR ETI5

Aquí podemos ver que, después de haberse ejecutado el programa, en la localidad 1002H tenemos como resultado un 32 en hexadecimal, que en decimal es 50.
3 * 16 = 48 + 2 = 50



Loki!

0 comentarios:

Publicar un comentario