Momento 4 arquitectura de computadores

November 7, 2017 | Author: jorge cortes | Category: Assembly Language, Computer Program, Computer Programming, Programming Language, Office Equipment
Share Embed Donate


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

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF