Logo

¡Bienvenido a Stratos!

Acceder

Foros





Sumando numeros de 32 bits en ASM

Iniciado por Sante, 04 de Mayo de 2007, 02:21:28 PM

« anterior - próximo »

Sante

Buenas, estoy teniendo algun problema al restar dos registros de 32 bits en ASM del x86 (con Visual C++ 6.0):


;eax = 2
;ebx = -2147483648
sub eax, ebx


Al hacer esto, el eax devuelve con -2147483646. ¿No deberia devolver un numero positivo? Parece que solo opera con los 16 bits mas bajos.

(Nota: Los numeros estan en decimal)

Zaelsius

Está operando en 32bits, pero te sales de rango, ya que el valor de un  entero 32 bits está entre [ -2147483647 , 2147483648 ]

Link: http://home.att.net/~jackklein/c/inttypes.html#int

Sante

Si, era eso. Me di cuenta al poco de poner el post, porque se estaba activando el bit de overflow.

Gracias de todos modos.