Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/11/2015, 07:24
aguml
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 9 meses
Puntos: 3
Prueba con overflow

Hola amigos, ya conseguí hacer esto en C sin problemas para enteros pero luego he pensado otro modo y queria saber porque no funciona. Mirad lo que probé:
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char* argv[])
  5. {
  6.    int EFlags,valor,isOverflow;
  7.    int pos_bit_overflow=11;
  8.  
  9.    printf("Introduce un valor entero: ");
  10.    scanf("%i",&valor);
  11.    __asm
  12.    {
  13.       pushfd // store flags (32 bits)
  14.       pop EFlags // EFlags = flags w/overflow
  15.    }
  16.    isOverflow=(EFlags & (1 << pos_bit_overflow));
  17.    if(isOverflow != 0){
  18.       printf("Huvo overflow\n");
  19.    }
  20.    system("PAUSE");
  21.    return 0;
  22. }
¿por que si meto un valor que desborda la variable no se activa el bit de overflow del EFlag? ¿falta algo mas para que funcione de esa forma?