Red de conocimiento informático - Computadora portátil - Problemas al mezclar el ensamblaje C y x86

Problemas al mezclar el ensamblaje C y x86

test.c contiene el siguiente contenido

extern void pChar(char), //esta función simplemente está declarada, no definida, por lo que no se compila en absoluto.

p >

main()

{

pChar('a');

}

El siguiente contenido está en asamblea El documento está escrito, dejando de lado el tema del idioma por ahora.

1. 8086 es solo un modo de compatibilidad en las computadoras actuales. Este modo es similar a ejecutar un depurador en XP de 32 bits, excepto que no es correcto.

2. No puede ajustar este comando int en Windows. Este es un comando privilegiado y no se puede ajustar directamente. También hay int 10h. Es posible que este 10h no sea una operación de salida. Esto es para verificar los detalles de la tabla de llamadas del sistema de Windows, que es el GDT. Generalmente, es necesario utilizar la depuración del kernel de windbg para verlo.

Por eso recomendamos:

1. Instalar un radasm o masm, que es una herramienta de desarrollo para Windows.

2. Utilice Linux en su lugar. Linux puede actuar directamente como un ensamblador para compilar código ensamblador, o puede usar gcc para compilar directamente y podrá ver los resultados de la ejecución de inmediato.

3. Si realmente desea aprender a ensamblar, no es necesario que simplemente aprenda a ensamblar. Simplemente descargue un vc6.0 ?__asm ​​​​y ensamble directamente en línea para ver el efecto. El lenguaje es leer el código fuente, el propósito es trabajar al depurar el programa y realmente confiar en el ensamblador para escribir el programa, a menos que los requisitos de memoria sean particularmente estrictos, como escribir shellcode. Como se muestra en la imagen a continuación, lo comprenderá. 1 1 = 2 Utilice el ensamblaje directamente en VC.