Cita de: BeethIsaRoGa en Diciembre 03, 2013, 03:45:27 amBueno, en esta ocasión necesito la ayuda de ustedes, tengo que hacer una presentación y un pequeño programa (tan simple como que sume 2 + 2) en el que use/llame código ensamblador desde C++, la verdad es tema de consulta en la clase, y hasta ahora no he podido encontrar algo concreto, sin mencionar que el Visual C++ Standard Edition me falla el Windows 8 y se cierra, y el trabajo es para el jueves, no les pido que me resuelvan el problema, solo quisiera que me ayudaran poniendo un ejemplo y me lo expliquen para poder entender la poca pero demasiada rebuscada información que encontre, es un trabajo por parejas, pero mi compañera la verdad no coopera, quisiera que me ayuden, cualquier dato que me proporcionen como URL, PDF's, DOC's, E-mail, etc, etc sera de mucha ayuda, en un rato más pondre aqui lo poco que he entendido, gracias de antemano.Edito: Se me olvido decir que debe de ser con software de Microsoft, otro equipo explicará con borlandYo tampoco tengo muy claro qué quieres saber exactamente... Aunque he visto esto algo tarde, comentaré algunas cosas.En VC no se puede usar la etiqueta __asm en código de 64bits. SÍ se pueden usar interrupciones. El código siguiente compila en VS2013 (compilando para 32 bits, para 64 no deja):Código: [Seleccionar]int main(int argc, char** argv){ __asm int 3;}De todos modos en windows ya no se usan las interrupciones en código de usuario, sólo la 3 para invocar al depurador, así que no sería una gran pérdida.La única limitación, que yo sepa, es que no se pueden declarar funciones ni datos -hay que usar las variables de C.Se pueden usar instrucciones avanzadas como la FPU y las SSE.
Bueno, en esta ocasión necesito la ayuda de ustedes, tengo que hacer una presentación y un pequeño programa (tan simple como que sume 2 + 2) en el que use/llame código ensamblador desde C++, la verdad es tema de consulta en la clase, y hasta ahora no he podido encontrar algo concreto, sin mencionar que el Visual C++ Standard Edition me falla el Windows 8 y se cierra, y el trabajo es para el jueves, no les pido que me resuelvan el problema, solo quisiera que me ayudaran poniendo un ejemplo y me lo expliquen para poder entender la poca pero demasiada rebuscada información que encontre, es un trabajo por parejas, pero mi compañera la verdad no coopera, quisiera que me ayuden, cualquier dato que me proporcionen como URL, PDF's, DOC's, E-mail, etc, etc sera de mucha ayuda, en un rato más pondre aqui lo poco que he entendido, gracias de antemano.Edito: Se me olvido decir que debe de ser con software de Microsoft, otro equipo explicará con borland
int main(int argc, char** argv){ __asm int 3;}
hay un libro que trata el tema que preguntas, se llama "programacion para pc ibm y compatibles", trae y enseña como se puede jugar con c y con asm, le dedica un capitulo entero, tiene una tapa verde, supongo que con c++ debe ser algo parecido (igual seria inutil usar interrupciones en un programa de asm que es llamado por otro de c++, imaginate que quiero hacer algo en asm que imprima "hola mundo", debes llamar interrupciones y mover valores muy especificos) bye !