lenguaje ensamblador

24
Lenguaje Ensamblador integrantes: Esthela Vianey Vázquez Medina No.30 Yamileth Jannine Virgen osuna No. 33 Bautista Huerta Aldo Emmanuel No.5

Upload: tamera

Post on 24-Feb-2016

81 views

Category:

Documents


9 download

DESCRIPTION

Lenguaje Ensamblador. integrantes: Esthela Vianey Vázquez Medina No.30 Yamileth Jannine Virgen osuna No. 33 Bautista Huerta Aldo Emmanuel No.5. Comunidad Chol. Winik. Símbolo. Registros Bandera. El Registro de banderas es el que informa al usuario el estado actual del - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Lenguaje  Ensamblador

Lenguaje Ensamblador

integrantes:Esthela Vianey Vázquez Medina No.30Yamileth Jannine Virgen osuna No. 33Bautista Huerta Aldo EmmanuelNo.5

Page 2: Lenguaje  Ensamblador

Comunidad Chol

Winik

Page 3: Lenguaje  Ensamblador

Símbolo

Page 4: Lenguaje  Ensamblador

Registros

BanderaEl Registro de banderas es el que informa al usuario el estado actual delmicro controlador y son manipuladas por las operaciones del CPU.

Page 5: Lenguaje  Ensamblador

Definición Hay nueve indicadores de un bit en este

registro de 16 bits.

Los cuatro bits más significativos están indefinidos, mientras que hay tres bits con valores determinados: los bits 5 y 3 siempre valen cero y el bit 1 siempre vale uno.

BANDERAS

Page 6: Lenguaje  Ensamblador

Como en cualquier otro registro de instrucciones, los bits de este registro se pueden poner en estado alto o bajo por medio de instrucciones.

Sin embargo, solo se pueden usar instrucciones que no afecten el registro de banderas como consecuencia de su ejecución.

BANDERAS

Page 7: Lenguaje  Ensamblador

BANDERA DE ACARREO (CF)Carry Flag Bit 0

La bandera de acarreo se pone en estado alto cuando el resultado de una operación aritmética genera un acarreo o un préstamo. De lo contrario, la bandera de acarreo se pone en estado bajo.

En las instrucciones de rotación y desplazamiento, la bandera de acarreo contiene el ultimo valor del bit que sale del registro en el que se hace la operación.

La bandera de acarreo no se ve afectada por el RESET.

BANDERAS

Page 8: Lenguaje  Ensamblador

Esta bandera se ve modificada por el uso de las siguientes operaciones:

POPF (Extrae los indicadores de la pila)

AAA (Ajuste ASCII para la suma)

ADC (Suma con acarreo) ADD (Suma) DAA (Ajuste decimal para la

suma) AAS (Ajuste ASCII para la

resta) CMP (Comparación) DAS (Ajuste decimal para la

resta) NEG (Negación) SBB (Resta con acarreo) SUB (Resta) IMUL (Multiplicación entera

con signo) MUL (Multiplicación sin

signo) CMPS (Comparación

cadenas) SHL (Desplazamiento a la

izquierda) SAR (Desplazamiento a la

derecha) SHR (Desplazamiento lógico

a la derecha) RCL (Rotación a la izquierda

con acarreo) RCR (Rotación a la derecha

con acarreo) ROL (Rotación a la izquierda) ROR (Rotación a la derecha)

Page 9: Lenguaje  Ensamblador

BANDERA DE PARIDAD (PF)Parity Flag Bit 2

Si vale uno, el resultado tiene paridad par, es decir, un número par de bits a 1. Este indicador se puede utilizar para detectar errores en transmisiones.

BANDERAS

Page 10: Lenguaje  Ensamblador

Esta bandera se ve modificada por el uso de las siguientes operaciones:

POPF (Extrae los indicadores de la pila)

ADC (Suma con acarreo) ADD (Suma) DAA (Ajuste decimal para

la suma) INC (Incrementar) CMP (Comparación) DAS (Ajuste decimal para

la resta) DEC (Decrementar) NEG (Negación)

SBB (Resta con acarreo) SUB (Resta) AAM (Ajuste ASCII para la

multiplicación) ADD (Ajuste ASCII para la

división) OR (O lógico) TEST (Comparación

Lógica) SHL (Desplazamiento

aritmético a la izquierda) SHR (Desplazamiento

lógico a la derecha)

Page 11: Lenguaje  Ensamblador

BANDERA AUXILIAR DE ACARRERO (AF) Auxiliary Carry Flag Bit 4

Si vale 1, indica que hubo "arrastre" o "préstamo "del nibble (cuatro bits) menos significativo al nibble más significativo.

Este indicador se usa con las instrucciones de ajuste decimal.

BANDERAS

Page 12: Lenguaje  Ensamblador

Esta bandera se ve modificada por el uso de las siguientes operaciones:

POPF (Extrae los indicadores de la pila) AAA (Ajuste ASCII para la suma) ADC (Suma con acarreo) ADD (Suma) DAA (Ajuste decimal para la suma) INC (Incrementar) AAS (Ajuste ASCII para la resta) CMP (Comparación) DAS (Ajuste decimal para la resta) DEC (Decrementar) NEG (Negación) SBB (Resta con acarreo) SUB (Resta)

Page 13: Lenguaje  Ensamblador

BANDERA DE CERO (ZF)Zero Flag Bit 6

Para operaciones lógicas y aritméticas, la bandera de cero se pone en estado alto si el resultado es cero. En caso contrario la bandera se mantiene en estado bajo.

Si el resultado de examinar un bit de un registro o de la operación de rotación o desplazamiento es cero entonces la bandera de cero se pone en estado alto. En caso contrario la bandera se mantiene en estado bajo.

La bandera de cero no se ve afectada por el comando de RESET.

BANDERAS

Page 14: Lenguaje  Ensamblador

Esta bandera se ve modificada por el uso de las siguientes operaciones:

POPF (Extrae los indicadores de la pila)

ADC (Suma con acarreo)

ADD (Suma) DAA (Ajuste decimal

para la suma) INC (Incrementar) CMP (Comparación) DAS (Ajuste decimal

para la resta) DEC (Decrementar)

NEG (Negación) SBB (Resta con

acarreo) SUB (Resta) AAM (Ajuste ASCII para

la multiplicación) AAD (Ajuste ASCII para

la división) TEST (Comparación

Lógica) XOR (O exclusivo)

ZF=0 SHR (Desplazamiento

Lógico a la derecha)

Page 15: Lenguaje  Ensamblador

BANDERA DE SIGNO (SF)Sign Flag Bit 7

La bandera de signo guarda el bit mas significativo del resultado de una operación lógica, aritmética, de rotación o de desplazamiento.

Cuando se llevan a cabo operaciones aritméticas con números que tienen signos, la notación binaria de complemento a dos es utilizada para representar y procesar información.

Un numero positivo se identifica con un cero en el bit más significativo, por lo tanto, en este caso la bandera de signo también es cero. Un número negativo es identificado con un 1 en el bit mas significativo, por lo tanto la bandera de signo también es 1.

La bandera de cero no se ve afectada por el RESET.

BANDERAS

Page 16: Lenguaje  Ensamblador

Esta bandera se ve modificada por el uso de las siguientes operaciones:

POPF (Extrae los indicadores de la pila)

ADC (Suma con acarreo) ADD (Suma) DAA (Ajuste decimal

para la suma) INC (Incrementar) CMP (Comparación) DAS (Ajuste decimal

para la resta) DEC (Decrementar) NEG (Negación)

SBB (Resta con acarreo) SUB (Resta) AAM (Ajuste ASCII para

la multiplicación) AAD (Ajuste ASCII para la

división) AND (Y lógico) OR (O lógico) TEST (Comparación

Lógica) SHL (Desplazamiento

aritmético a la izquierda) SAR (Desplazamiento

aritmético a la derecha)

Page 17: Lenguaje  Ensamblador

BANDERA DE TRAMPA (TF)Trap Flag Bit 8

Si vale 1, el procesador está en modo paso a paso.

En este modo, la CPU automáticamente genera una interrupción interna después de cada instrucción, permitiendo inspeccionar los resultados del programa a medida que se ejecuta instrucción por instrucción

BANDERAS

Page 18: Lenguaje  Ensamblador

Esta bandera se ve modificada por el uso de las siguientes operaciones:

POPF (Extrae los indicadores de la pila) XOR (O exclusiva) INT (Interrupción) TF=0 INTO (Interrupción por desbordamiento)

TF=0 IRET (Retorno de interrupción)

Page 19: Lenguaje  Ensamblador

BANDERA DE INTERRUPCION (IF)Interrupt Flag Bit 9

Si vale 1, la CPU reconoce pedidos de interrupción externas enmascarables (por el pin INTR). Si vale 0, no se reconocen tales interrupciones.

Las interrupciones no enmascarables y las internas siempre se reconocen independientemente del valor de IF.

BANDERAS

Page 20: Lenguaje  Ensamblador

Esta bandera se ve modificada por el uso de las siguientes operaciones:

POPF (Extrae los indicadores de la pila) XOR (O exclusivo) CLI (Baja indicador de interrupción) IF=0 STI (Pone a no el indicador de

interrupción) IF=1 INT (Interrupción) IF=0 IRET (Retorno de interrupción)

Page 21: Lenguaje  Ensamblador

BANDERA DE DIRECCION (DF)Direction Flag Bit 10

Si vale 1, las instrucciones con cadenas sufrirán "auto-decremento", esto es, se procesarán las cadenas desde las direcciones más altas de memoria hacia las más bajas.

Si vale 0, habrá "auto-incremento", lo que quiere decir que las cadenas se procesarán de "izquierda a derecha"

BANDERAS

Page 22: Lenguaje  Ensamblador

Esta bandera se ve modificada por el uso de las siguientes operaciones:

POPF (Extrae los indicadores de la pila) STD (Pone a uno el indicador de

dirección) DF=1 IRET (Retorno de interrupción)

Page 23: Lenguaje  Ensamblador

Para operaciones aritméticas de rotación o de desplazamiento, la bandera de sobreflujo se pone en estado alto cuando el resultado es más grande que el máximo número posible (mayor de 127) o menor que el numero mínimo posible (menor que –128) que puede ser representado en la forma de complemento a dos.

La bandera de sobreflujo se mantiene en estado bajo si no ocurren sobreflujos.

La bandera de sobreflujo no se ve afectada por el RESET.

BANDERAS

BANDERA DE SOBREFLUJO (OF)Overflow Flag Bit 11

Page 24: Lenguaje  Ensamblador

Esta bandera se ve modificada por el uso de las siguientes operaciones:

POPF (Extrae los indicadores de la pila)

ADC (Suma con acarreo)

ADD (Suma) INC (Incrementar) CMP (Comparación) DEC (Decrementar) NEG (Negación) SBB (Resta con

acarreo)

SUB (Resta) IMUL (Multiplicación

entera con signo) MUL (Multiplicación sin

signo) SAR (Desplazamiento

aritmético a la derecha)

SHR (Desplazamiento lógico a la derecha)