Registros Arquitectura x86. M. en C. Erika Vilches

Documentos relacionados
6-REGISTROS DEL 8086 Y DEL 80286

Arquitectura (Procesador familia 80 x 86 )

Objetivo. Introducción. Tema: GENERACION DE CODIGO. Compiladores, Guía 11 1

1.2.- EL MICROPROCESADOR.

El Diseño de un Lenguaje Máquina

La arquitectura del 8086/8088

Departamento de Sistemas e Informática

Práctica 2. Registros y posiciones de memoria

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

Conceptos de Arquitectura de Computadoras Curso 2015

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

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

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

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

Entorno de Ejecución del Procesador Intel Pentium

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

Procesadores de 64 bits

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

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

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA

Historia de los Microprocesadores Intel

Fundamentos de Arquitectura y Código Máquina

Resumen de las instrucciones del 8086/8088

Arquitectura de Computadores II Clase #3

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

El nivel ISA (II)! Conjunto de Instrucciones

Trabajo Práctico Nro 3: Assembler

Aritmética de Enteros

Práctica 4 - Arquitectura CPU

Mod. I, Unid. 1, Obj. 1 CRITERIO DE DOMINIO 1/1

LENGUAJE ENSAMBLADOR DEL MICROPROCESADOR

Tema 4. Lenguaje máquina y lenguaje ensamblador

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

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

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

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

LABORATORIO DE ARQUITECTURA DE COMPUTADORES. I. T. I. SISTEMAS / GESTIÓN GUÍA DEL ALUMNO

Tema 4: Lenguaje máquina - Lenguaje ensamblador

Organización de Computadoras. Clase 2

Módulo 08 Lenguaje Ensamblador

Instrucción De Salto Incondicional

UNIDAD 7. LOS NÚMEROS ENTEROS

sumas = 58 = 48 = 73 = 59 =

TAREA 1 ARITMETICA PARA BCD Y ASCII.

Contenido. Conjunto de Instrucciones. Formato de la Instrucción. Instrucciones de 1 byte. Formato de la Instrucción 28/09/2011

MANEJO DEL MOUSE EN LENGUAJE C++

[etiqueta:] REP MOVSn

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

LENGUAJE ENSAMBLADOR PRÁCTICA 11 PRÁCTICA 11 CUATRO OPERACIONES FUNDAMENTALES EN NÚMEROS DE 8 BYTES

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Programación de Sistemas. Unidad 1. Programación de Sistemas y Arquitectura de una Computadora

SISTEMAS BASADOS EN MICROPROCESADORES

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

Por ejemplo, los números binarios sin signo que se pueden construir con 4 bits son: bit más significativo more significant bit (msb)

Tema 2. Diseño del repertorio de instrucciones

TEMA III: OPERACIONES CON LOS DATOS

1.1.- SISTEMA NUMERICO BINARIO, OCTAL Y HEXADECIMAL 1

RECONOCER EL GRADO, EL TÉRMINO Y LOS COEFICIENTES DE UN POLINOMIO

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

