Hack x Crack - Comunidad de Seguridad informática

Programación => ASM => Mensaje iniciado por: uberman en Julio 30, 2014, 03:17:21 am

Título: Ayuda con una resta T_T
Publicado por: uberman en Julio 30, 2014, 03:17:21 am
Hola a todos, tengo el siguiente codigo en GoASM que resta dos numeros, var1 y var2, solo que no consigo mostrar el resultado correcto de la operacion.Ya hice la suma por eso puede verse en el codigo una variable que guarda el hexa del simbolo de la suma en ascii. Espero puedan ayudarme.

Muchas Gracias de antemano
Saludos

Código: [Seleccionar]
.Data
inicio DD 0
var1 DD 5   ;modificar
var2 DD 4   ;modificar
resultado DD 1
suma DD 43
resta DD 45
igual DD 61
show DD 1
.Code

start:


Push - 11
Invoke GetStdHandle
Push 0, Addr inicio
Push 2, Addr show
Mov Bx, [var1]
Add Bx, 30H
Mov [show], Bx
Push Eax
Call WriteFile

Push - 11
Invoke GetStdHandle
Push 0, Addr inicio
Push 2, Addr resta
Push Eax
Call WriteFile

Push - 11
Invoke GetStdHandle
Push 0, Addr inicio
Push 2, Addr show
Mov Bx, [var2]
Add Bx, 30H
Mov [show], Bx
Push Eax
Call WriteFile

Push - 11
Invoke GetStdHandle
Push 0, Addr inicio
Push 2, Addr igual
Push Eax
Call WriteFile


Push - 11
Invoke GetStdHandle
Push 0, Addr inicio
Push 1D, Addr resultado
Mov Bx, [var2]
Mov Cx, [var1]
Sub Cx, Bx
Add Bx, 30H
Mov [resultado], Bx
Push Eax
Call WriteFile

Ret

Título: Re:Ayuda con una resta T_T
Publicado por: tryger en Julio 31, 2014, 11:18:23 pm
Hola uberman, nunca me he mirado GoASM pero despues de leer algunos manuales creo que ya se cual es el problema.

Fijate en el ultimo bloque, concretamente en estas lineas:
Código: [Seleccionar]
Mov Bx, [var2]
Mov Cx, [var1]
Sub Cx, Bx
Add Bx, 30H
Mov [resultado], Bx

lo que aqui haces es poner el resultado de var1 - var2 en Cx y luego le sumas 0x30 a Bx, que en realidad es donde esta var2, asi que debe imprimir var2. cambia el orden de Sub por "Sub Bx, Cx", aunque esto lo que hace es var2 - var1, ya que la sintaxis de Sub es:
Sub A, B  =>  A = A - B  (corregidme si me equivoco) .

Si esto no resuelve tu duda postea la salida que te da el programa para que sea mas facil detectar el error.

Salu2  ;)
Título: Re:Ayuda con una resta T_T
Publicado por: uberman en Agosto 02, 2014, 05:38:36 am
Muchas gracias, si era eso XD, no lo vi.


Saludos