Una forma de hacerlo podría ser escribir una extensión (C) para Python. Puede consultar la documentación this para obtener detalles completos sobre cómo hacerlo.
Otra forma de desarrollar extensiones de Python basadas en C sería interactuar directamente con una biblioteca externa utilizando el módulo ctypes.
En cualquier caso, necesitaría algún código C compilado en una biblioteca o una extensión y una forma de llamarlo desde Python. Claramente, para lo que quiere lograr esto probablemente no sea óptimo, pero en realidad no es tanto trabajo exponer algunas funciones.
Con su ejemplo, solo obtendrá la pila puntero del intérprete, que no tiene sentido en el contexto de su programa. Entonces, lo que querías hacer no funcionaría, de todos modos. – hirschhornsalz
no es asm solo un pequeño ejemplo que se ejecuta dentro de otro idioma. No me refiero en realidad a que quiera obtener la dirección del puntero de la pila ... –
Esa función no funciona como una función en línea. Realmente necesitas '__tribuir __ ((noinline))' en él o algo así. De lo contrario, simplemente insertará un 'mov% esp,% eax' en cualquier lugar en el que esté en línea, donde el compilador podría estar usando EAX para otra cosa. Deberías usar 'asm (" mov% esp,% 0 ":" = rm "(retval));'. Además, depende del tipo de retorno implícito C89 (de 'int') en la declaración. Además, obtener ESP es un ejemplo realmente malo para algo que usar de Python. Tal vez mostrar usando una instrucción BMI2 como 'pext'? –