Colaborativo 3 arquitectura pc.
Enviado por acuaman12345 • 18 de Mayo de 2016 • Informe • 2.472 Palabras (10 Páginas) • 1.867 Visitas
Trabajo Colaborativo Momento 2
Presentado por
Jhon Wuilquer Laguna Castellanos
Cod 1077849519
Universidad Abierta y a Distancia UNAD
CEAD Pitalito
Ingeniería de Sistemas
Trabajo Colaborativo Momento 2
Presentado por
Jhon Wuilquer Laguna Castellanos
Cod 1077849519
Presentado a
Anyelo Gerley Quintero
Universidad Abierta y a Distancia UNAD
CEAD Pitalito
Ingeniería de Sistemas
INTRODUCCIÓN
En este trabajo vamos a encontrar un grafico de las instrucciones de MIPS como son las instrucciones tipo salto, instrucciones corta, cerca y lejana como también dos Problemas resueltos mediante código assembler mediante el programa note pad++
Objetivos
Objetivos General
- Aplicar el Lenguaje Emsamblador
Objetivos Especificos
- Conocer las etiquetas y decisiones del lenguaje Emsanblador
- Resolver y utilizar el código mediante el programa NotePad++
- Adquirir conocimientos de las propiedades del lenguaje ensamblador
[pic 1][pic 2][pic 3][pic 4][pic 5][pic 6][pic 7][pic 8][pic 9][pic 10][pic 11][pic 12][pic 13][pic 14][pic 15]
2. Desarrollar un código en un lenguaje ensamblador que permita leer un número de un digito por teclado y determinar si el número es positivo, negativo o cero. Subir un video a la web donde explique cómo lo hizo, debe quedar evidencia del estudiante que lo desarrolló
URL YOUTUBE
https://youtu.be/Vqlltl8RoN4
Código ensamblador
- .model small; El que define el Modelo que vamos utilisar de Memoria
- .stack 64; Se define el tamaño de nuestra pila
- .data ; el que define la variable
- msg1 db "Introdusca El Numero",' $'; Mensaje para introducir el primer Numero
- msg2 db "El Numero es Positivo",'$'; Mensaje si el numero es Positivo
- msg3 db "El numero es Negativo",'$'; Mensaje si el Numero es Negativo
- msg4 db "El Numero es Cero",'$'; Mensaje si el Numero es Cero
- saltar db " ",10,13,'$'; Para Saltar una Fila
- var1 db 0; Variable para mover El Valor del Numero
- var2 db 0; Variable para Comparar
- .code ; De aqui en adelante comiensa el Codigo Emsamblador
- inicio proc far
- mov ax, @data;
- mov ds, ax;
- ;Despejar Pantalla
- mov ah, 00
- mov dx, 03h;
- int 10h
- ;Mostrar el primer Mensaje
- mov ah, 09h ; Para Mostrar el primer mensaje en la Pantalla
- lea dx, msg1; Introdusca el Numero
- int 21h
- ;Leer y Convertir
- mov ah,01h ; Lee y Muestra el Numero en Pantalla
- int 21h
- sub al,30h; Hace la Conversion a ASCII hay que restarle
- mov var1,al ;Se pasa el Primer Byte
- int 21h
- sub al,30h; Hace la Conversion a ASCII
- mov ah,var1 ; Se pasa el Segundo Byte
- mov bl,var1; se Muebe el Valor de la variable 1 a bl
- cmp bl, var2;
- JG positi;
- JL negati;
- JE igual;
- mov ah, 09h ;
- lea dx, saltar;
- int 21h
- mov ah, 09h ;
- lea dx, saltar;
- int 21h
- positi:; si el número es Positivo
- mov ah,09h
- lea dx, msg2; El Numero es Positivo
- int 21h
- jmp salir
- negati:; si el Numero es Negativo
- mov ah,09h
- lea dx, msg3; El Numero es Negativo
- int 21h
- jmp salir
- igual:; El Numero es Cero
- mov ah,09h
- lea dx, msg4; El Numero es Igual a Cero
- int 21h
- jmp salir
- salir:; Mando Al DOS
- mov ax, 4c00h
- int 21h
- inicio endp
- end inicio
3. Desarrollar un código en un lenguaje ensamblador que permita realizar una multiplicación de dos números a través de sumas sucesivas y una potencia a través de multiplicaciones sucesivas (para ello debe utilizar instrucciones tipo bucle). Al inicio del programa se deben capturar por teclado dos números de un digito cada uno; subir un video a la web donde explique cómo lo hizo, debe quedar evidencia del estudiante que lo desarrolló
URL YOUTUBE
https://youtu.be/xCixdq5kCQg
Código ensamblador
- .model small;
- .stack 64;
- .data
- mainmenu db "Aplicativo para resolver una Multiplicacion o hallar la potencia",13,10
- db "**MENU**",13,10
- db "1.Multiplicacion",13,10
- db "2.Potenciacion",13,10
- db "3.Salir",13,10
- db "Seleccione Una Opcion",13,10,13,10,'$'
- msg1 db "Introdusca El Primer Numero",13,10,'$'
- msg2 db "Introdusca el Segundo Numero",13,10,'$'
- msg3 db "El Resultado de la Multiplicacion es:",'$'
- msg4 db "Introdusca la Base:",13,10,'$'
- msg5 db "Introdusca el Exponete:",13,10,'$'
- msg6 db "El Resultado de la Pontencia es:",'$'
- suma db 0
- num1 db 0
- num2 db 0
- potencia db 1
- base db 0
- exp db 0
- byteh db 0
- bytel db 0
- saltar db " ",13,10,'$'
- .code ; Empiesa el Codigo
- inicio proc far
- mov ax, @data;Direccionamiento de los segmentos de Datos
- mov ds,ax
- ;Limpiar Pantalla
- mov ah, 00
- mov dx,184Fh
- int 10h
- mov ah,02h
- mov bh,00; Inicia el Reguistro
- mov dh,00
- mov dl,00
- int 10h
- ;Para desplegar El Menu con Sus Opciones
- opcion:
- mov ah, 09h
- lea dx,mainmenu
- int 21h
- mov ah,01h
- int 21h
- ; Se Escoje la Opcion
- cmp al,49
- je multi
- cmp al,50
- je poten
- cmp al,51
- je exit
- multi:
- mov ah,09h
- lea dx,saltar;
- int 21h
- mov ah,09h
- lea dx,msg1;Solicitud del Primer Numero
- int 21h
- Mov ah,01h;lee y Muestra el Numero Digitado
- int 21h
- ;Conversuion del Numero
- sub al,30h;
- mov num1,al ;
- int 21h
- mov ah, 09h ;
- lea dx,saltar;
- int 21h
- mov ah,09h
- lea dx,msg2;Solicitud del Segundo Numero
- int 21h
- mov ah,01h ;
- int 21h
- ;Conversion del Numero
- sub al,30h;
- mov num2,al;
- int 21h
- ; Operaciones sumas Sucesivas
- mov cl,num2;
- sumar:
- mov al,num1;
- add al,suma;
- mov suma,al;
- loop sumar;
- mov ah,09h;
- lea dx,msg3;
- int 21h
- mov al,suma
- aam
- mov bytel,al
- mov byteh,ah
- mov ah,02h
- mov dl,byteh
- add dl,30h
- int 21h
- mov dl,bytel
- add dl,30h
- int 21h
- mov ah, 09h;
- lea dx,saltar;
- int 21h
- jmp salir
- exit:
- jmp salir
- poten:
- mov ah,09h
- lea dx,saltar;
- int 21h
- mov ah,09h
- lea dx,msg4;
- int 21h
- mov ah,01h;
- int 21h
- sub al,30h;
- mov base,al;
- int 21h
- mov ah,09h
- lea dx,saltar;
- int 21h
- mov ah,09h
- lea dx,msg5;
- int 21h
- mov ah,01h;
- int 21h
- sub al,30h;
- mov exp,al ;
- int 21h
- mov cl,exp;
- product:
- mov al,base;
- mov bl,potencia;
- mul bl;
- mov potencia,al;
- loop product ;
- mov ah, 09h ;
- lea dx,msg6;
- int 21h
- mov al,potencia
- aam
- mov bytel,al
- mov byteh,ah
- mov ah,02h
- mov dl,byteh
- add dl,30h
- int 21h
- mov ah,02h
- mov dl,bytel
- add dl,30h
- int 21h
- jmp salir
- salir:
- mov ax, 4c00h
- int 21h
- inicio endp
- end inicio
CONCLUSIONES
En el trabajo colaborativo aplicamos los conocimientos adquiridos en el módulo de arquitectura de computadores mediante el código de programación ensamblador para elaborar la solución a dos problemas planteados en la actividad utilizando el código ensamblador y mediante el programa NotePad++ ejecutar y verificar el código ya que nos puede ser útil para nuestra vida académica, laboral y cotidiana
(Castellanos, 2015)
(Castellanos, Punto 3, 2016)
...