Está en la página 1de 7

; PROGRAMA DE SUCESION DE NUMEROS 1,4,8,14,24,X

MOV D, 232

MOV C,1 ; asigno el valor de 1 a la variable c


MOV B,3 ; asigno el valor de 3 a la variable b
MOV A,1; asigno el valor de 1 a la variable a

.loop:
ADD C, 48
MOV [D], C
SUB C, 48
INC D

ADD C,B
ADD B,A
MUL 2
CMP D, 235
JNZ .loop

.loop2:
PUSH A
PUSH B

MOV A,C
MOV B,C

DIV 10
ADD A, 48
MOV [D], A
SUB A, 48
INC D

MUL 10
SUB B,A
ADD B,48
MOV [D], B
SUB B,48
INC D

POP B
POP A

ADD C, B
ADD B, A
MUL 2

CMP D, 241
JNZ .loop2
Algoritmo sin_titulo
Escribir 'Ingresar numero x'
Leer x1
Escribir 'Ingresar numero y'
Leer y1
multi <- (x1*y1)
suma <- (x1+y1)
resta <- (x1-y1)
division <- (x1/y1)
Escribir 'x*y = ',multi
Escribir 'x+y = ',suma
Escribir 'x-y = ',resta
Escribir 'x/y = ',division
FinAlgoritmo

-------------------------------------------
ASSEMBLER
-------------------------------------------
;SUMA/RESTA/MULTI/DIVISION
JMP main

var1: DB 10
var2: DB 2

main:
MOV D, 232
CALL suma
CALL resta
CALL division
CALL multiplicacion
JMP end

suma:
MOV A, [var1]
ADD A, [var2]
CALL print
RET

resta:
MOV A, [var1]
SUB A, [var2]
CALL print
RET

division:
MOV A, [var1]
DIV [var2]
CALL print
RET

multiplicacion:
MOV A, [var1]
MUL [var2]
CALL print
RET

print:

MOV B,A
DIV 10
ADD A,48
MOV [D],A
SUB A, 48
INC D
MUL 10
SUB B,A
MOV A,B
ADD A,48
MOV [D], A
SUB A,48
INC D
INC D
RET

end:
HLT

// Ejercicio 2
Algoritmo Sucesion
razon <- 3
termino <- 1
Escribir termino
Para i<-0 Hasta 20 Hacer
resto <- i MOD 2
Si resto=0 Entonces
termino <- termino+razon
razon <- razon*2
SiNo
termino <- termino*2
FinSi
Escribir termino
FinPara
FinAlgoritmo

-------------------------------------------
ASSEMBLER
-------------------------------------------
;Sucesion 1,4,8,14,28
MOV D,232
MOV C,0

JMP .sucesion
razon: DB 3
termino: DB 1
aux: DB 0

.sucesion:
MOV A,[termino]
CALL .code
HLT

.code:
MOV B,A
MOV A,C
DIV 2
MUL 2
MOV [aux],A
MOV A,C
SUB A,[aux]
CMP A,0
MOV A,B
JZ .par
CALL .impar
RET

.par:
ADD A,[razon]
MOV B,A
MOV A,[razon]
MUL 2
MOV [razon],A
MOV A,B
CALL .print
RET

.impar:
MUL 2
CALL .print
RET

.print:
MOV B,A
DIV 10
CMP A,0
MOV A,B
JZ .printOne
JNZ .printTwo
RET

.printOne:
ADD A,48
MOV [D],A
SUB A,48
INC C
INC D
INC D
CALL .check
RET

.printTwo:
MOV B,A
DIV 10
ADD A,48
MOV [D],A
INC D
SUB A,48
MUL 10
MOV [termino],B
SUB B,A
MOV A,B
ADD A,48
MOV [D],A
SUB A,48
MOV A,[termino]
INC D
INC D
INC C
CALL .check
RET

.check:
CMP C,6
JNZ .code
CALL .end
RET

.end:
HLT

Algoritmo SUCESION
x2 <- 0
x1 <- 1
Para i<-1 Hasta 5 Hacer
x2 <- (i*i)-(2*i)+3
Escribir x2
Si i<=2 Entonces
x1 = 1
Escribir x1
SiNo
x1 <- x1*(i-1)
Escribir x1
FinSi
FinPara
FinAlgoritmo

NASM - Fibonacci
MOV D,232

MOV A,1

MOV B,1

ADD A,48

MOV [D],A

SUB A,48

INC D

ADD B,48

MOV [D],B

SUB B,48

INC D

.loop:

ADD A,B

MOV C,A

SUB A,B

ADD C,48

MOV [D],C

SUB C,48

INC D

MOV A,B

MOV B,C

CMP D,238

JNZ .loop

.loop2:

ADD A,B

MOV C,A

SUB A,B

PUSH A

PUSH B

MOV A,C
MOV B,A

DIV 10

ADD A,48

MOV [D],A

SUB A,48

INC D

MUL 10

SUB B,A

ADD B,48

MOV [D],B

SUB B,48

INC D

POP B

POP A

MOV A,B

MOV B,C

CMP D,238

JNZ .loop2

; Sucesión de Padovan

JMP start

También podría gustarte