Stratos: Punto de Encuentro de Desarrolladores

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






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.