Entradas

Mostrando las entradas de febrero, 2019

1.8 Desplegado de mensajes de monitor

Imagen
Usando el servicio 02 de 21h: El servicio 02 de la interrupción 21h nos permitirá mostrar en pantalla el despliegue de un carácter en pantalla, generalmente un carácter guardado en alguna de las localidades de dx:   Usando el servicio 09 de 21h: El servicio  09 de esta interrupción nos pemitira imprimir cadenas de caracteres. Esto se puede hacer de 2 maneras, utilizando offset o con el nmonico lea. Offset:  En ingeniería informática y programación de bajo nivel (como el lenguaje ensamblador), un offset normalmente indica el número de posiciones de memoria sumadas a una dirección base para conseguir una dirección absoluta específica. Con este significado (que es el original) de offset, sólo se usa la unidad básica de direccionamiento, normalmente el byte de 8 bits, para especificar el tamaño del offset. En este contexto se puede llamar a veces dirección relativa. En pocas palabras offset va a conseguir cada dirección de memoria de cada carácter y ...

1.7 Compiladores, proceso de ensamblado y ligado

El dia de hoy hablaremos de los procesos que conlleva la creación de un programa en cualquier lenguaje. Empecemos hablando de los tipos de archivos que comúnmente se generan o crean para crear un programa, es asi que primero tenemos a: Código Fuente: El código fuente es aquel que contiene las lineas de código escritas en el lenguaje de programación sobre el cual estamos trabajando.  Sin embargo este código no es entendible por el ordenador dado su origen de solo reconocer instrucciones en lenguaje maquina (0 y 1) por lo tanto todo nuestro código solo es una maraña de símbolos raros para el ordenador, para poder ser reconocible todo lo escrito, el lenguaje de programación se vale de un programa llamado interprete o compilador (ya es cuestión del lenguaje), el cual traduce o interpreta vaya la redundancia todo nuestro código a lenguaje maquina, de esta manera se obtiene un archivo el cual es llamado: Código Objeto: archivo compuesto por un conjunto de datos esc...

1.4 Interrupciones

CONCEPTO DE INTERRUPCIONES Una interrupción es una situación especial que suspende la ejecución de un programa de modo que el sistema pueda realizar una acción para tratarla. Tal situación se da, por ejemplo, cuando un periférico requiere la atención del procesador para realizar una operación de E/S. Las interrupciones constituyen quizá el mecanismo más importante para la conexión del microcontrolador con el mundo exterior, sincronizando la ejecución de programas con acontecimientos externos. PASOS PARA EL PROCESAMIENTO 1. Terminar la ejecución de la instrucción máquina en curso. 2. Salva el valor de contador de programa, IP, en la pila, de manera que en la CPU, al terminar el proceso, pueda seguir ejecutando el programa a partir de la última instrucción. 3. La CPU salta a la dirección donde está almacenada la rutina de servicio de interrupción (ISR, Interrupt Service Routine) y ejecuta esa rutina que tiene como objetivo atender al dispositivo que generó la ...

1.2 El procesador y sus registros internos

Definición de registros: un registro es una memoria de alta velocidad y poca capacidad, integrada en el microprocesador, que permite guardar transitoriamente y acceder a valores muy usados, generalmente en operaciones matemáticas. Función de los registros: • Los registros están en la cumbre de la jerarquía de memoria, y son la manera más rápida que tiene el sistema de almacenar datos. Los registros se miden generalmente por el número de bits que almacenan; por ejemplo, un "registro de 8 bits" o un "registro de 32 bits“. • La CPU contiene un conjunto de localidades de almacenamiento temporal de datos de alta velocidad llamada registro. Algunos de los registros están dedicados al control, y solo la unidad de control tiene acceso a ellos. Los registros restantes son los registros de uso general y el programador es el usuario que tiene acceso a ellos. El procesador 8086 esta dividido en los siguientes registros: La UCP o CPU tiene 14 registros internos, c...

Macros y procedimientos de EMU8086.INC

Ya hemos visto que EMU8086 trabaja con interrupciones del procesador de esa arquitectura pero es posible trabajar con librerías que incluyen macros y procedimientos para hacer mas fácil la programación en el lenguaje ensamblador. En esta ocasión les presentare los diferentes macros y procedimientos con su respectiva descripción de la librería EMU8086. Macros PUTC char - Macro con un parámetro. Imprime un carácter ASCII en la posición actual del cursor. GOTOXY col, fila - Macro con dos parámetros. Establece la posición del cursos. PRINT string - Macro con 1 parámetro. Imprime una cadena. PRINTN string - Macro con un parámetro. Imprime una cadena. Lo mismo que PRINT pero agrega automáticamente "retorno de carro' al final de la cadena. CURSOROFF - Apaga el cursor de texto. CURSORON - Enciende el cursor de texto. Para usar cualquiera de las macros anteriores, simplemente se escribe el nombre y los parámetros donde sea conveniente. Procedimientos PRINT_STR...

Tarea: Programas que incluyen la libreria EMU8086.INC

Imagen
En esta ocasion les mostrare 3 programas que usan la libreria EMU8086.INC la cual utiliza macros para hacer mas sencilla y agil la programacion en lenguaje ensamblador. Estos ejemplos los obtuve de JBWYATT y aqui les dejo el enlace para que visiten su pagina. Pagina de JBWYATT HolaMundo Código: INCLUDE EMU8086.INC ORG 100H PRINT 'HOLA MUNDO!' GOTOXY 10,5 PUTC 65 ;65 ES EL CODIGO ASCII PARA LA 'A' PUTC 'B' RET ;RETORNO AL SISTEMA OPERATIVO END ;ORDEN PARA DETENER EL COMPILADOR Ejecución:   Saludo Código: ; demonstrate get_string and print_string ;---------------------------------------- include 'emu8086.inc' ORG 100h LEA SI, msg1 ; coloca el puntero (SI) a msg ; para pedir el numero CALL print_string ; imprime el mensaje que SI indica LEA DI, buffer ; coloca el puntero (DI) al buffer de entrada MOV DX, bufSize ; ajusta el tamano del buffer CALL get_string ; ob...

Práctica #11

Imagen
Programa 11. Calificación Programa que obtiene un promedio y determina si la calificación es aprobatoria o no. Código:   Ejecución: