Pregunta

Me estoy haciendo confundir con todos esos términos:

ABI, el convenio de llamada, y la arquitectura de hardware.

El ITB es el enlace con la arquitectura: x86-64 tener un ABI diferente que el i386. Pero entonces también puede definir su propia convención de llamada cdecl ...

Bueno, así que lo que es el vínculo entre todos aquellos concepto? ¿Cuál es la definición de la otra?

Parcialmente creo que estoy confundir con ABI. ¿Qué se pone dentro de una parte de la convención de llamada?

Gracias

¿Fue útil?

Solución

Este es un tema muy amplio todavía para darle algunos consejos:

El ABI (interfaz binario de la aplicación) cubren los detalles que deben ser determinados con el fin de que la aplicación puede trabajar en un determinado sistema (por lo general con un sistema operativo). Por lo tanto, para llegar a ejemplos:

  • tamaños de tipos de datos (por ejemplo estándar C da sólo requisitos mínimos de los tipos. Tipo int debería al menos tan grande como corta, y corto tiene que ser de 16 bits.)
  • diseño en memoria de las estructuras y los campos de bits
  • convención de llamada (cuando se invoca una función donde pueda encontrarlo de parámetros, que en los registros, que en la pila, etc)
  • marco de pila (lo que está presente en la pila, útil para un depurador)
  • números de llamada al sistema
  • otros

Básicamente, cualquier detalle que se necesita saber con el fin de construir un programa que se ejecuta junto con algunos otros componentes (bibliotecas, OS) se puede incluir en un ABI. Algunos ABI especifica más y otras menos especificar detalles.

La arquitectura de hardware puede ser también visto como una especificación, pero de nivel aún más bajo (se trata de hardware no software). La arquitectura de hardware especifica cosas como el conjunto de instrucciones, la jerarquía de memoria disponible y la forma de los periféricos de acceso. Por una arquitectura de hardware no puede haber diferentes ABI-s. También se puede tener la misma ABI para múltiples (pero por lo general similar) arquitectura de hardware.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top