+ All Categories
Home > Documents > 2.2 Registro de Banderas Conjunto de bits que nos dan información sobre el estado del procesador y...

2.2 Registro de Banderas Conjunto de bits que nos dan información sobre el estado del procesador y...

Date post: 27-Jan-2016
Category:
Upload: regulo-castelo
View: 212 times
Download: 0 times
Share this document with a friend
Popular Tags:
31
COMUNIDAD QUETZALCOATL INTEGRANTES: JHONATHAN(ITZMIN) HIRAM(EHECATL) RUBEN(TEPILTZÍN)
Transcript
Page 1: 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.

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

Page 2: 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.

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

Page 3: 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.

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.

Page 4: 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.

Ejemplo Acarreo

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

CF=1

Page 5: 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.

Ejemplo Acarreo

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

CF=1

Page 6: 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.

Ejemplo Acarreo

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

CF=0

Page 7: 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.

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.

Page 8: 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.

Ejemplo Paridad

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

Page 9: 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.

Ejemplo Paridad

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

Page 10: 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.

Ejemplo Paridad

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

Page 11: 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.

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.

Page 12: 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.

Ejemplo acarreo auxiliar

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

AF=1

Page 13: 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.

Ejemplo acarreo auxiliar

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

AF=1

Page 14: 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.

Ejemplo acarreo auxiliar

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

AF=0

Page 15: 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.

Bandera de Zero.

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

Page 16: 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.

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

Page 17: 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.

Ejemplo bandera zero

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

ZF=1

Page 18: 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.

Ejemplo bandera zero

Mov BH, 01 H DEC BH

ZF=0

Page 19: 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.

Ejemplo bandera zero

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

ZF=1

Page 20: 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.

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.

Page 21: 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.

Ejemplo Sign Flag

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

Page 22: 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.

Ejemplo Sign Flag

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

Page 23: 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.

Ejemplo Sign Flag

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

Page 24: 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.

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.

Page 25: 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.

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

Page 26: 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.

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

Page 27: 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.

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.

Page 28: 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.

Ejemplo Overflow

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

Page 29: 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.

Ejemplo Overflow

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

Page 30: 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.

Ejemplo Overflow

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

Page 31: 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.

GRACIAS


Recommended