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!

domingo, 17 de marzo de 2013

Factorial de un número en Python

El factorial de un número en Python, usando sumas iterativas:

#!/usr/bin/env python
#Factorial de un numero usando sumas iterativas
#@GraggLoki

def mult(a,b):
    cont=0
    suma=0
    while(cont < b):
        suma=suma+a
        cont=cont+1
    return suma
    
n=input("Numero: ")
if(n < 0):
    print ("No existe factorial de "+str(n))
else:
    if(n==0):
        m=1
    else:
        m=n #m es una copia del numero a calcular
        i=m-1
        while(i!=0):
            m=mult(m,i)
            i=i-1
    print ("El resultado es %d" % m)

Loki!