• Inicio
  • Buscar
  • Ingresar
  • Registrarse

    ¿Sabes el motivo de que fallen tanto algunas impresoras Epson?

    • Hack x Crack - Comunidad de Seguridad informática »
    • Programación »
    • ASM »
    • Ayuda con una resta T_T
    • Imprimir
    Páginas: [1]   Ir Abajo

    Autor Tema: Ayuda con una resta T_T  (Leído 6899 veces)

    Desconectado uberman

    • { L0 } Ñuub
    • Mensajes: 22
      • Ver Perfil
    Ayuda con una resta T_T
    « 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

    En línea

    Desconectado tryger

    • Moderador
    • { L2 } Nativo Digital
    • **
    • Mensajes: 118
      • Ver Perfil
    Re:Ayuda con una resta T_T
    « Respuesta #1 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  ;)
    En línea

    Desconectado uberman

    • { L0 } Ñuub
    • Mensajes: 22
      • Ver Perfil
    Re:Ayuda con una resta T_T
    « Respuesta #2 en: Agosto 02, 2014, 05:38:36 am »
    Muchas gracias, si era eso XD, no lo vi.


    Saludos
    En línea

    • Imprimir
    Páginas: [1]   Ir Arriba
    • Hack x Crack - Comunidad de Seguridad informática »
    • Programación »
    • ASM »
    • Ayuda con una resta T_T
     

    • SMF | SMF © 2013, Simple Machines
    • XHTML
    • RSS
    • WAP2
    Va un mudo y le dice a un sordo: Hack x Crack usa cookies. Pues eso... Learn more