El documento describe los registros y las instrucciones del procesador Pentium. Explica que tiene registros de 32, 16 y 8 bits, e incluye diagramas de cómo están compuestos. También cubre las instrucciones de transferencia de datos, aritméticas, lógicas y de control, así como los saltos condicionales y las directivas para el ensamblador.
El lenguaje ensamblador consiste en abreviaturas llamadas instrucciones mnemotécnicas que representan las operaciones de la computadora. Incluye instrucciones para transferir datos, operaciones aritméticas, leer caracteres e implementar bucles, saltos condicionales, macros y subrutinas. Los procedimientos permiten organizar el código al agrupar instrucciones reutilizables en una única declaración que puede llamarse varias veces.
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...Anderson Urbina Coronado
1: funciones matematicas y cadena de caracteres
2:operacion de asignacion: aritmetrica logica, cadena de caracteres multiples
3:conversiones de tipos
4:comentarios en la linea de codigo fuente
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...Anderson Urbina Coronado
1: funciones matematicas y cadena de caracteres
2:operacion de asignacion: aritmetrica logica, cadena de caracteres multiples
3:conversiones de tipos
4:comentarios en la linea de codigo fuente
El documento proporciona una tabla de códigos de instrucciones para el Intel Assembler 80186 y superiores. La tabla resume las instrucciones de transferencia, aritméticas, lógicas, saltos y misceláneas, incluyendo sus códigos, operaciones y efectos en los flags. También define los registros generales como EAX, EDX, ECX y EBX y explica los flags de control e estado.
Lab.270910.instrucciones basicas del pic 16 f84almendi
El documento proporciona una introducción a las instrucciones básicas del microcontrolador PIC16F84A. Explica que el PIC16F84A tiene un conjunto de 35 instrucciones, menos que otros microprocesadores. Describe algunas de las instrucciones básicas como MOV, ADD, SUB, CLR y también instrucciones lógicas como AND, OR y XOR.
La pila es un área de memoria que almacena temporalmente datos de forma LIFO (último en entrar, primero en salir) usando instrucciones Push y Pop. El documento explica el uso de la pila y proporciona ejemplos de código que intercambian valores usando Push, Pop e implementan suma básica.
Introducción a la programación en c++.
Contenido:
-Tipos de datos
-Entrada y salida por consola
-String
-Preprocesador
-Operadores y sentencias de control
-Punteros
-Arrays
-Cadenas de caracteres
-Memoria dinámica
-Introducción a la POO en c++
-Referencias
Este documento resume los conceptos de apuntadores en C, incluyendo la declaración y uso de apuntadores, operaciones con apuntadores como incrementar, restar y comparar, apuntadores a estructuras y arreglos, y el uso de memoria dinámica mediante la función malloc. También cubre la creación de estructuras de datos dinámicas enlazadas usando apuntadores.
El lenguaje ensamblador consiste en abreviaturas llamadas instrucciones mnemotécnicas que representan las operaciones de la computadora. Incluye instrucciones para transferir datos, operaciones aritméticas, leer caracteres e implementar bucles, saltos condicionales, macros y subrutinas. Los procedimientos permiten organizar el código al agrupar instrucciones reutilizables en una única declaración que puede llamarse varias veces.
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...Anderson Urbina Coronado
1: funciones matematicas y cadena de caracteres
2:operacion de asignacion: aritmetrica logica, cadena de caracteres multiples
3:conversiones de tipos
4:comentarios en la linea de codigo fuente
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...Anderson Urbina Coronado
1: funciones matematicas y cadena de caracteres
2:operacion de asignacion: aritmetrica logica, cadena de caracteres multiples
3:conversiones de tipos
4:comentarios en la linea de codigo fuente
El documento proporciona una tabla de códigos de instrucciones para el Intel Assembler 80186 y superiores. La tabla resume las instrucciones de transferencia, aritméticas, lógicas, saltos y misceláneas, incluyendo sus códigos, operaciones y efectos en los flags. También define los registros generales como EAX, EDX, ECX y EBX y explica los flags de control e estado.
Lab.270910.instrucciones basicas del pic 16 f84almendi
El documento proporciona una introducción a las instrucciones básicas del microcontrolador PIC16F84A. Explica que el PIC16F84A tiene un conjunto de 35 instrucciones, menos que otros microprocesadores. Describe algunas de las instrucciones básicas como MOV, ADD, SUB, CLR y también instrucciones lógicas como AND, OR y XOR.
La pila es un área de memoria que almacena temporalmente datos de forma LIFO (último en entrar, primero en salir) usando instrucciones Push y Pop. El documento explica el uso de la pila y proporciona ejemplos de código que intercambian valores usando Push, Pop e implementan suma básica.
Introducción a la programación en c++.
Contenido:
-Tipos de datos
-Entrada y salida por consola
-String
-Preprocesador
-Operadores y sentencias de control
-Punteros
-Arrays
-Cadenas de caracteres
-Memoria dinámica
-Introducción a la POO en c++
-Referencias
Este documento resume los conceptos de apuntadores en C, incluyendo la declaración y uso de apuntadores, operaciones con apuntadores como incrementar, restar y comparar, apuntadores a estructuras y arreglos, y el uso de memoria dinámica mediante la función malloc. También cubre la creación de estructuras de datos dinámicas enlazadas usando apuntadores.
Fundamentos de programación librería string C++Milton Nicolay
La librería string.h de C proporciona funciones para manipular cadenas de caracteres. Incluye funciones para copiar, concatenar, comparar cadenas y partes de cadenas, calcular la longitud de una cadena, y buscar tokens dentro de una cadena. Algunas funciones populares son strcpy(), strcat(), strcmp(), strlen(), y strtok().
Este documento proporciona información sobre varias funciones de las bibliotecas stdio.h, conio.h y math.h. Brevemente describe la función, características y ejemplos de uso de cada una. En total se enumeran y explican 48 funciones pertenecientes a estas bibliotecas estándar de C.
El documento presenta diferentes temas relacionados con punteros en C, incluyendo cómo declarar y asignar punteros, aritmética de punteros, punteros a arrays, punteros a funciones y punteros a estructuras. También propone ejercicios para practicar el uso de punteros, como leer líneas de texto y contar vocales, o evaluar funciones utilizando un array de punteros a funciones.
Ruby es un lenguaje de programación interpretado, dinámico y orientado a objetos. Sus características incluyen tipado dinámico, herencia, métodos, bloques, iteradores, manejo automático de memoria, y acceso directo al sistema operativo. Ruby también soporta arreglos, hashes, expresiones regulares, lectura/escritura de archivos, y manejo de excepciones.
El documento describe las características principales del lenguaje de programación Ruby. Ruby es un lenguaje interpretado, orientado a objetos y de tipado dinámico. No requiere declaraciones de variables y tiene una sintaxis simple. Todo en Ruby es un objeto y admite características como clases, herencia, métodos, iteradores, bloques, expresiones regulares y manejo de excepciones.
Este documento presenta una introducción a los fundamentos de la programación en C. Explica la estructura básica de un programa en C, incluyendo funciones, la función main y la biblioteca estándar. También cubre conceptos clave como tipos de datos, variables, constantes, operadores aritméticos y lógicos, y expresiones.
Este documento proporciona instrucciones para realizar operaciones básicas, potencias, raíces, operaciones con fracciones, notación científica, logaritmos, exponenciales y funciones trigonométricas directas e inversas en la calculadora Casio fx-350 ES. Explica los pasos para sumar, restar, multiplicar, dividir, calcular potencias, raíces, convertir entre fracciones y decimales, y usar la notación científica. También cubre cómo calcular logaritmos, exponenciales, funciones trigonomé
Este documento proporciona instrucciones sobre el uso de la calculadora Casio fx-350 ES. Explica las operaciones básicas como suma, resta, multiplicación y división, así como funciones más avanzadas como potencias, raíces, fracciones, notación científica, logaritmos, exponenciales y funciones trigonométricas directas e inversas. El documento contiene ejemplos detallados de cómo realizar cada tipo de cálculo utilizando las teclas de la calculadora.
La caja negra es un método que estudia los inputs y outputs de un sistema sin considerar su funcionamiento interno. Se define por sus entradas y salidas a través de una interfaz. El documento proporciona ejemplos de cajas negras para calcular el área de un cuadrado y romboide, preparar un postre, describir causas de un trastorno del sueño, y realizar una operación algebraica. En cada caso se especifican las entradas, el proceso interno desconocido, y las salidas.
Este documento trata sobre registros, archivos y punteros en lenguaje C. Explica que los registros permiten definir nuevos tipos de datos compuestos, los archivos son utilizados para entrada y salida de datos, y los punteros almacenan direcciones de memoria y permiten acceder y modificar valores de variables.
El documento describe diferentes representaciones intermedias utilizadas en la generación de código, incluyendo notación sufija, cuádruplas y tripletes. Explica cómo transformar expresiones de notación infija a sufija y cómo generar automáticamente cuádruplas mediante análisis sintáctico bottom-up o top-down. También cubre la semántica de instrucciones condicionales e etiquetas utilizando cuádruplas.
Este documento describe diferentes tipos de funciones en C++, incluyendo funciones matemáticas como pow(), sqrt(), y abs(); funciones de cadena como strlen(), strcpy(), strcat(), y strcmp(); y muestra ejemplos de cómo usar cada una. Explica que las funciones toman valores de entrada, realizan una tarea específica, y pueden devolver un valor.
Este documento contiene 15 ejercicios sobre programación en Pascal. Los ejercicios cubren temas como condicionales if-then-else, bucles for y while, manejo de cadenas y números, y algoritmos para resolver problemas como encontrar el mayor de tres números, invertir dígitos de un número, y contar caracteres en una cadena. El último ejercicio presenta un modelo de circuito lógico para un sumador binario y pide al usuario que implemente el modelo en un programa Pascal.
El documento describe varias técnicas de optimización de código a nivel de máquina, incluyendo la asignación de registros, el uso de instrucciones especiales, el relleno de pipelines, la predicción de saltos y el uso de memoria caché. También describe optimizaciones locales como la eliminación de expresiones nulas, la reducción de potencias y el reordenamiento de operadores. Explica la factorización de expresiones invariantes para optimizar bucles y la reorganización del orden de instrucciones para ahorrar código.
El documento contiene una lista de términos relacionados con programación como variables, bucles, condiciones, funciones, tipos de datos, operadores, estructuras de control y más. También incluye términos relacionados con E/S de archivos, cadenas, caracteres y funciones matemáticas.
Este documento presenta una introducción al lenguaje de programación C++. Comienza explicando que C++ es un lenguaje mejorado de C que agrega características de programación orientada a objetos. Luego describe conceptos básicos como variables, tipos de datos, estructuras de control de flujo, funciones, arreglos, apuntadores y clases. El documento proporciona ejemplos de código C++ para ilustrar cada uno de estos conceptos.
El documento contiene términos relacionados con programación como asignación, entrada, salida, selección, bucle, contador, arreglo, inicio, fin, entre otros. También incluye definiciones de tipos de datos, operadores aritméticos, relacionales y lógicos, y funciones para leer y escribir en diferentes lenguajes de programación como C, C++ y Java.
Este documento proporciona una guía sobre el uso de MySQL Workbench. Explica que MySQL Workbench permite crear y administrar conexiones a bases de datos MySQL de forma gráfica. Ofrece funcionalidades como desarrollo SQL, modelado de datos y administración de servidores. También describe cómo instalar MySQL Workbench y crear una instancia de servidor para administrar una base de datos de forma local, así como cómo generar un modelo relacional a partir de una base de datos existente.
Explicación del paso de un modelo lógico a un modelo físico de datos. El documento que da soporte a la presentación puede ser solicitado a luiseduardo.pelaez@gmail.com
Este documento contiene 21 ejercicios sobre la creación de procedimientos y funciones en MySQL utilizando las bases de datos Sakila y World. Los ejercicios cubren temas como la creación de procedimientos con parámetros de entrada y salida, funciones, consultas condicionales y manejo de errores.
Fundamentos de programación librería string C++Milton Nicolay
La librería string.h de C proporciona funciones para manipular cadenas de caracteres. Incluye funciones para copiar, concatenar, comparar cadenas y partes de cadenas, calcular la longitud de una cadena, y buscar tokens dentro de una cadena. Algunas funciones populares son strcpy(), strcat(), strcmp(), strlen(), y strtok().
Este documento proporciona información sobre varias funciones de las bibliotecas stdio.h, conio.h y math.h. Brevemente describe la función, características y ejemplos de uso de cada una. En total se enumeran y explican 48 funciones pertenecientes a estas bibliotecas estándar de C.
El documento presenta diferentes temas relacionados con punteros en C, incluyendo cómo declarar y asignar punteros, aritmética de punteros, punteros a arrays, punteros a funciones y punteros a estructuras. También propone ejercicios para practicar el uso de punteros, como leer líneas de texto y contar vocales, o evaluar funciones utilizando un array de punteros a funciones.
Ruby es un lenguaje de programación interpretado, dinámico y orientado a objetos. Sus características incluyen tipado dinámico, herencia, métodos, bloques, iteradores, manejo automático de memoria, y acceso directo al sistema operativo. Ruby también soporta arreglos, hashes, expresiones regulares, lectura/escritura de archivos, y manejo de excepciones.
El documento describe las características principales del lenguaje de programación Ruby. Ruby es un lenguaje interpretado, orientado a objetos y de tipado dinámico. No requiere declaraciones de variables y tiene una sintaxis simple. Todo en Ruby es un objeto y admite características como clases, herencia, métodos, iteradores, bloques, expresiones regulares y manejo de excepciones.
Este documento presenta una introducción a los fundamentos de la programación en C. Explica la estructura básica de un programa en C, incluyendo funciones, la función main y la biblioteca estándar. También cubre conceptos clave como tipos de datos, variables, constantes, operadores aritméticos y lógicos, y expresiones.
Este documento proporciona instrucciones para realizar operaciones básicas, potencias, raíces, operaciones con fracciones, notación científica, logaritmos, exponenciales y funciones trigonométricas directas e inversas en la calculadora Casio fx-350 ES. Explica los pasos para sumar, restar, multiplicar, dividir, calcular potencias, raíces, convertir entre fracciones y decimales, y usar la notación científica. También cubre cómo calcular logaritmos, exponenciales, funciones trigonomé
Este documento proporciona instrucciones sobre el uso de la calculadora Casio fx-350 ES. Explica las operaciones básicas como suma, resta, multiplicación y división, así como funciones más avanzadas como potencias, raíces, fracciones, notación científica, logaritmos, exponenciales y funciones trigonométricas directas e inversas. El documento contiene ejemplos detallados de cómo realizar cada tipo de cálculo utilizando las teclas de la calculadora.
La caja negra es un método que estudia los inputs y outputs de un sistema sin considerar su funcionamiento interno. Se define por sus entradas y salidas a través de una interfaz. El documento proporciona ejemplos de cajas negras para calcular el área de un cuadrado y romboide, preparar un postre, describir causas de un trastorno del sueño, y realizar una operación algebraica. En cada caso se especifican las entradas, el proceso interno desconocido, y las salidas.
Este documento trata sobre registros, archivos y punteros en lenguaje C. Explica que los registros permiten definir nuevos tipos de datos compuestos, los archivos son utilizados para entrada y salida de datos, y los punteros almacenan direcciones de memoria y permiten acceder y modificar valores de variables.
El documento describe diferentes representaciones intermedias utilizadas en la generación de código, incluyendo notación sufija, cuádruplas y tripletes. Explica cómo transformar expresiones de notación infija a sufija y cómo generar automáticamente cuádruplas mediante análisis sintáctico bottom-up o top-down. También cubre la semántica de instrucciones condicionales e etiquetas utilizando cuádruplas.
Este documento describe diferentes tipos de funciones en C++, incluyendo funciones matemáticas como pow(), sqrt(), y abs(); funciones de cadena como strlen(), strcpy(), strcat(), y strcmp(); y muestra ejemplos de cómo usar cada una. Explica que las funciones toman valores de entrada, realizan una tarea específica, y pueden devolver un valor.
Este documento contiene 15 ejercicios sobre programación en Pascal. Los ejercicios cubren temas como condicionales if-then-else, bucles for y while, manejo de cadenas y números, y algoritmos para resolver problemas como encontrar el mayor de tres números, invertir dígitos de un número, y contar caracteres en una cadena. El último ejercicio presenta un modelo de circuito lógico para un sumador binario y pide al usuario que implemente el modelo en un programa Pascal.
El documento describe varias técnicas de optimización de código a nivel de máquina, incluyendo la asignación de registros, el uso de instrucciones especiales, el relleno de pipelines, la predicción de saltos y el uso de memoria caché. También describe optimizaciones locales como la eliminación de expresiones nulas, la reducción de potencias y el reordenamiento de operadores. Explica la factorización de expresiones invariantes para optimizar bucles y la reorganización del orden de instrucciones para ahorrar código.
El documento contiene una lista de términos relacionados con programación como variables, bucles, condiciones, funciones, tipos de datos, operadores, estructuras de control y más. También incluye términos relacionados con E/S de archivos, cadenas, caracteres y funciones matemáticas.
Este documento presenta una introducción al lenguaje de programación C++. Comienza explicando que C++ es un lenguaje mejorado de C que agrega características de programación orientada a objetos. Luego describe conceptos básicos como variables, tipos de datos, estructuras de control de flujo, funciones, arreglos, apuntadores y clases. El documento proporciona ejemplos de código C++ para ilustrar cada uno de estos conceptos.
El documento contiene términos relacionados con programación como asignación, entrada, salida, selección, bucle, contador, arreglo, inicio, fin, entre otros. También incluye definiciones de tipos de datos, operadores aritméticos, relacionales y lógicos, y funciones para leer y escribir en diferentes lenguajes de programación como C, C++ y Java.
Este documento proporciona una guía sobre el uso de MySQL Workbench. Explica que MySQL Workbench permite crear y administrar conexiones a bases de datos MySQL de forma gráfica. Ofrece funcionalidades como desarrollo SQL, modelado de datos y administración de servidores. También describe cómo instalar MySQL Workbench y crear una instancia de servidor para administrar una base de datos de forma local, así como cómo generar un modelo relacional a partir de una base de datos existente.
Explicación del paso de un modelo lógico a un modelo físico de datos. El documento que da soporte a la presentación puede ser solicitado a luiseduardo.pelaez@gmail.com
Este documento contiene 21 ejercicios sobre la creación de procedimientos y funciones en MySQL utilizando las bases de datos Sakila y World. Los ejercicios cubren temas como la creación de procedimientos con parámetros de entrada y salida, funciones, consultas condicionales y manejo de errores.
This document provides an overview and instructions for installing and using the MySQL database system. It describes MySQL's client-server architecture, how to connect to the MySQL server using the command line client, and provides examples of common SQL commands for creating databases and tables, inserting, selecting, updating, and deleting rows of data. It also introduces some basic SQL functions and provides SQL scripts as examples to create tables and insert data.
32 Ways a Digital Marketing Consultant Can Help Grow Your BusinessBarry Feldman
How can a digital marketing consultant help your business? In this resource we'll count the ways. 24 additional marketing resources are bundled for free.
Este documento proporciona una tabla de códigos de instrucciones para ensambladores Intel 80186 y superiores. La tabla describe las instrucciones de transferencia, aritméticas, lógicas, saltos y otros, incluyendo su código de operación, operando y efecto en los flags. Además, explica los flags de estado y control que son afectados por las operaciones.
Este documento proporciona instrucciones sobre las banderas del registro de estado del procesador y describe varias instrucciones de ensamblador como AAA, AAD, AAM, AAS, ADC, ADD, AND, CALL, CBW, CLC, CLD, CLI, CMC, CMP, CMPS, CWD y DAA. Explica cómo afectan estas instrucciones a las banderas del registro de estado y proporciona ejemplos de su uso.
MODOS DE DIRECIONAMIENTO DE LA MEMORIA DE PROGRAMAgbermeo
El documento describe diferentes modos de direccionamiento de la memoria de programa, incluyendo direccionamiento intra-segmento, inter-segmento e instrucciones de salto. También introduce conceptos básicos del lenguaje ensamblador como identificadores, constantes, expresiones y directivas.
Organizacion de la unidad central de procesamientoHarold Torres
El documento describe la organización de la unidad central de procesamiento (CPU). Explica que la CPU ejecuta instrucciones para procesar datos, realizando operaciones aritméticas y lógicas usando su unidad aritmética y lógica (ALU). También describe los registros y modos de direccionamiento que utiliza la CPU para acceder a instrucciones y datos en memoria de forma rápida.
Este documento proporciona información sobre la arquitectura de dos microprocesadores: el Motorola 68000 y el Intel 8086. Describe los registros y sus funciones, los tipos de instrucciones soportadas, el ancho de bus de datos y direcciones, y otros detalles arquitectónicos clave de ambos microprocesadores.
Este documento describe la organización de la unidad central de procesamiento (CPU). Explica que la CPU ejecuta instrucciones, busca datos e instrucciones en memoria, procesa datos y escribe resultados. Describe las subunidades de la CPU como la unidad aritmética y lógica (ALU), la unidad de control y los registros. Finalmente, explica los diferentes tipos de instrucciones de máquina y modos de direccionamiento.
Los registros del procesador se utilizan para controlar instrucciones en ejecución, manejar direccionamiento de memoria y proporcionar capacidad aritmética. Existen seis tipos de registros: registros de segmento, registros de propósito general, registros de apuntadores, registros de banderas, registros de puntero de instrucción y registros de pila. Cada tipo de registro cumple un rol específico en el procesamiento y direccionamiento de instrucciones y datos.
El documento describe los registros internos, modos de direccionamiento e instrucciones del procesador 8086/88. Explica que el 8086/88 tiene registros de 16 bits para datos, segmentos e índices, así como banderas de estado en un registro. Describe los siete modos de direccionamiento para acceder a operandos. Finalmente, resume las principales categorías de instrucciones como transferencia de datos, aritméticas, lógicas y de control de flujo.
La instrucción CMP permite comparar dos operandos y cambiar el estado de las banderas de acuerdo con el resultado. CMPS compara cadenas de caracteres incrementando o decrementando los registros SI y DI. Las banderas como OF, SF, ZF y CF son importantes para la programación en ensamblador ya que indican el resultado de operaciones aritméticas y comparaciones.
El documento describe la arquitectura de conjunto de instrucciones (ISA) de MIPS. Explica que la ISA define las operaciones, tipos de datos, formato de instrucciones y acceso a operandos. Describe las diferentes instrucciones de MIPS como aritméticas, lógicas, carga/almacenamiento y saltos. La ISA de MIPS es de tipo load/store donde solo las instrucciones de carga y almacenamiento acceden directamente a la memoria.
El documento describe la codificación de instrucciones en lenguaje de máquina, con un enfoque en MIPS. MIPS usa tres formatos principales de instrucciones: tipo R para instrucciones con tres registros, tipo I para instrucciones con operandos inmediatos, y tipo J para saltos incondicionales. Cada formato especifica los campos para código de operación, registros y desplazamientos, manteniendo un tamaño fijo de 32 bits para simplificar la decodificación.
El documento describe el lenguaje ensamblador para el procesador 8086/88. Explica que cada instrucción en ensamblador tiene una correspondencia directa con una operación del procesador. Detalla los diferentes registros internos del procesador como los registros de datos, segmentos, índices y estado. También cubre los diferentes modos de direccionamiento para acceder a la memoria como registro, inmediato, directo e indirecto.
El documento describe los registros internos, modos de direccionamiento e instrucciones del procesador 8086/88. Los registros internos incluyen registros de datos, segmento, índice y estado. Los modos de direccionamiento especifican cómo obtener los operandos e incluyen direccionamiento de registro, inmediato, directo, indirecto y otros. Las instrucciones se dividen en grupos como transferencia de datos, aritméticas, lógicas y de control de flujo.
MSX88 simulador assembly programación arquitectura de software.pptmatias387621
Este documento presenta tres formas diferentes de implementar la operación F = [(A+B)/C]-D usando una máquina de 1, 2 o 3 direcciones. Analiza el tamaño en memoria y la cantidad de accesos a memoria requeridos para cada implementación. También proporciona instrucciones sobre cómo usar el simulador MSX88 para probar programas en ensamblador.
Este documento proporciona información sobre lenguaje ensamblador, incluyendo instrucciones aritméticas y lógicas como suma, resta, multiplicación y comparación. Explica las funciones de instrucciones como AAA, ADC, ADD, DAA, INC, DEC, MUL, IMUL y más. También describe cómo manejar desbordamientos en operaciones aritméticas de bytes y palabras. El documento está dirigido a estudiantes de ingeniería en sistemas computacionales.
Este documento describe los tipos de datos y operadores en C. Incluye una descripción de los tipos de datos primitivos como enteros, flotantes y caracteres, así como operadores aritméticos, lógicos y de bits. También cubre estructuras de control de flujo como if/else y switch, así como funciones para entrada/salida, matemáticas y caracteres.
Este documento presenta una introducción al ensamblador 80x86. Explica brevemente la historia y hardware del procesador 80x86 de Intel, incluyendo registros y la pila. Luego describe instrucciones básicas como MOV, PUSH, POP y XCHG para mover datos entre registros y memoria. También menciona el uso de interrupciones para comunicarse con periféricos.
El documento describe el funcionamiento básico de los microprocesadores 8086/8088. Explica que recogen, decodifican y ejecutan instrucciones de la memoria, y transfieren datos entre la memoria y sus registros internos. También describe los componentes clave de un sistema microprocesado, incluyendo la CPU, memoria y circuitos de interfaz de E/S, unidos por un bus.
El documento compara los procesadores Intel 8086 y Motorola 68000. El Intel 8086 era un procesador de 16 bits lanzado en 1978 con 29,000 transistores y 12 modos de direccionamiento. El Motorola 68000 era un procesador de 32 bits lanzado en 1979 con 68,000 transistores y 14 modos de direccionamiento. Ambos procesadores tenían instrucciones para operaciones aritméticas, lógicas y de movimiento de datos.
Este programa diseña una calculadora básica que permite al usuario realizar las cuatro operaciones aritméticas (suma, resta, multiplicación y división) ingresando dos números. El programa muestra un menú de opciones y lee la selección del usuario. Luego pide los números, realiza la operación seleccionada y muestra el resultado. Al final, el programa despide al usuario y termina.
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptxOsiris Urbano
Evaluación de principales hallazgos de la Historia Clínica utiles en la orientación diagnóstica de Hemorragia Digestiva en el abordaje inicial del paciente.
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...JAVIER SOLIS NOYOLA
El Mtro. JAVIER SOLIS NOYOLA crea y desarrolla el “DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARIS”. Esta actividad de aprendizaje propone el reto de descubrir el la secuencia números para abrir un candado, el cual destaca la percepción geométrica y conceptual. La intención de esta actividad de aprendizaje lúdico es, promover los pensamientos lógico (convergente) y creativo (divergente o lateral), mediante modelos mentales de: atención, memoria, imaginación, percepción (Geométrica y conceptual), perspicacia, inferencia y viso-espacialidad. Didácticamente, ésta actividad de aprendizaje es transversal, y que integra áreas del conocimiento: matemático, Lenguaje, artístico y las neurociencias. Acertijo dedicado a los Juegos Olímpicos de París 2024.
Ofrecemos herramientas y metodologías para que las personas con ideas de negocio desarrollen un prototipo que pueda ser probado en un entorno real.
Cada miembro puede crear su perfil de acuerdo a sus intereses, habilidades y así montar sus proyectos de ideas de negocio, para recibir mentorías .
El curso de Texto Integrado de 8vo grado es un programa académico interdisciplinario que combina los contenidos y habilidades de varias asignaturas clave. A través de este enfoque integrado, los estudiantes tendrán la oportunidad de desarrollar una comprensión más holística y conexa de los temas abordados.
En el área de Estudios Sociales, los estudiantes profundizarán en el estudio de la historia, geografía, organización política y social, y economía de América Latina. Analizarán los procesos de descubrimiento, colonización e independencia, las características regionales, los sistemas de gobierno, los movimientos sociales y los modelos de desarrollo económico.
En Lengua y Literatura, se enfatizará el desarrollo de habilidades comunicativas, tanto en la expresión oral como escrita. Los estudiantes trabajarán en la comprensión y producción de diversos tipos de textos, incluyendo narrativos, expositivos y argumentativos. Además, se estudiarán obras literarias representativas de la región latinoamericana.
El componente de Ciencias Naturales abordará temas relacionados con la biología, la física y la química, con un enfoque en la comprensión de los fenómenos naturales y los desafíos ambientales de América Latina. Se explorarán conceptos como la biodiversidad, los recursos naturales, la contaminación y el desarrollo sostenible.
En el área de Matemática, los estudiantes desarrollarán habilidades en áreas como la aritmética, el álgebra, la geometría y la estadística. Estos conocimientos matemáticos se aplicarán a la resolución de problemas y al análisis de datos, en el contexto de las temáticas abordadas en las otras asignaturas.
A lo largo del curso, se fomentará la integración de los contenidos, de manera que los estudiantes puedan establecer conexiones significativas entre los diferentes campos del conocimiento. Además, se promoverá el desarrollo de habilidades transversales, como el pensamiento crítico, la resolución de problemas, la investigación y la colaboración.
Mediante este enfoque de Texto Integrado, los estudiantes de 8vo grado tendrán una experiencia de aprendizaje enriquecedora y relevante, que les permitirá adquirir una visión más amplia y comprensiva de los temas estudiados.
3. Registros del procesador
Registros de 16 bits:
AX (16 bits menos significativos de EAX)
BX (16 bits menos significativos de EBX)
CX (16 bits menos significativos de ECX)
DX (16 bits menos significativos de EDX)
4. Registros del procesador
Registros de 8 bits:
AH (8 bits más significativos de AX)
AL (8 bits menos significativos de AX)
BH (8 bits más significativos de BX)
BL (8 bits menos significativos de BX)
CH (8 bits más significativos de CX)
CL (8 bits menos significativos de CX)
DH (8 bits más significativos de DX)
DL (8 bits menos significativos de DX)
6. Registros de segmentos
CS (de codigo) – indica el segmento donde están
las instrucciones
DS (de datos) – indica el segmento donde están
las variables
SS (de stack) – indica el segmento donde está el
stack
ES (de strings o general) – para segmentos
definidos por usuario
7. Instrucciones de transferencia
de datos (no afectan flags)
MOV dest,src
Copia el contenido del operando fuente (src) en el
destino (dest).
Operación: dest ← src
Las posibilidades son:
MOV reg,{reg|mem|inmed}
MOV mem,{reg|inmed}
MOV {reg16|mem16},{CS|DS|ES|SS}
MOV {DS|ES|SS},{reg16|mem16}
8. Instrucciones de transferencia
de datos (no afectan flags)
PUSH src
Pone el valor en el tope del stack.
Operación: SP ← SP - 2, [SP+1:SP] ← src
donde src = {reg16|mem16|reg32|mem32|CS|DS|ES|SS}.
POP dest
Retira el valor del tope del stack poniéndolo en el lugar
indicado.
Operación: dest ← [SP+1:SP], SP ← SP + 2
donde dest = {reg16|mem16|reg32|mem32|DS|ES|SS}.
9. Instrucciones de transferencia
de datos (no afectan flags)
LAHF
Copia en el registro AH la imagen de los ocho bits
menos significativos del registro de indicadores.
Operación: AH ← SF:ZF:X:AF:X:PF:X:CF
SAHF
Almacena en los ocho bits menos significativos del
registro de indicadores el valor del registro AH.
Operación: SF:ZF:X:AF:X:PF:X:CF ← AH
10. Instrucciones de transferencia
de datos (no afectan flags)
PUSHF
Almacena los flags en la pila.
Operación: SP ← SP - 2, [SP+1:SP] ← Flags
POPF
Pone en los flags el valor que hay en la pila.
Operación: Flags ← [SP+1:SP], SP ← SP + 2
11. Flags
CF - Carry flag.
Se setea si una operación arimética genera carry. Indica overflow
para aritmética de enteros sin signo.
PF - Parity flag.
Se setea si el byte menos significativo del resultado contiene un
número par de bits 1.
ZF - Zero flag.
Se setea si el resultado es cero.
SF - Sign flag.
Se setea igual al bit más significativo del resultado, que es el bit de
signo de un entero con signo (0 indica un valor positivo y 1 indica
un valor negativo).
OF - Overflow flag.
Se setea si un entero es demasiado grande para números positivos
o demasiado pequeño para números negativos (excluyendo el bit
de signo) para entrar en el operando destino. Indica una condición
de overflow para aritmética de enteros con signo.
12. Instrucciones aritméticas
(Afectan los flags AF, CF, OF,
PF, SF, ZF)
ADD dest,src
Operación: dest ← dest + src.
ADC dest,src
Operación: dest ← dest + src + CF.
donde dest = {reg|mem} y src = {reg|mem|inmed} no
pudiendo ambos operandos estar en memoria.
13. Instrucciones aritméticas
(Afectan los flags AF, CF, OF,
PF, SF, ZF)
SUB dest,src
Operación: dest ← dest - src.
SBB dest,src
Operación: dest ← dest - src - CF.
donde dest = {reg|mem} y src = {reg|mem|inmed} no
pudiendo ambos operandos estar en memoria.
14. Instrucciones aritméticas
(Afectan los flags AF, CF, OF,
PF, SF, ZF)
CMP dest,src
Operación: dest - src (sólo afecta flags).
donde dest = {reg|mem} y src = {reg|mem|inmed} no
pudiendo ambos operandos estar en memoria.
15. Instrucciones aritméticas
(Afectan los flags AF, CF, OF,
PF, SF, ZF)
MUL dest, src
donde dest = {reg} y src = {reg|mem}
Operandos de 8 bits - dest debe ser AL
Realiza una multiplicación con operandos no signados de 8 por 8 bits.
El resultado tendrá 16 bits.
Operación: AX ← AL * {reg8|mem8}. CF=OF=0 si AH = 0, CF=OF=1 en
caso contrario. AF, PF, SF, ZF quedan indefinidos.
Operandos de 16 bits - dest debe ser AX
Realiza una multiplicación con operandos no signados de 16 por 16 bits.
El resultado tendrá 32 bits.
Operación: DX:AX ← AX * {reg16|mem16}. CF=OF=0 si DX = 0, CF=OF=1
en caso contrario. AF, PF, SF, ZF quedan indefinidos.
Operandos de 32 bits - dest debe ser EAX
Realiza una multiplicación con operandos no signados de 32 por 32 bits.
El resultado tendrá 64 bits.
Operación: EDX:EAX ← EAX * {reg32|mem32}. CF=OF=0 si EDX = 0,
CF=OF=1 en caso contrario. AF, PF, SF, ZF quedan indefinidos.
16. Instrucciones aritméticas
(Afectan los flags AF, CF, OF,
PF, SF, ZF)
IMUL dest, src
donde dest = {reg} y src = {reg|mem|inmed}
Operandos de 8 bits - dest debe ser AL
Realiza una multiplicación con operandos con signo de 8 por 8 bits.
El resultado tendrá 16 bits.
Operación: AX ← AL * {reg8|mem8|inmed} realizando la multiplicación con
signo. CF = OF = 0 si el resultado entra en un byte, en caso contrario
valdrán 1. AF, PF, SF, ZF quedan indefinidos.
Operandos de 16 bits - dest debe ser AX
Realiza una multiplicación con operandos con signo de 16 por 16 bits.
El resultado tendrá 32 bits.
Operación: DX:AX ← AX * {reg16|mem16|inmed} realizando la
multiplicación con signo. CF = OF = 0 si el resultado entra en dos bytes,
en caso contrario valdrán 1. AF, PF, SF, ZF quedan indefinidos.
Operandos de 32 bits - dest debe ser EAX
Realiza una multiplicación con operandos con signo de 32 por 32 bits.
El resultado tendrá 64 bits.
Operación: EDX:EAX ← EAX * {reg32|mem32|inmed} realizando la
multiplicación con signo. CF = OF = 0 si el resultado entra en cuatro bytes,
en caso contrario valdrán 1. AF, PF, SF, ZF quedan indefinidos
17. Instrucciones aritméticas
DIV oper
donde oper = {reg|mem}
Operando de 8 bits no signado
El dividendo debe estar en AX. El resultado tendrá 8 bits.
Cociente en AL. Resto en AH.
Operando de 16 bits no signado
El dividendo debe estar en DX:AX. El resultado tendrá 16 bits
Cociente en AX. Resto en DX.
Operando de 32 bits no signado
El dividendo debe estar en EDX:EAX. El resultado tendrá 32
bits.
Cociente en EAX. Resto en EDX.
18. Instrucciones aritméticas
IDIV oper
donde oper = {reg|mem}
Operando de 8 bits con signo
El dividendo debe estar en AX. El resultado tendrá 8 bits.
Cociente en AL. Resto en AH.
Operando de 16 bits con signo
El dividendo debe estar en DX:AX. El resultado tendrá 16
bits.
Cociente en AX. Resto en DX.
Operando de 32 bits con signo
El dividendo debe estar en EDX:EAX. El resultado tendrá
32 bits.
Cociente en EAX. Resto en EDX.
19. Instrucciones aritméticas
CBW
Extiende el signo de AL en AX. No se afectan los flags.
CWD
Extiende el signo de AX en DX:AX. No se afectan flags.
CWDE
Extiende el signo de AX en EAX. No se afectan flags.
CDQ
Extiende el signo de EAX en EDX:EAX. No se afectan
flags.
20. Instrucciones lógicas
(Afectan los flags AF, CF, OF, PF, SF,
ZF)
AND dest,src
Operación: dest ← dest and src.
TEST dest,src
Operación: dest and src. Sólo afecta flags.
OR dest,src
Operación: dest ← dest or src.
XOR dest,src
Operación: dest ← dest xor src.
Las cuatro instrucciones anteriores ponen CF = OF = 0, AF
queda indefinido y PF, SF y ZF dependen del resultado.
22. Saltos condicionales aritméticos
(usar después de CMP)
Aritmética signada (con números positivos, negativos y cero)
JL etiqueta /JNGE etiqueta
Saltar a etiqueta si es menor.
JLE etiqueta /JNG etiqueta
Saltar a etiqueta si es menor o igual.
23. Saltos condicionales
aritméticos (usar después de CMP)
Aritmética signada (con números positivos, negativos y cero)
JE etiqueta
Saltar a etiqueta si es igual.
JNE etiqueta
Saltar a etiqueta si es distinto.
24. Saltos condicionales
aritméticos (usar después de
CMP)
Aritmética signada (con números positivos, negativos y cero)
JGE etiqueta /JNL etiqueta
Saltar a etiqueta si es mayor o igual.
JG etiqueta /JNLE etiqueta
Saltar a etiqueta si es mayor.
25. Saltos condicionales
aritméticos (usar después de
CMP)
Aritmética sin signo (con números positivos y cero)
JB etiqueta /JNAE etiqueta
Saltar a etiqueta si es menor.
JBE etiqueta /JNA etiqueta
Saltar a etiqueta si es menor o igual.
26. Saltos condicionales
aritméticos (usar después de
CMP)
Aritmética sin signo (con números positivos y cero)
JE etiqueta
Saltar a etiqueta si es igual.
JNE etiqueta
Saltar a etiqueta si es distinto.
27. Saltos condicionales
aritméticos (usar después de
CMP)
Aritmética sin signo (con números positivos y cero)
JAE etiqueta/JNB etiqueta
Saltar a etiqueta si es mayor o igual.
JA etiqueta/JNBE etiqueta
Saltar a etiqueta si es mayor.
28. Saltos condicionales
según el valor de los
indicadores:
JC label
Saltar si hubo arrastre/préstamo (CF = 1).
JNC label
Saltar si no hubo arrastre/préstamo (CF = 0).
29. Saltos condicionales
según el valor de los
indicadores:
JZ label
Saltar si el resultado es cero (ZF = 1).
JNZ label
Saltar si el resultado no es cero (ZF = 0).
30. Saltos condicionales
según el valor de los
indicadores:
JS label
Saltar si el signo es negativo (SF = 1).
JNS label
Saltar si el signo es positivo (SF = 0).
31. Saltos condicionales
según el valor de los
indicadores:
Aritmética signada (con números positivos, negativos y cero)
JO label
Saltar si hubo desbordamiento (OF = 1).
JNO label
Saltar si no hubo desbordamiento (OF = 0).
32. Directivas (Instrucciones
para el ensamblador)
Definición de datos
Ubica memoria para un ítem de datos y opcionalmente asocia
un nombre simbólico con esa dirección de memoria y/o genera
el valor inicial para ese ítem.
[nombre] DB valor_inicial [, valor_inicial...]
donde valor_inicial puede ser una cadena o una expresión
numérica cuyo resultado esté entre -255 y 255.
Define datos de 8 bits (1 byte)
33. Directivas (Instrucciones
para el ensamblador)
Definición de datos
[nombre] DW valor_inicial [, valor_inicial...]
Define datos de 16 bits (2 bytes)
[nombre] DD valor_inicial [, valor_inicial...]
Define datos de 32 bits (4 bytes)
34. Directivas (Instrucciones
para el ensamblador)
Definición de datos
[nombre] DQ valor_inicial [, valor_inicial...]
define datos de 64 bits (8 bytes)
[nombre] DT valor_inicial [, valor_inicial...]
define datos de 80 bits (10 bytes)
[nombre] DS nro_de_bytes
define datos de nro. de bytes
35. Directivas (Instrucciones
para el ensamblador)
Definición de datos
Si se desea que no haya valor inicial, deberá
utilizarse el símbolo ?.
Otra forma de expresar el valor inicial es:
cuenta DUP (valor_inicial [, valor_inicial...])
donde cuenta es la cantidad de veces que debe repetirse lo
que está entre paréntesis.
36. Control del ensamblador
END [etiqueta]: Debe ser la última sentencia del
código fuente. La etiqueta indica dónde debe
comenzar la ejecución del programa.
Si el programa se compone de varios módulos,
sólo el módulo que contiene la dirección de
arranque del programa debe contener la directiva
END etiqueta.
Los demás módulos deberán terminar con la
directiva END (sin etiqueta).
37. Estructura de un programa
.MODEL small ; Indica el tamaño de programa
.STACK 200h ; Inicializa Stack en dir. indicada
.DATA ; Indica zona de datos
; Aquí se definen variables y datos
.CODE ; Indica inicio zona de código
; Aquí viene el código
START: ; Label que indica inicio del “main”
mov ax,@data ; Mueve a ds la dirección del segmento de datos
mov ds,ax ; utilizando el reg. ax como intermediario
…
mov ah,4ch ; DOS: termina el programa
mov al,0 ; el código de retorno será 0
int 21h ; termina el programa
END START
38. Emisión de Mensajes
.MODEL small
.DATA
Mensaje DB ‘Esto es un mensaje$‘
.CODE
START:
…
mov dx,OFFSET Mensaje
mov ah,9
int 21h
…
mov ah,4ch ; DOS: termina el programa
mov al,0 ; el código de retorno será 0
int 21h ; termina el programa
END START
40. Introducción
El coprocesador aritmético 80X87 aumenta
el juego de instrucciones del 80X86
mejorando su capacidad de tratamiento de
números.
Se utiliza como procesador paralelo junto
al 80X86 añadiendo 8 registros de punto
flotante de 80 bits así como instrucciones
adicionales.
41. Registros
Los ocho registros se organizan como una pila.
Los nombres de los registros son ST(0), ST(1),
ST(2), ..., ST(7). El nombre simbólico ST (Stack
Top) es equivalente a ST(0).
Al poner un número en la pila, ST(0) contendrá el
número recién ingresado, ST(1) será el valor
anterior de ST(0), ST(2) será el valor anterior de
ST(1), y así sucesivamente, con lo que se
perderá el valor anterior de ST(7).
43. Instrucciones de transferencia
de datos
FLD mem
Introduce una copia de mem en ST. La fuente debe ser un
número real en punto flotante de 4, 8 ó 10 bytes. Este
operando se transforma automáticamente al formato real
temporal.
FLD ST(num)
Introduce una copia de ST(num) en ST.
FILD mem
Introduce una copia de mem en ST. La fuente debe ser un
operando de memoria de 2, 4 u 8 bytes, que se interpreta
como un número entero y se convierte al formato real
temporal.
44. Instrucciones de transferencia
de datos
FST mem
Copia ST a mem sin afectar el puntero de pila. El
destino puede ser un operando real de 4, 8 o 10
bytes.
FST ST(num)
Copia ST al registro especificado.
FIST mem
Copia ST a mem. El destino debe ser un operando
de 2, 4 u 8 bytes y se convierte automáticamente
el número en formato temporal real a entero.
45. Instrucciones de transferencia
de datos
FSTP mem
Extrae una copia de ST en mem. El destino puede ser un
operando de memoria de 4, 8 ó 10 bytes, donde se carga el
número en punto flotante.
FSTP ST(num)
Extrae ST hacia el registro especificado.
FISTP mem
Extrae una copia de ST en mem. El destino debe ser un
operando de memoria de 2, 4 u 8 bytes y se convierte
automáticamente el número en formato temporal real a
entero.
47. Instrucciones de carga de
constantes
FLDZ
Introduce el número cero en ST.
FLD1
Introduce el número uno en ST.
FLDPI
Introduce el valor de pi en ST.
48. Instrucciones aritméticas
FADD
Hace ST(1) más ST, ajusta el puntero de pila y pone el
resultado en ST, por lo que ambos operandos se destruyen.
FADD mem
Hace ST ← ST + [mem]. En mem deberá haber un número
real en punto flotante.
FIADD mem
Hace ST ← ST + [mem]. En mem deberá haber un número
entero en complemento a dos.
49. Instrucciones aritméticas
FADD ST(num), ST
Realiza ST(num) ← ST(num) + ST.
FADD ST, ST(num)
Realiza ST ← ST + ST(num).
FADDP ST(num), ST
Realiza ST(num) ← ST(num) + ST y retira el valor de ST de
la pila, con lo que ambos operandos se destruyen.
50. Instrucciones aritméticas
FSUB
Hace ST(1) menos ST, ajusta el puntero de pila y pone el
resultado en ST, por lo que ambos operandos se destruyen.
FSUB mem
Hace ST ← ST - [mem]. En mem deberá haber un número
real en punto flotante.
FISUB mem
Hace ST ← ST - [mem]. En mem deberá haber un número
entero en complemento a dos.
51. Instrucciones aritméticas
FSUB ST(num), ST
Realiza ST(num) ← ST(num) - ST.
FSUB ST, ST(num)
Realiza ST ← ST - ST(num).
FSUBP ST(num), ST
Realiza ST(num) ← ST(num) - ST y retira el valor de ST de
la pila, con lo que ambos operandos se destruyen.
52. Instrucciones aritméticas
FSUBR
Hace ST menos ST(1), ajusta el puntero de pila y pone el
resultado en ST, por lo que ambos operandos se destruyen.
FSUBR mem
Hace ST ← [mem] - ST. En mem deberá haber un número
real en punto flotante.
FISUBR mem
Hace ST ← [mem] - ST. En mem deberá haber un número
entero en complemento a dos.
53. Instrucciones aritméticas
FSUBR ST(num), ST
Realiza ST(num) ← ST - ST(num).
FSUBR ST, ST(num)
Realiza ST ← ST(num) - ST.
FSUBRP ST(num), ST
Realiza ST(num) ← ST - ST(num) y retira el valor de ST de
la pila, con lo que ambos operandos se destruyen.
54. Instrucciones aritméticas
FMUL
Multiplicar el valor de ST(1) por ST, ajusta el puntero de pila
y pone el resultado en ST, por lo que ambos operandos se
destruyen.
FMUL mem
Hace ST ← ST * [mem]. En mem deberá haber un número
real en punto flotante.
FIMUL mem
Hace ST ← ST * [mem]. En mem deberá haber un número
entero en complemento a dos.
55. Instrucciones aritméticas
FMUL ST(num), ST
Realiza ST(num) ← ST(num) * ST.
FMUL ST, ST(num)
Realiza ST ← ST * ST(num).
FMULP ST(num), ST
Realiza ST(num) ← ST(num) * ST y retira el valor
de ST de la pila, con lo que ambos operandos se
destruyen.
56. Instrucciones aritméticas
FDIV
Dividir el valor de ST(1) por ST, ajusta el puntero de pila y
pone el resultado en ST, por lo que ambos operandos se
destruyen.
FDIV mem
Hace ST ← ST / [mem]. En mem deberá haber un número
real en punto flotante.
FIDIV mem
Hace ST ← ST / [mem]. En mem deberá haber un número
entero en complemento a dos.
57. Instrucciones aritméticas
FDIV ST(num), ST
Realiza ST(num) ← ST(num) / ST.
FDIV ST, ST(num)
Realiza ST ← ST / ST(num).
FDIVP ST(num), ST
Realiza ST(num) ← ST(num) / ST y retira el valor de ST de
la pila, con lo que ambos operandos se destruyen.
58. Instrucciones aritméticas
FDIVR
Hace ST dividido ST(1), ajusta el puntero de pila y pone el
resultado en ST, por lo que ambos operandos se destruyen.
FDIVR mem
Hace ST ← [mem] / ST. En mem deberá haber un número
real en punto flotante.
FIDIVR mem
Hace ST ← [mem] / ST. En mem deberá haber un número
entero en complemento a dos.
59. Instrucciones aritméticas
FDIVR ST(num), ST
Realiza ST(num) ← ST / ST(num).
FDIVR ST, ST(num)
Realiza ST ← ST(num) / ST.
FDIVRP ST(num), ST
Realiza ST(num) ← ST / ST(num) y retira el valor de ST de
la pila, con lo que ambos operandos se destruyen.
60. Instrucciones aritméticas
FABS
Pone el signo de ST a positivo (valor absoluto).
FCHS
Cambia el signo de ST.
61. Control del flujo del programa
FCOM
Compara ST y ST(1).
FCOM ST(num)
Compara ST y ST(num).
FCOM mem
Compara ST y mem. El operando de memoria deberá ser un
número real.
FICOM mem
Compara ST y mem. El operando deberá ser un número
entero.
62. Control del flujo del programa
FTST
Compara ST y cero.
FCOMP
Compara ST y ST(1) y extrae ST fuera de la pila.
FCOMP ST(num)
Compara ST y ST(num) y extrae ST fuera de la pila.
FCOMP mem
Compara ST y mem y extrae ST fuera de la pila. El
operando de memoria deberá ser un número real.
63. Control del flujo del programa
FICOMP mem
Compara ST y mem y extrae ST fuera de la pila. El
operando deberá ser un número entero.
FCOMPP
Compara ST y ST(1) y extrae dos elementos de la pila,
perdiéndose ambos operandos.
64. Instrucciones de transferencia
de datos de control
FLDCW mem2byte
Carga la palabra de control desde la memoria.
FSTCW mem2byte
Almacena la palabra de control en la memoria.
FSTSW mem2byte
Almacena la palabra de estado en la memoria.
65. Control del Procesador
F[N]INIT
Inicializa el coprocesador y restaura todas las condiciones
iniciales en las palabras de control y de estado. Es una
buena idea utilizar esta instrucción al principio y al final del
programa.
F[N]CLEX
Pone a cero los indicadores de excepción y el indicador de
ocupado de la palabra de estado. También limpia el
indicador de pedido de interrupción del 8087.
66. Control del Procesador
FREE ST(num)
Marca el registro especificado como vacío.
FNOP
Copia ST a sí mismo tomando tiempo de procesamiento sin
tener ningún efecto en registros o memoria.
71. Sin signo – Sobre registros
(con control de overflow)
Conversión Dato Instrucciones Resultado
16 a 8 bits AX CMP AH, 0 BL
JNZ ERROR
MOV BL, AL
ERROR:
…
72. Sin signo – Sobre registros
(con control de overflow)
Conversión Dato Instrucciones Resultado
32 a 16 bits EAX MOV EBX, 0 CX
MOV BX, AX
CMP EAX, EBX
JNE ERROR
MOV CX, AX
ERROR:
…
73. Sin signo – Sobre memoria
(con control de overflow)
Conversión Dato Instrucciones Resultado
16 a 8 bits D2 MOV AL, D2 + 1 D1
CMP AL, 0
JNE ERROR
MOV AL, D2
MOV D1, AL
ERROR:
…
74. Sin signo – Sobre memoria
(con control de overflow)
Conversión Dato Instrucciones Resultado
32 a 16 bits D4 MOV AX, D4 + 2 D2
CMP AX, 0
JNE ERROR
MOV AX, D4
MOV D2, AX
ERROR:
…
75. Con signo
(datos enteros)
Conversión Dato Instrucciones Resultado
8 a 16 bits CL MOV AL, CL AX
CBW
16 a 32 bits BX MOV AX, BX DX:AX
CWD
16 a 32 bits DX MOV AX, DX EAX
CWDE
32 a 64 bits EBX MOV EAX, EBX EDX:EAX
CDQ
76. Con signo
(datos enteros)
Conversión Dato Instrucciones Resultado
32 a 64 bits ECX MOV EAX, ECX EDX : EAX
Para CMP EAX, 0
multiplicaciones JL NEGATIVO
y divisiones MOV EDX, 0
JMP SIGO
NEGATIVO:
MOV EDX, -1
SIGO:
…
77. Con signo
(datos enteros con control de overflow)
Conversión Dato Instrucciones Resultado
16 a 8 bits AX CMP AX, 0 NEGATIVO: AL
JL CMP AH, -1
NEGATIVO JNE
CMP AH, 0 ERROR
JNE ERROR CMP AL, 0
CMP AL, 0 JG ERROR
JL ERROR ERROR:
JMP SIGO …
SIGO:
…
78. Datos flotantes
(Registro a Memoria)
Conversión Dato Instrucciones Resultado
80 a 32 bits FST D4 o
ST(0) D4 (32 bits)
64 a 32 bits FSTP D4
80 a 64 bits FST D8 o
ST(0) D8 (64 bits)
32 a 64 bits FSTP D8
64 a 80 bits FST D10 o
ST(0) D10 (80 bits)
32 a 80 bits FSTP D10
79. Datos flotantes
(Memoria a Memoria)
Conversión Dato Instrucciones Resultado
FLD D4
32 a 64 bits D4 D8 (64 bits)
FST D8
FLD D8
64 a 32 bits D8 D4 (32 bits)
FST D4
FLD D4
32 a 80 bits D4 D10 (80 bits)
FSTP D10
…
80. Conversiones entre datos
enteros y flotantes
Conversión Dato Instrucciones Resultado
D2 ST(0)
Entero a float FILD D2
(entero de 16 bits) (flotante)
D4 ST(0)
Entero a float FILD D4
(entero de 32 bits) (flotante)
D8 ST(0)
Entero a float FILD D8
(entero de 64 bits) (flotante)
81. Conversiones entre datos
enteros y flotantes
Conversión Dato Instrucciones Resultado
Float a ST(0) FIST D2 o D2
entero (flotante) FISTP D2 (entero de 16 bits)
Float a ST(0) FIST D4 o D4
entero (flotante) FISTP D4 (entero de 32 bits)
Float a ST(0) FIST D8 o D8
entero (flotante) FISTP D8 (entero de 64 bits)
82. Conversiones entre datos con y
sin signo
Origen: con signo – Destino: sin signo
Origen positivo, se puede
Origen negativo, es error
Origen: sin signo – Destino: con signo
Se debe testear overflow
Primer bit = 0, se puede
Primer bit = 1, es overflow