62/8&,21(6$/(;$0(1'( /$%25$725,2'((6758&785$6'(/26&20387$'25(6 &8562)(%5(52

Tema 4. Lenguaje máquina y lenguaje ensamblador

Representación Gráfica (recta numérica)

Relación de Problemas I

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

Lección 2 Introducción al lenguaje C

Tema 5. Presentación de datos por pantalla

Instrucciones de Control de Flujo y Usos de la Pila

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

ARQUITECTURA DEL MICROPROCESADOR 8086

Cálculo numérico. Aritmética en punto flotante.

LABORATORIOS DE: DISPOSITIVOS DE ALMACENAMIENTO Y DE ENTRADA/SALIDA. MEMORIAS Y PERIFÉRICOS. PRÁCTICA #9 EL RATÓN DE UNA COMPUTADORA

ESTRUCTURA DE MICROPROCESADORES

Alternativas de programación

UNIVERSIDAD NACIONAL DE INGENIERIA. Programación en Lenguaje Ensamblador

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

Apuntes de Microcontroladores (Repaso de temas previos)

Apuntes de Máquinas Electrónicas. (2º parcial) , José María Foces Morán.

Tema 5.1: Presentación de datos en pantalla

Instituto Tecnológico de Morelia

INTRODUCCIÓN. Interrupciones.

Circuitos combinacionales aritméticos (Parte II)

8.4. El software en los μprocesadores

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

EJEMPLOS EN ENSAMBLADOR

81,9(56,'$'32/,7e&1,&$'(0$'5,' (8,77(/(&2081,&$&,Ï1 '(3$57$0(172'(,1*(1,(5Ë$<$548,7(&785$67(/(0È7,&$6

EL EMU8086 Y EL MICROPROCESADOR 8086.

Programación Avanzada en Lenguaje Ensamblador

+18 = =

Ejercicios del tema 4. El procesador

Iniciación del mouse El servicio utilizado es el 00, este servicio inicializa el controlador del mouse como sigue:

Expresiones Algebraicas Racionales en los Números Reales

SUMADOR RESTADOR DE 3 BITS EN BINARIO NATURAL.

Construyendo Programas más Complejos

INSTRUCCIONES ARITMÉTICAS.

Programación en ensamblador (x86-64)

EXPRESIONES ALGEBRAICAS. POLINOMIOS

Tema 1: NUMEROS ENTEROS

Opuesto de un número +3 + (-3) = (+5) = 0. N = 0,1, 2,3,4, Conjunto de los números naturales

Digital II Documentación de las instrucciones INdg2, OUTdg2 y de los dispositivos mapeados en el espacio de E/S

2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIFICADORES COMO LOCALIDADES DE MEMORIA

Transcripción:

Registros Arquitectura x86 M. en C. Erika Vilches

Registro Area especial de almacenamiento de alta velocidad dentro del CPU Registros del procesador x86 Registros de datos de propósito general Registros de segmento Registros de estado y control (EIP e EFLAGS)

Registros de datos de propósito general Ocho registros de 32 bits para almacenar: Operandos enteros para operaciones lógicas y aritméticas Apuntadores (direcciones de memoria)

Los 4 que usaremos hoy: 31 16 8 0 eax ah ax al Accumulator ebx bh bx bl Base ecx ch cx cl Count edx dh dx dl Data

Registro de banderas Registro de 32 bits Colección de bits individuales de estado y control llamados banderas. Generalmente, cada bandera es manipulada independientemente y no como un conjunto.

eflags... of df sf zf af pf cf 31 11 10 7 6 4 2 0! CF carry flag! PF parity flag! AF auxiliary flag! ZF Zero Flag! SF sign flag! DF direction flag! OF overflow flag

cf - Carry Flag pf - Parity Flag af - Auxiliary flag zf - Zefo Flag sf - Sign Flag of - Overflow Flag

Ejercicio 1 Indique el estado de las banderas af, sf, pf y zf después de realizar la siguiente operación: mov eax, 0x45612378 add eax, 0xA20001F2

CF y OF Regla Universal XOR A B Z 0 0 0 0 1 1 1 0 1 1 1 0 NOT A Z 0 1 1 0

ADD bold itálica = Carry Flag (CF) bold itálica XOR bold = Overflow Flag (OF) Interno unsigned signed 00001000 CF=0, OF=0 10001101 141 115 01101000 104 104 11110101 245 11 válido válido Interno unsigned signed 11110000 CF=1, OF=0 11010000 208 48 01110000 112 112 01000000 64 64 inválido válido Interno unsigned signed 01100000 CF=0, OF=1 01100001 97 97 01110000 112 112 11010001 209 47 válido inválido Interno unsigned signed 10000000 CF=1, OF=1 11000100 196 60 10010001 145 111 01010101 85 85 inválido inválido Carry Flag reporta validez bajo la interpretación unsigned. Overflow Flag reporta validez bajo la interpretación signed. Saltos Condicionales: JC, JNC, JO, JNO

Ejercicios ADD Sume (con 8 bits) e indique todas las banderas: 1 + 1 1 + (-1) 127 + 1 (-128) + (-1)

SUB NOT bold itálica = Carry Flag (CF) bold itálica XOR bold = Overflow Flag (OF) Original unsigned signed interno 11001100 11000100 196 60 11000100 10010001 145 111 01101111 Diferencia 51 51 00110011 válido válido CF=0 OF=0 Original unsigned signed interno 00000000 01100001 97 97 01100001 01110000 112 112 10010000 Diferencia 241 15 11110001 inválido válido CF=1 OF=0 Original unsigned signed interno 10011000 10001101 141 115 10001101 01101000 104 104 10011000 Diferencia 37 37 00100101 válido inválido CF=0 OF=1 Original unsigned signed interno 01100000 01100001 97 97 01100001 10010000 144 112 01110000 Diferencia 209 47 11010001 inválido inválido CF=1 OF=1 Carry Flag reporta validez bajo la interpretación unsigned. Overflow Flag reporta validez bajo la interpretación signed. Saltos Condicionales: JC, JNC, JO, JNO NOTA: SUB se hace internamente sumando (ADD) el complemento a 2 del substraendo

Ejercicios SUB Reste (con 8 bits) e indique todas las banderas: 0-1 (-128) - 1 127 (-1) (-32) - 65

Reglas de validez Unsigned Restar a b es válido cuando a > b (CF = 0) Restar a b es inválido cuando a < b (CF = 1) La suma es invalida cuando el resultado es menor que los sumandos (CF = 1) Signed La resta a b es válida cuando a > b y el resultado es positivo (CF = 0, SF = 0) La resta a b es inválida cuando a > b y el resultado es negativo (OF = 1, SF = 1) La resta a b es válida cuando a < b y el resultado es negativo (OF = 0, SF = 1) La resta a b es inválida cuando a < b y el resultado es positivo (OF = 1, SF = 0) La resta de dos cantidades del mismo signo es siempre valida (OF = 0) La suma es inválida cuando la suma dos cantidades del mismo signo tiene el signo opuesto (OF = 1) La suma de dos cantidades de diferente signo es siempre válida (OF = 0)

Reglas de validez X Unsigned Restar a b es válido cuando a > b (CF = 0) Restar a b es inválido cuando a < b (CF = 1) La suma es invalida cuando el resultado es menor que los sumandos (CF = 1) Signed La resta a b es válida cuando a > b y el resultado es positivo (CF = 0, SF = 0) La resta a b es inválida cuando a > b y el resultado es negativo (OF = 1, SF = 1) La resta a b es válida cuando a < b y el resultado es negativo (OF = 0, SF = 1) La resta a b es inválida cuando a < b y el resultado es positivo (OF = 1, SF = 0) La resta de dos cantidades del mismo signo es siempre valida (OF = 0) La suma es inválida cuando la suma dos cantidades del mismo signo tiene el signo opuesto (OF = 1) La suma de dos cantidades de diferente signo es siempre válida (OF = 0)

Resumiendo ADD bold itálica = Carry Flag (CF) bold itálica XOR bold = Overflow Flag (OF) SUB NOT bold itálica = Carry Flag (CF) bold itálica XOR bold = Overflow Flag (OF) Carry Flag reporta validez bajo la interpretación unsigned. Overflow Flag reporta validez bajo la interpretación signed.