elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 ... 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 [40] 41 42 43 44 45
391  Programación / ASM / Re: (Consulta) Intercambiador de variables en ensamblador (sintaxis de intel) en: 14 Diciembre 2015, 19:32 pm
¿Por qué usas el registro ecx? ¿Podrías usar el ebx? Por cierto, no usé inline porque quería acostumbrarme a los ficheros objeto y a enlazar. En cualquier caso, ¿no debería mi código funcionar?
392  Programación / ASM / (Consulta) Intercambiador de variables en ensamblador (sintaxis de AT&T) en: 14 Diciembre 2015, 13:31 pm
Hola, muy buenas. Estoy aprendiendo ensamblador y para ello lo estoy enlazando con las librerías estandar de C++. No sé mucho sobre la sintaxis de intel (estoy aprendiendo NASM), pero he conseguido el siguiente código (el cual está guardado en el archivo intercambiar.s)

Código
  1. .file "intercambiar.cpp"
  2. .text
  3. .globl __Z12intercambiarPiS_
  4. .def __Z12intercambiarPiS_; .scl 2; .type 32; .endef
  5. __Z12intercambiarPiS_:
  6. LFB0:
  7. .cfi_startproc
  8. pushl %ebp
  9. .cfi_def_cfa_offset 8
  10. .cfi_offset 5, -8
  11. movl %esp, %ebp
  12. .cfi_def_cfa_register 5
  13.  
  14. movl 8(%ebp), %eax
  15. movl 12(%ebp), %ebx
  16. movl %eax, 12(%ebp)
  17. movl %ebx, 8(%ebp)
  18.  
  19. popl %ebp
  20. .cfi_restore 5
  21. .cfi_def_cfa 4, 4
  22. ret
  23. .cfi_endproc
  24. LFE0:
  25. .ident "GCC: (GNU) 4.8.1"
  26.  

Lo que he hecho es conseguir el código base gracias al compilador g++ de MinGW y añadir el intercambiador de variables.

Lo que sería el intercambiador es el siguiente:

Código
  1. pushl %ebp
  2. movl %esp, %ebp
  3.  
  4. movl 8(%ebp), %eax
  5. movl 12(%ebp), %ebx
  6. movl %eax, 12(%ebp)
  7. movl %ebx, 8(%ebp)
  8.  
  9. popl %ebp
  10. ret

Lo que he hecho después es ejecutar el siguiente comando:
Código:
g++ -Wall -c intercambiador.s

Con el, he obtenido un fichero objeto

Ahora bien, cuando ejecuto el programa principal, no me intercambia las variables.

Aquí tenéis el programa principal en C++:

Código
  1. #include <iostream>
  2.  
  3. void intercambiar(int* lpnValorA, int* lpnValorB);
  4.  
  5. int main() {
  6. int nValorA, nValorB;
  7.  
  8. std::cout << "Introduzca el valor A: ";
  9. std::cin >> nValorA;
  10. std::cout << "Introduzca el valor B: ";
  11. std::cin >> nValorB;
  12.  
  13. intercambiar(&nValorA, &nValorB);
  14.  
  15. std::cout << "\nnValorA = " << nValorA << std::endl;
  16. std::cout << "nValorB = " << nValorB;
  17.  
  18. std::cin.get();
  19. std::cin.get();
  20. return 0;
  21. }

Pues eso, el intercambiador no hace nada

Soy novato en ASM, por lo que no seáis duros :D Gracias
393  Programación / Programación C/C++ / Re: Pequeña duda sobre punteros en: 13 Diciembre 2015, 20:52 pm
A parte de lo que dice PabloPbl, con la primera cadena se reserva espacio para CINCO caracteres. El último carácter indica el fin de la cadena (equivale a 0). Por ejemplo, la declaración
Código
  1. char cadena[] = "Hola";
equivale a la declaración
Código
  1. char cadena[] = {'H', 'o', 'l', 'a', '\0'};
Si no se pusiera ese carácter, no sabríamos el final de la cadena.
394  Programación / Programación C/C++ / Re: Compila pero no se ejecuta! Ayuda por favor. en: 9 Diciembre 2015, 23:42 pm
Esto siempre me ha pasado con el compilador de MinGW (solamente he probado este y el que usa Visual Studio 2013 - 2015). Lo más seguro sea que MinGW hace código máquina que se parece a algún tipo de virus conocido y por ello tiene que analizarlo bien.
Digo que se analiza pues pasado un rato, Avast (el antivirus que yo usaba) dejaba ejecutarse a la aplicación.
No se me ocurre otra cosa XD
395  Programación / Programación C/C++ / Re: Compila pero no se ejecuta! Ayuda por favor. en: 9 Diciembre 2015, 21:04 pm
Jajaja. Es cierto que es un razonamiento un tanto alocado. He pensado eso tan rápido porque "recientemente" hubo un tema similar :D Entonces, para ir descartando, dije esa solución
396  Programación / Programación C/C++ / Re: Compila pero no se ejecuta! Ayuda por favor. en: 6 Diciembre 2015, 10:10 am
Prueba a desactivar el antivirus. Lo que pasa es que este analiza tu programa por si fuera un virus. Al menos eso me pasaba a mí :D
397  Sistemas Operativos / Windows / (Consulta) Accesos directos de Windows que rellenan cuadros de texto en: 4 Diciembre 2015, 18:19 pm
Hola, muy buenas a tod@s. Mi pregunta (aunque no sé si debería ir en este subforo) es la siguiente: ¿Se puede crear un acceso directo de Windows que te rellene los cuadros de texto que están nombrados por un nombre?
Por ejemplo, una página tiene los siguientes recuadros:

Código
  1. <input id="consultaNotaForm:nifnie" type="text" name="consultaNotaForm:nifnie" class="submenu" maxlength="9" size="15">
  2. ...

Gracias por ver el tema
398  Programación / Programación C/C++ / Re: Problemas con Windows API en C en: 2 Diciembre 2015, 17:07 pm
A mi me pasa casi que al contrario (pero si que he usado a veces la línea de comandos, a nivel de aprendizaje, no como algo para "hacer todos los días").
399  Programación / Programación C/C++ / Re: Duda/Error sobre arrays (vectores) en: 2 Diciembre 2015, 15:03 pm
Código
  1. int leerVector(int vector)

Has puesto como parámetro un entero, no un vector de enteros
400  Programación / Programación C/C++ / Re: Problemas con Windows API en C en: 2 Diciembre 2015, 07:44 am
No he venido al foro de programación a discutir :D

¿Has conseguido resolver tu error?
Páginas: 1 ... 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 [40] 41 42 43 44 45
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines