Momento 4 arquitectura de computadores
Short Description
Descripción: Momento 4 arquitectura de computadores...
Description
REPERTORIO DE INSTRUCCIONES
ARQUITECTURA DE COMPUTADORES 301302_43
TUTOR: ANYELO GERLEY QUINTERO
MILLER DUVAN LEMUS HORTA 1037573271 JORGE ALBERTO CORTÉS MONTOYA 1039596480 ROLANDO A PEREZ H 15271865 ANA MILENA RUIZ HERNÁNDEZ 1027942753 ESCUELA DE CIENCIAS BÁSICAS DE TECNOLOGÍA E INGENIERÍA UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA NOVIEMBRE DE 2016
1|Página
Introducción
El presente documento tiene como propósito plasmar mediante evidencias lo aprendido en la unidad tres del curso de arquitectura de computadores, en el que se explicara mediante un diagrama las instrucciones tipo salto para el lenguaje ensamblador, seguidamente se plasma la evidencia de un programa que tiene como objetivo comparar números pares, impares y el cero con el manejo de registros del procesador del computador y la lectura del teclado del mismo procesara y determinara si es lo que se solicita, se requiere haber estudiado la unidad tres para tener la capacidad de desarrollar las líneas de comandos en ensamblador.
2|Página
Objetivos
Objetivo General
Explorar las instrucciones tipo salto en lenguaje ensamblador, aplicándolo a ejercicios reales para programar.
Objetivos Específicos
Realizar un gráfico indicando los conceptos de: instrucciones tipo de salto, instrucciones saltos condicionales e incondicionales, instrucciones de etiquetas, instrucciones de bucles. Identificar los diferentes códigos en lenguaje ensamblador. Desarrollar casos reales con códigos fuentes, reconociendo la forma de realizar operaciones matemáticas.
3|Página
1. Explicar mediante un gráfico en que consiste las instrucciones tipo salto del Lenguaje Ensamblador (Direcciones corta, cercana y lejana, etiquetas, saltos incondicionales, saltos condicionales, instrucciones de testeo, decisiones y bucles).
4|Página
Instrucción JMP JE JNE JNG JGE JL JNL JLE JNLE JS
Estos saltos son designados por el mnemotécnico “JMP”, cuando es encontrado esta indicación se ejecuta invariablemente, es decir añade la distancia del salto al registro IP. Su sintaxis es: etiqueta JMP dirección corta, cercana o lejana.
Concepto
Etiquetas
Saltos Incondicionales
Son saltos de tres tipos y están determinados por la longitud del salto. Se describe a continuación: Dirección Corta: Esta es alcanzada por un desplazamiento de un byte, y está limitado a una distancia de 128-127 bytes. Dirección Cercana: Aquí se da el desplazamiento de una palabra, limitado a una distancia de 32, 768 a 32, 767 bytes en el mismo segmento. Dirección Lejana: Se alcanza por medio segmentos y solo tiene sentido en programas tipo Exe.
Direcciones
Los saltos condicionales transfieren control dependiendo de las configuraciones en el registro, esto indica que cuando salta de un lugar a otro si se cumple cierta condición lo ejecuta y sino continua en la siguiente línea
Instrucciones tipo salto lenguaje ensamblador Instrucciones de decisiones
Instrucciones de testeo
Corta-Cercana-Lejana
Saltos condicionales
Envía control del programa a un conjunto de instrucciones que se identifican pro medio de una etiqueta
Dentro de las etiquetas de salto incondicional se encuentran las siguientes:
Descripción Salto incondicional directo Salto por igual Salto por no igual Salto por mayor Salto no por mayor Salto por mayor igual Salto por no menor Salto por menor igual Salto por no menor igual Salto negativo
Las instrucciones de testeo, compara lógicamente los operandos, destino fuente Test. Esta instrucción desarrolla una conjunción de bit por bit de los operandos, a diferencia del AND no coloca el resultado en el operando destino, solo hace en el estado de las banderas.
Instrucciones de bucles
Las instrucciones de bucles, Son instrucciones simples que posibilitan un grupo de control elemental en los programas. Un bluce es un bloque de código que se ejecuta varias veces. Hay varias tipos de bucles: Bucles sin fin Bucles por conteo Bucles hasta Bucles mientras
Son nombres que se asignan a las direcciones de cualquier instrucción o localización de memoria, una vez el ensamblador encuentra una etiqueta, es reemplazada por la dirección correcta, por ejemplo: un salto a A90; es una etiqueta dada a un atributo a una instrucción cercana a MOV.
Las instrucciones de decisiones son representadas para toma de decisiones, el lenguaje ensamblador del MIPS incluye dos instrucciones de toma de decisiones similares a una sentencia If con go to. La primera instrucción es beg registro1, registro2, L1. Esta instrucción significa ir a la sentencia etiquetada con L1.
5|Página
2. Desarrollar un código en lenguaje ensamblador que permita leer un número de un digito por teclado y determinar si el número es par, impar o cero. Generar tres capturas por pantalla de la ejecución del programa. Anexar Archivo .asm del programa. Nota: No utilizar Simuproc. Este código se escribió en emu8086 y a continuación de evidencia el trabajo realizado.
Imagen 1 captura del código. (25/11/2016). "Elaboración Propia" En esta imagen se evidencia el desarrollo del punto, la captura de los datos por teclado, el movimiento del contenido de los registros, saltos a las etiquetas.
6|Página
Imagen 2 captura del código en ejecución. (25/11/2016). "Elaboración Propia" En esta imagen podemos apreciar el programa emu8086 ejecutándose y corriendo las líneas de comando del código propuesto, se evidencia la solicitud del dato por parte del usuario.
Imagen 3 captura del código en ejecución resultado. (25/11/2016). "Elaboración Propia"
7|Página
En esta imagen el código devuelve el dato después de procesar la información la cual dice que el 5 es un número impar. Código escrito:
.model samll .stack 64 .data
var1 dw 0 var2 db 2
msg1 db 'Ingrese un numero:', 15, '$' msg2 db 'El numero es cero.', 11, '$' msg3 db 'El numero es par. ', 12, '$' msg4 db 'El numero es impar.',13, '$'
.code general proc far
mov ax, @data mov ds, ax
mov ah, 09 lea dx, msg1 int 21h
mov ah, 01 int 21h
sub al, 30h
mov var1, ax 8|Página
cmp al,0 JE mostrar
mov ax, var1 div var2
cmp ah,0 JG mostrar2 jmp mostrar1
mostrar: mov ah, 09 lea dx, msg2 int 21h jmp fin
mostrar1: mov ah, 09 lea dx, msg3 int 21h jmp fin
mostrar2: mov ah, 09 lea dx, msg4 int 21h jmp fin fin: mov ah, 4ch
9|Página
int 21h
general endp
end
3- Desarrollar un código en 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; Generar tres capturas por pantalla de la ejecución del programa. Solución
Imagen 4 captura edición del instrucciones emu8086. (27/11/2016). "Elaboración Propia"
10 | P á g i n a
Se puede observar en donde se declaran las etiquetas y se inicia la lectura de los números por teclado.
Imagen 5 captura ejecución del código en donde se introducen los datos. (27/11/2016). "Elaboración Propia"
11 | P á g i n a
Imagen 6 captura ejecución del programa entregando resultados. (27/11/2016). "Elaboración Propia"
Se puede observar el código al pedir los dato al usuario discrimina la base y el exponente ya que en algunos casos existe diferencias y es importante saber cuál es el exponente.
.model samll .stack 64 .data
;codigo para multiplicar y potenciardos numeros
msg0 db 10, 'Ingrese primer numero base operacion: ', '$' prn db 0 msg1 db 10, 'Ingrese segundo numero operacion: ', '$' sgn db 10 msg2 db 00, 'El valor de la multiplicacion es: ', '$' res1 db 00 msg3 db 00, 'El valor de la potencia es: ', '$' res2 db 00 jump db "",10,10,13,11,'$' base db 00 exp db 00
.code main proc far
mov ax, @data mov ds, ax 12 | P á g i n a
mov ax, 00 mov al, 03h int 10h
mov ah,09h lea dx, msg0 int 21h
mov ah, 01h int 21h sub al, 30h mov prn, al mov exp,al
mov ah, 09 lea dx, jump int 21h
mov ax,@data mov ds,ax mov ah,09 lea dx,msg1 int 21h
mov ah,01h int 21h sub al, 30h mov sgn,al mov base,al 13 | P á g i n a
mov ah,09 lea dx, jump int 21h
;bucle multiplicacion mov cl,sgn mov al,0 mov bl,prn x: add al,bl loop x mov res1,al ;bucle potenciancion mov cl,base mov al,1 mov bl,exp xx: mul bl loop xx
mov res2,al mov ax,@data mov ds,ax mov ah,09
lea dx,msg2 int 21h 14 | P á g i n a
; implimiendo resultado de la multiplicaicon mov dl,res1 add dl,30h mov ah,02h int 21h
mov ah,09 lea dx, jump int 21h
mov ax, @data mov ds,ax mov ah,09 lea dx, msg3
int 21h ;imprimiendo resultado de la potencia mov dl,res2 add dl,30h mov ah,02h
fin: int 21h mov ax,4c00h
main endp end main
15 | P á g i n a
Conclusiones
El lenguaje ensamblador es una forma de comunicación con el computador para la creación de programas o software que hoy día son utilizados en el mundo empresarial, este trabajo permitió reconocer y explorar los conceptos básicos de instrucciones de salto, y los elementos necesarios para que este funcione oportunamente. Algunos de estas herramientas son: instrucciones de bucles, de decisiones, saltos condiciones, saltos incondicionales, entre ellos. Programar no es una tarea fácil, sin embargo la creatividad e imaginación juega un papel importante, los códigos y la sintaxis de la misma permite finalmente diseñar cualquier programa. El lenguaje de bajo nivel representa retos importantes ya que se debe considerar lo más básico de la instrucción, a diferencia de otros lenguajes de programación en los que se da por entendido implícito algunas instrucciones. Ayuda al aprendizaje de los registros del procesador en donde para elaborar un código es necesario saber el comportamiento de cada uno. El repertorio de instrucciones es de poca cantidad pero es complejo el uso al iniciar, se debe entender la lógica de funcionamiento muy buen reto.
16 | P á g i n a
Referencias Bibliográficas
Recuperado de:
http://comunidad.dragonjar.org/f177/tutorial-completo-de-lenguajeensamblador-8845/#post21426. http://www.abreojosensamblador.net/Productos/AOE/html/Pags/Cap04.html https://es.scribd.com/doc/6643575/unidad-2-ensamblador.
https://books.google.com.co/books?id=z1ukg428VjcC&pg=PA115&lpg=PA1 15&dq=que+son+instrucciones+de+decision+en+saltos+de+lenguaje+ensa mblador&source=bl&ots=VIXz8ohBtf&sig=3FmpEQntBPyEPYkY4oQmypLJ PyY&hl=es19&sa=X&ved=0ahUKEwj2sqabsLzQAhWLNiYKHQT6Ci8Q6AEIRjAI#v=on epage&q&f=false http://www.ittux.edu.mx/sites/default/files/MICROCOMPUTADORAS_AL_D ETALLE.pdf http://moisesrbb.tripod.com/unidad5.htm
17 | P á g i n a
View more...
Comments