0% encontró este documento útil (0 votos)
82 vistas7 páginas

Assembler 1

El primer documento describe un algoritmo para generar los términos de la sucesión 1, 4, 8, 14, 24, X mediante el uso de variables y bucles. El segundo documento contiene código en ensamblador para implementar operaciones matemáticas básicas como suma, resta, multiplicación y división. El tercer documento implementa un algoritmo en ensamblador para generar la sucesión de Fibonacci. El cuarto documento genera dos sucesiones numéricas mediante bucles anidados. El quinto documento parece comenzar la implementación de un algorit

Cargado por

Vivie All
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
82 vistas7 páginas

Assembler 1

El primer documento describe un algoritmo para generar los términos de la sucesión 1, 4, 8, 14, 24, X mediante el uso de variables y bucles. El segundo documento contiene código en ensamblador para implementar operaciones matemáticas básicas como suma, resta, multiplicación y división. El tercer documento implementa un algoritmo en ensamblador para generar la sucesión de Fibonacci. El cuarto documento genera dos sucesiones numéricas mediante bucles anidados. El quinto documento parece comenzar la implementación de un algorit

Cargado por

Vivie All
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

; 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