Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MOV D, 232
.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