Estoy empezando a depurar programas con GDB, y hacienod disas main me he encontrado con 2 opcodes que no cononzco. He bsucado por google, pero no he sacado nada en claro
SOn: leave y movl.
Movl me imagino que es algo de mover, por que si conozco Mov, peor no sé que pinta la L ahí.
Sobre leave, decir que me aparece dentro de otra función que no es main.
Código:
Código:
serch@serch-server:~/Escritorio$ gdb -q a.out
Leyendo símbolos desde /home/serch/Escritorio/a.out...(no se encontraron símbolos de depuración)hecho.
¿Quién os parece el mejor guitarrista de rock y derivados?
Mantenía una conversación con un amigo sobre esto, y se me ocurrió ver las opiniones de los del foro.
Para mi Brian Harold May, el mejor. Tanto por técnica, como por ser el inventor de varios estilos (Como el tapping, que equivocadamente se piensa que fue creado por Van Halen )
Os dejo una conversación que he tenido hace rato por el chat de Tuenti. Situación, me agregan una persona a la que no conozco y acepto por curiosidad (No tengo nada de que avergonzarme ni nada que se pueda usar contra mi)
Total, ocurre lo siguiente;
Citar
* Guillermo: hola * * Yo: Buenas * * Guillermo: que tal * soy desarrollador web * Yo: Yo bien, ¿Tú? * * Guillermo: bien * que edad tienes? * yo 17 * * Yo: 16 * * Guillermo: yo 17 * * Yo: Ya me lo has dicho. * * Guillermo: que lenguajes dominas? * * Yo: C y estoy empezando con asm * Te puedes pasar por mi blog par para mas info * * Guillermo: a ok * yo soy exporto * en lenguajes web * php,javascript,css,xhtml,xml,ajax,json,mysql * * Yo: Vale. * * Guillermo: no dominas ninguno de la web? * * Yo: Sé maquetar HTML, aunque no se considere como lenguaje de programación estructurado. * Guillermo: php nada * pues php es mi lenguaje preferido * es una delicia * tambien se pascal * * Yo: pascal no me gusta, y php deriba de C, pero está muy poco tipeado para mi * me parece uan desfachated eso de no declarar tipo de variables * dejas toda la gestión al equipo, es una perdida grande de memoria * * Guillermo: ya pero el compilador de php * esta optimizado para eso * pero para la web * es lo mejor * usar php y mysql * bajo apache * * Yo: ¿De verdad eres experto? * * Guillermo: bueno experto * llevo 3 años * programando el php * lo conozco bastante bien * he hecho varios proyectos * * Yo: php no es compilado, no usas compilador, es un lenguaje interpretado * es básico * * Guillermo: el compilador * es el motor * es decir * tu no lo tienes que compilar * si no que el interprete lo hace por ti digamos * * Yo: El intérprete, no el compilador como dijiste * * Guillermo: si perdona * y que quieres estudiar * yo el año que viene * empiezo la ingenieria * * Yo: Estoy buscando trabajo, por ahora no voy a estudiar. * * Guillermo: no acabaste la ESO? * * Yo: Eso qué mas dá? * * Guillermo: no se tio * te quieres dedicar a la informatica? * * Yo: Me es indiferente * * Guillermo: a ok * yo si * lo tengo clarisimo * * Yo: Vale * * Guillermo: y tienes algun proyecto pensado? * * Yo: Estoy en ellos. * * Guillermo: algo relaccionado con la web? * * Yo: No. * * Guillermo: java que tal lo llevas? * * Yo: No me gusta trabajar en virtual * me gusta trabajar a bajo nivel * * Guillermo: si tanto te gusta linux * sabras phyton no? * * Yo: Me gusta GNU, Linux es el núcleo. Y no, no uso python, te reitero que uso C y estoy aprendiendo asm. * * Guillermo: osea que te gusta solo la licencia * GNU? * * Yo: Debes informarte un poco mas de lo que es GNU. * La licencia es GPL. * No GNU. * Guillermo: Bueno chaval * no vallas de listo * tienes que ser mas humilde * hasta luego * que te valla bien fracasado
***************
Guillermo Pascual
Solo tengo una duda, y es si me equivoqué en la parte PHP, pues es un lenguaje que desconozco.. Pero por lo demás, observen ustedes mismos xD
Editado Littlehorse: Evita el spam a sitios externos a elhacker.net que no sean estrictamente relevantes. Tienes el espacio suficiente para transcribir el contenido de tu blog al post. Gracias.
Se trata de un punto de reunión entre empresas o instituciones con algún tipo de problema, y gente (inventores, científicos, ingenieros, o cualquiera con conocimientos suficientes para dar una solución.)
Lo interesante es que por resolver el problema ofrecen una cantidad que oscila entre 1.500 $ y 1.000.000 $. Como supondréis no son temas sencillos ni triviales.
Tengo un pulsador (http://www.bricogeek.com/shop/img/p/85-200-large.jpg) y me gustaría que cuando sea pulsado, cambie el valor de una variable dentro de mi programa. He pensado en usar interrupciones, probé con CHANGE, pero nada.
Quiero probar openSuSe (openSUSE-11.2-DVD-i586) Ya tengo el dvd descargado y el VBox preparado. Tengo experiencia en sistemas basados en Debian y en CentOS.
Esto al ser nuevo, no sé con que me voy a encontrar, ¿Alguien me dice las diferencias con los otros sistemas? ¿Algo importante que deba saber?
Os lo dejo aquí, extraído directamente de mi nuevo blog, y anteriormente de mi cuaderno de apuntes.
Este ejemplo se desarrolla con Borland C++ 3.1 (Bajo Windows XP) Podemos manejar las interrupciones del ratón gracias a la interrupción 33h.
Tenemos un programa en modo gráfico bajo C (Utilizando graphics.c) y deseamos programar un botón, que al ser pulsado con el botón izquierdo de nuestro ratón, el programa ejecute una acción.
Tras programar la parte visual, y tras tener dibujado nuestro botón llegamos a programar la interrupción.
Lo primero que debemos hacer es pasar la función al registro AX. Una vez hecho, interrumpimos y 'preguntamos' por los valores registrados en BX, CX,...
Si hacemos esto dentro de una función, nos podrá devolver si se ha hecho click o no.
Antes de empezar a usar el ratón tenemos que inicializarlo. Podemos escribir un procedimiento similar a este:
Código
void iniciarRaton()
{
union REGS registro_e, registro_s;
registro_e.x.ax=0;//Función 00h
int86 (0x33,®istro_e,®istro_s);
}
Cuando llamemos a este procedimiento, reiniciaremos el ratón. Para mas inri, podemos transformar el procedimiento en función, haciendo que devuelva 0 o 1 dependiendo de si se ha podido reiniciar el ratón o no.
También indicar que en vez de declarar union REGS dentro de cada procedimiento o función, es mas cómodo declararlo fuera de todas las funciones, haciendo que sea común a todas.
Función para los botones del ratón:
Código
int movRat()
{//Suponemos que union REGS es común
registro_e.x.ax=3;
int86 (0x33,®istro_e,®istro_s);
if(registro_s.x.bx==1)return1;
if(registro_s.x.bx==2)return2;
}
Esta función nos devuelve 1 si se pulsa el botón izquierdo del ratón en cualquier posición de la pantalla, y 2 para el botón derecho.
Si queremos delimitar la zona de actuación de la interrupción, la tenemos que pasar las coordenadas del botón a CX y DX (X y R, respectivamente)
Con esto, solo nos quedaría hacer una comprobación a la función movRat, para comprobar si se ha producido una interrupción.