Comparaciones en lenguaje ensamblador

Documentos relacionados
Instrucción De Salto Incondicional

El Diseño de un Lenguaje Máquina

Resumen de las instrucciones del 8086/8088

Trabajo Práctico Nro 3: Assembler

Aprendiendo Sistemas Operativos: Programación de Procesadores de Arquitectura IA-32

Práctica 1. Introducción a la programación en ensamblador

Conceptos de Arquitectura de Computadoras Curso 2015

Intel 8086 modelo básico (primera parte) Registros:

Construyendo Programas más Complejos

Tema 5.1: Presentación de datos en pantalla

Tema 5. Presentación de datos por pantalla

Arquitectura intel Preámbulo de OSO para alumnos formados en el procesador MIPS. Asignatura Sistemas Operativos Murcia abril de 2005

Instrucciones de Control de Flujo y Usos de la Pila

REPERTORIO DE INSTRUCCIONES DEL MICROPROCESADOR 8086

Intel Arquitectura. Programación en Ensamblador Ing. Marcelo Tosini

"Programación en Ensamblador del microprocesador Pentium (I)"

Departamento de Sistemas e Informática

REFERENCIA DEL LENGUAJE

Diseño Estructurado de Algoritmos

3 - Arquitectura interna de un up

Ensamblador. Introducción. Dpto. Física y Arquitectura de Computadores. Universidad Miguel Hernandez

Estructuras de Control

TEMA 4. ARQUITECTURA IA-64

Este grupo es una continuación del anterior, incluye las siguientes instrucciones:

Práctica 4. Organización del Computador 1 12 de septiembre de Algunas consideraciones preliminares:

Nombre del módulo: Instalación de Sistemas Microprocesados. Guía sobre Programación en Ensamblador usando Emulador (emu8086)

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Módulo 08 Lenguaje Ensamblador

Estructuras Repetitivas

FUNDAMENTOS DE INFORMÁTICA

SISTEMAS BASADOS EN MICROPROCESADORES

PHP: Lenguaje de programación

Programas de ordenador (software)

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

Sobre cómo dividir un programa ensamblador x86 (modo Real) en módulos compilables por separado.

Ciclos de máquina. Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp

Tema 2. Presentación de datos por pantalla. La ROM-BIOS

P1.- Para facilitar la tarea, suponemos definido en el segmento de datos lo siguiente:

SISTEMAS BASADOS EN MICROPROCESADORES

Estructuras de control

Tema 4. Lenguaje máquina y lenguaje ensamblador

Práctica 4 - Arquitectura CPU

La arquitectura CISCA

LENGUAJE ENSAMBLADOR DEL MICROPROCESADOR

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

Fundamentos de programación

Ingeniería en Sistemas. Sistemas Operativos. Trabajo Práctico: Repaso de Interrupciones, direccionamiento de memoria y registros del procesador.

FORMATO CONDICIONAL EN EXCEL

Fig. 1: Tipos de datos que puede manejar el procesador

Tema 4. Lenguaje máquina y lenguaje ensamblador

Pregunta correcta= 0,3 Pregunta no contestada= 0 Pregunta incorrecta (tipo test)= -0,15

Tema 5: La pila, las macros y los procedimientos

Otros Lenguajes de Programación

GENERALIDADES DEL LENGUAJE C

Parte 4: Estructuras de Control

8.4. El software en los μprocesadores

[etiqueta:] REP MOVSn

Relación de Problemas I

Índice general. Capítulo 1 Conceptos básicos. Capítulo 2 Controles básicos I. Pág. N. 1

MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

Apellidos Nombre DNI

2 de septiembre de 2010 Hoja: 1 / 10. Solamente existe una opción válida en las preguntas de respuesta múltiple.

Tema 8. Saltos. (parte I)

Registros de la CPU. IP Registro de apuntador de siguiente instrucción

Estatutos de Control C# Estatutos de Decisión (Selección)

Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio

Tema 3: ASCII y operaciones de desplazamiento y lógicas

Organización n del Computador. CPU (ISA) Conjunto de Instrucciones de la Arquitectura

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL SAN NICOLÁS INGENIERIA EN ELECTRÓNICA

GUÍA DE COSTO PROMEDIO. SoftRestaurant 2012 SISTEMA DE ADMINISTRACIÓN DE BARES Y RESTAURANTES SOFTRESTAURANT. Versión 8.0. National Soft de México

Estructuras en LabVIEW.

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.

Introducción a las sentencias de control

Nota:Simule el programa paso a paso en su cuaderno para entender la lógica de ejecución. Clase Lenguaje de programación 1 Ing Eddy ruiz Largaespada.

Cómo se hace la Prueba t a mano?

Ecuación de la Recta

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

Parámetro de entrada. Un parámetro pasado del procedimiento que hace la llamada al procedimiento invocado.

Examen de Arquitectura de Computadores 2 22 de febrero del 2011

