Hola a todos, resulta que me dejaron de tarea un programa que sume y reste, muestre el resultado en la pantalla de la consala pero con GoASM, pero no puedo hacer que reste, esto es lo que llevo, les pego solo la parte de la resta que no sale...
.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
Espero puedan ayudarme
Muchas gracias de antemano.
Saludos a todos por aqui!
¿GoAsm? Puff ... tenes que aprender a depurar tu codigo y mucho mas si usas herramientas minoritarias ... te recomiendo WinDbg (Debugging Tools for Windows).
Mov Bx, [var2] ;BX = 4
Mov Cx, [var1] ;CX = 5
Sub Cx, Bx ;CX = 1
Add Bx, 30H ;BX = 0x34
Mov [resultado], Bx ;BX = 0x34
Tenes que usar CX, igual en cuanto tengas un resultado mayor a una cifra kaboom.