practicas lenguaje ensamblador

21
Practica 1 En esta práctica veremos cómo mostrar mensajes por pantalla creando letreros y llamándolos independientemente. A continuación veremos el código del programa. Aquí vemos el resultado del anterior código

Upload: jorge-pulido

Post on 08-Jan-2017

267 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Practicas Lenguaje ensamblador

Practica 1

En esta práctica veremos cómo mostrar mensajes por pantalla creando letreros y llamándolos independientemente.

A continuación veremos el código del programa.

Aquí vemos el resultado del anterior código

Page 2: Practicas Lenguaje ensamblador

La función de cada código la vemos comentada en esta imagen:

En esta parte vemos los registros que se pueden llegar a usar para la realización de programas;

Registros de uso general

AX: Acumulador (AL:AH) BX: Registro base (BL:BH) CX: Registro contador (CL:CH) DX: Registro de datos (DL:DH)

Registros de segmento (Solo se pueden usar para los usos mencionados a excepción de ES)

DS: Registro del segmento de datos ES: Registro del segmento extra SS: Registro del segmento de pila CS: Registro del segmento de código

Registros punteros (También pueden tener uso general)

BP: Registro de apuntadores base SI: Registro índice fuente DI: Registro índice destino

Registros especiales (Solo se pueden usar para los usos mencionados)

SP: Registro apuntador de la pila IP: Registro apuntador de la siguiente instrucción F: Registro de banderas (8 bits)

Page 3: Practicas Lenguaje ensamblador

Practica 2

En esta práctica veremos cómo cambiar el color y fondo de una palabra recorriendo carácter por carácter.

El programa en ejecución se ve de la siguiente forma:

Y al terminar

A continuación se verá el código usado y su respectivo uso comentado al frente de cada instrucción.

Page 4: Practicas Lenguaje ensamblador
Page 5: Practicas Lenguaje ensamblador
Page 6: Practicas Lenguaje ensamblador

Practica 3

Para realizar esta práctica debemos tener clara la siguiente información ya que vamos a trabajar sobre banderas.

Registro de banderas (Flags)

Cada bandera es un bit y se usa para registrar la información de estado y de control de las

operaciones del microprocesador. Hay nueve banderas (los 7 bits restantes no se utilizan):

Banderas de estado: Registran el estado del procesador, normalmente asociado a una

comparación o a una instrucción aritmética.

CF: Bandera de acareo.

OF: Bandera de desbordamiento (aritmético).

ZF: Bandera de resultado 0 o comparación igual.

SF: Bandera de resultado o comparación negativa.

PF: Bandera de paridad (número par de bits).

AF: Bandera auxiliar. Indica si hay necesidad de ajuste en las operaciones aritméticas con

números BCD.

Banderas de control: DF: Bandera de dirección. Controla la dirección de las operaciones con cadenas de caracteres

Incrementando o decrementando automáticamente los registros índices (SI y DI)

IF: Bandera de interrupciones. Indica si están permitidas o no las interrupciones de los

dispositivos externos.

TF: Bandera de atrape. Controla la operación de modo paso a paso (usada por el programa

DEBUG).

El programa consiste en solicitar la digitación de un número, el cual se va a comparar si es

menos, igual o mayor a 5, dependiendo de esto mostrara un mensaje, para salir el usuario tendrá

que oprimir un letra para que no cumpla ninguna condición.

Page 7: Practicas Lenguaje ensamblador

El programa en ejecución se ve de la siguiente forma:

Page 8: Practicas Lenguaje ensamblador

Los Flags que se observan a la derecha de la ventana de consola quedan de esa forma por las

siguientes razones:

CF La bandera de acarreo se activa cuando se produce acarreo en una suma o multiplicación, o un "préstamo" en una resta entre números sin signo.

PF La bandera de paridad se usa para indicar si el resultado, en un registro, de una operación matemática es válido.

AF La bandera de acarreo auxiliar se utiliza en operaciones matemáticas con números decimales codificados en binario (BCD). Se activa si hay acarreo presente.

ZF La bandera de cero se activa si el resultado de una operación aritmético lógica es cero.

SF La bandera de signo muestra el bit más significativo del resultado de una operación, el cual denota el signo del número.

DF La bandera de dirección controla la selección de autoincremento (D=0) o auto decremento (D=1) de los registros %edi o %esi durante las operaciones con cadenas de caracteres. La bandera de dirección sólo se utiliza con las instrucciones para el manejo de cadenas de caracteres.

OF La bandera de desbordamiento se utiliza en la aritmética de enteros con signo cuando un número sobrepasa la capacidad de representación del registro

El código usado es el siguiente, el cual tiene sus respectivos comentarios con la operación que

realiza en cada instrucción:

Page 9: Practicas Lenguaje ensamblador
Page 10: Practicas Lenguaje ensamblador

Practica 4

En esta práctica vamos a colocar nuestros nombres y después llenar la pantalla con una letra que

va ir cambiando de color y fondo a medida que avanza.

El programa a ejecutarse se ve en las siguientes imágenes:

Para empezar el programa pedirá presionar una tecla y después mostrar el nombre de nosotros.

Después nos pedirá que volvamos a oprimir una tecla para que empiece a llenar la pantalla con

las letras de carácter.

Page 11: Practicas Lenguaje ensamblador

El código usado es el siguiente:

Page 12: Practicas Lenguaje ensamblador
Page 13: Practicas Lenguaje ensamblador
Page 14: Practicas Lenguaje ensamblador

Practica 5

En esta práctica vamos a sumar dos números, para esto abrir el ejemplo SUM:

Page 15: Practicas Lenguaje ensamblador

Practica 6

Page 16: Practicas Lenguaje ensamblador

En esta práctica vamos a abrir el ejemplo de Calculador y vamos a realizar pruebas_

SUMA

RESTA

Page 17: Practicas Lenguaje ensamblador

MULTIPLICACION

Page 18: Practicas Lenguaje ensamblador

DIVICION