Guía práctica de estudio 05: Diagramas de flujo

Basic Object Oriented Programming (BOOP) Gramática del Lenguaje. Ever Mitta Flores

Arquitectura de Computadores II 8086 Parte II

Actividad de Evaluación Brandon Emmanuelle Cuevas Rangel GPO: 303 Carrera: Informática 3er Semestre Joel Rocha Barocio Cienega de Flores N.L.

ESTRUCTURAS REPETITIVAS

Programación Estructurada

Diagramas de secuencia

Introducción a la Informática Estructuras de control. Secuencial y selectiva

Guía práctica de estudio 03: Algoritmos

Práctica 4. Lenguaje máquina y lenguaje ensamblador

Organización del Computador I 1er. Parcial 17-Mayo Turno:

Departamento de Ingeniería de Sistemas y Automática. STEP 7. Juego de instrucciones

DIAGRAMAS DE FLUJO ELEMENTOS E INSTRUCCIONES A USAR EN UN DIAGRAMA DE FLUJO

Tema 6: Generación de código (parte 2)

Operadores lógicos y de comparación en programación. Not, and, or Ejemplos. (CU00132A)

Buses y Periféricos. ITIS. Ensamblador y Turbo debugger

Arquitectura de Computadores II Clase #3

Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas

TEMA 3: El proceso de compilación, del código fuente al código máquina

Transcripción:

Comparaciones en lenguaje ensamblador Objetivo: Entender cómo se realizan las comparaciones de datos en lenguaje ensamblador En lenguaje ensamblador no existe la instrucción IF como se trabaja en otros lenguajes para comparar y tomar decisiones, para esto se utiliza cmp en conjunto con los saltos. cmp: esta instrucción se usa para comparar pero solo hace la comparación, no realiza ninguna toma de decisiones para ello tiene que hacer uso de los saltos. Qué es un salto? Es una instrucción de lenguaje ensamblador que envía el control del programa a un conjunto de instrucciones que se identifican por medio de una etiqueta Ejemplo: Si se quiere saber si un número es mayor de 5 Vamos a enviar el numero 10 al registro a la zona baja del registro AX es decir a AL y luego lo vamos a comparar con otro número por ejemplo el 5 mov AL, 10 ; movemos el numero 10 a AL cmp AL, 5; comparamos si el número que está almacenado en AL es mayor a 5 jg mayor; Si AL es mayor que 5 salta a la etiqueta que se llama mayor, es un salto condicional jmp menor; En caso contrario salta a la etiqueta menor. Es decir si AL no es mayor que 5 salta a la etiqueta menor. Jmp es un salto incondicional, lo que significa que no necesita de una comparación previa para saltar. Salta sin que exista una comparación previa o una condición. Por otro lado el salto se hace a una etiqueta que va con dos puntos (:). Y debajo de la etiqueta se coloca el código. Para este ejemplo se han establecido dos etiquetas una etiqueta denominada mayor para ubicar el código que se va a ejecutar cuando la condición sea verdadera y otra etiqueta menor para ubicar el código que se va a ejecutar cuando la condición sea falsa. Las etiquetas son: Nombres que se les asignan a las direcciones de cualquier instrucción o localización de memoria. Una etiqueta toma el lugar de una dirección. Tan pronto como el ensamblador encuentra una etiqueta, esta es remplazada por la dirección correcta. Entonces el código iría quedando así: mov AL, 10 cmp AL, 5 jg mayor jmp menor mayor:

menor: aquí en esta sección va el código que es ejecutara si es mayor a 2 aquí en esta sección va el código que es ejecutara si es menor Entonces, la cmp es quien compara y quien toma la decisión es el salto. Algunos tipos de saltos: JG salta si es mayor JGE salta si es mayor o igual JZ salta si es cero JE Salta si es igual JL Salta si es menor JLE Salta si es menor o igual JNZ Salta si el valor calculado no es cero JS Salta si el valor calculado es negativo JNS Salta si el valor calculado no es negativo Estos son algunos saltos que después de que se hace la comparación (cmp) se colocan para que tomen la decisión de ir a una Etiqueta con base al resultado de una comparación. En caso que se necesite un salto incondicional se usa jmp que salta sin necesidad de evaluar una condición. Instrucciones tipo Salto

Ciclo Loop (bucles). Realiza n iteraciones mientras el registro CX sea mayor que cero. Su procedimiento es el siguiente: mov CX, tamaño; se establece el tamaño del ciclo, es decir el número de iteraciones a realizar etiqueta: ; la etiqueta que denota el inicio del cuerpo del bucle Código ensamblador; código ensamblador, parte del cuerpo del ciclo a iterar loop etiqueta ; Instrucción loop que retorna hacia la etiqueta que marca el inicio del cuerpo del ciclo mientras que CX > 0. En cada iteraccion CX decrementa en 1.