Lenguaje Ensamblador

Páginas: 8 (1992 palabras) Publicado: 4 de octubre de 2011
Ejercicios Ensamblador – Unidad II
Instrucciones: Forme Grupos de 5 personas y desarrolle cada uno de los ejercicios propuestos a continuación. El código deber estar ordenado y completamente documentado, explicando el propósito de cada sentencia. Fecha de presentación: jueves, 10 de Junio del 2011.
1. Crear un programa que asigne un valor al Registro “DX” y muestre en pantalla si es “par” o“impar”
2. Crear un programa que permita multiplicar “VAR1” por “VAR2”, utilizando el método de sumas sucesivas, almacenado el resultado en la variable “RESULTADO” (prohibido utilizar MUL). Las variables serán inicializadas en código.
3. Crear un programa que permita dividir VAR1 entre VAR2, utilizando el método de Euclides (prohibido utilizar DIV). Las variables serán inicializadas encódigo. Almacenar COCIENTE y RESTO.
4. Codificar el algoritmo que dadas 2 variables T1 y T2. Asigne el valor correspondiente a las variables MAYOR y MENOR.
5. Crear un programa que les de la bienvenida a partir de leer sus apellidos y Nombres.
6. Crear un programa que calcule el factorial de un número (del 0 al 9) contenido en la variable “NumA” y lo almacene en la variable “Factorial”.7. Crear un programa que muestre la serie de Fibonacci:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
8. Codificar un programa que permita calcular “X” elevado a la “N” y almacenarlo en “Potencia”, variables inicializadas en código.
9. Crear un programa que compare 2 cadenas (comparar letra por letra) y muestre la mayor (cadenas inicializadas en código).
10. Codificar el algoritmo quepermita sumar 2 vectores, “VectorA” y “VectorB”, de 15 elementos cada uno y almacene el resultado en el vector “Suma”.
11. Codificar el algoritmo que permita multiplicar 2 vectores, “VectorA” y “VectorB”, de 10 elementos cada uno y almacene el resultado en “Producto”.
12. Codificar un programa que permita leer 5 números enteros (de 1 digito) y muestre su promedio (basta con mostrar elcociente).

Resultados:
EJERCICIO N°1:

; multi-segment executable file template.

data segment
; add your data here!
pkey db "press any key...$"

msnPar db "Numero Par ", 10, 13, "$"
msnImpar db "Numero Impar ", 10, 13, "$"

Dividendo dw 350 ;
Divisor db 2 ; 0..255

ends

stack segment
dw 128 dup(0)
ends

code segment
start:
;set segment registers:
mov ax, data
mov ds, ax
mov es, ax

; add your code here
; mov dx, 0
mov dx, Dividendo ; Asigna "Dividendo" a "dx" (asi lo pide el enunciado)
mov ax, bx ; Asignamos "dx" a "ax" para realizar la division
mov bl, Divisor ; asignamos el "Divisor" a "bl"
div dl ; realizamos la division: ax/dl; cociente se guarda en "al"
; resto se guarda en "ah"
Inicio_si:
cmp ah, 0 ; compara "ah" (el resto) con 0, si son iguales
; el "flag Z" asume el valor de 1
JZ Verdadero ; JZ: salta a "Verdadero" si "flag Z" es 1

Falso: ; Numero Impar
lea dx, msnImpar
mov ah, 9
int 21h ; output string atds:dx

; wait for any key....
mov ah, 1
int 21h
JMP Fin_Si

Verdadero: ; Numero par
lea dx, msnPar
mov ah, 9
int 21h ; output string at ds:dx

; wait for any key....
mov ah, 1
int 21h
Fin_Si:


lea dx, pkey
mov ah, 9
int 21h ; output string at ds:dx; wait for any key....
mov ah, 1
int 21h

mov ax, 4c00h ; exit to operating system.
int 21h
ends

end start ; set entry point and stop the assembler.

EJERCICIO N°2:

; multi-segment executable file template.

data segment
; add your data here!
pkey db "press any key...$"
VAR1 dw 10
VAR2 dw 5
RESULTADO dw 0
ends...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Lenguaje Ensamblador
  • Lenguaje ensamblador
  • Lenguaje ensamblador
  • Lenguaje ensamblador
  • Lenguaje ensamblador
  • Lenguaje ensamblador
  • Lenguaje ensamblador
  • Qué es el lenguaje ensamblador

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS