Comunidad quetzalcoatl INTEGRANTES: JhONATHAN ( Itzmin ) HIRAM(EHECATL) RUBEN(t epiltzín )

Post on 01-Jan-2016

34 views 0 download

Tags:

description

Comunidad quetzalcoatl INTEGRANTES: JhONATHAN ( Itzmin ) HIRAM(EHECATL) RUBEN(t epiltzín ). . . . . . . . . OF DF IF SF ZF CF. 2.2 Registro de Banderas. - PowerPoint PPT Presentation

transcript

COMUNIDAD QUETZALCOATLINTEGRANTES:JHONATHAN(ITZMIN)HIRAM(EHECATL)RUBEN(TEPILTZÍN)

2.2 Registro de Banderas

• Conjunto de bits que nos dan información sobre el estado del procesador y sobre el resultado de la última operación efectuada.

• Es el único registro accesible a nivel de bits.• Algunos de estos bits son:

– CF: Carry flag- ZF: Zero flag– SF: Sign flag - OF: Overflow flag

– IF: Interrupt flag - DF: Direction flag

. . . . . . . . OF DF IF SF ZF CF

Bandera de Acarreo.

CF (Carry Flag, bit 0): Si vale 1, indica que hubo "arrastre" (en caso de suma) o "préstamo" (en caso de resta). Este indicador es usado por instrucciones que suman o restan números que ocupan varios bytes. Las instrucciones de rotación pueden aislar un bit de la memoria o de un registro poniéndolo en el CF.

Ejemplo Acarreo

MOV AL,FF H MOV BL,55 H ADD AL,BL

CF=1

Ejemplo Acarreo

MOV CL,99 H MOV AH,AC H ADD CL,AH

CF=1

Ejemplo Acarreo

MOV BH,011 H MOV BL,42 H ADD BH,BL

CF=0

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.

Ejemplo Paridad

Mov Ax, FFFFh Mov Bx, 1h ADD Ax,Bx PF=1

Ejemplo Paridad

Mov AL, 4Fh Mov BL, 40h ADD AL,BL PF=0

Ejemplo Paridad

Mov Ax, 1 Mov Bx, 0 ADD Ax,Bx PF=1

Bandera de Acarreo Auxiliar.

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.

Ejemplo acarreo auxiliar

Mov Al, 37H Mov Bl, 2H Div Al, Bl

AF=1

Ejemplo acarreo auxiliar

Mov Al, 45H Mov Bl, 2H Div Al, Bl

AF=1

Ejemplo acarreo auxiliar

Mov Al, 70H Mov Bl, 2H Div Al, Bl

AF=0

Bandera de Zero.

ZF (Zero Flag, bit 6): Si este indicador vale 1, el resultado de la operación es cero.

Zero Flag Ejemplo: un caso es cuando restamos dos números iguales, adjunto un ejemplo:

EAX = 100ECX = 200

SUB EAX,EAX  ; Resultado = 0 ZF = 1

ADD EAX,ECX ; Resultado = 200 ZF = 0

Cambiar la bandera Z es distinto a invertir el salto, ya que la modificación de la bandera generará un cambio del comportamiento del ejecutable sólo en tiempo de ejecución, a diferencia de invertir un salto como por ejemplo:JE por JNEJB por JAetc

al ser guardados los cambios del ejecutable generaremos un cambio permanente

Ejemplo bandera zero

Mov AH, FF H Mov CL, FF H SUB AH, CL

ZF=1

Ejemplo bandera zero

Mov BH, 01 H DEC BH

ZF=0

Ejemplo bandera zero

Mov BL, 55 H Mov AL, 55 H SUB AL, BL

ZF=1

Bandero de Asigno.

SF (Sign Flag, bit 7): Refleja el bit más significativo del resultado. Como los números negativos se representan en la notación de complemento a dos, este bit representa el signo: 0 si es positivo, 1 si es negativo.

Ejemplo Sign Flag

Mov Ax, 1H Mov Bx, 2H Sub Ax, Bx -1 SF=0

Ejemplo Sign Flag

Mov Ax, 2H Mov Bx, 4H Sub Ax, Bx -2 SF=0

Ejemplo Sign Flag

Mov Ax, 2H Mov Bx, 2H ADD Ax, Bx 4 SF=1

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.

Bandera de Interrupcion.

IF (Interrupt Flag, bit 9): Si vale 1, la CPU reconoce pedidos de interrupción externas. Si vale 0, no se reconocen tales interrupciones

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".

Bandera de Desbordamiento. OF (Overflow flag, bit 11): Si vale 1,

hubo un desborde en una operación aritmética con signo, esto es, un dígito significativo se perdió debido a que tamaño del resultado es mayor que el tamaño del destino.

Ejemplo Overflow

mov al, 255/2add al, 1;hay overflow, al= 128

Ejemplo Overflow

mov al, 140/2add al, 1;hay overflow, al= 71

Ejemplo Overflow

mov al, 25/2add al, 1;No hay overflow, al= 13

GRACIAS