Estoy un poco confundido en cuanto a cómo devolver un valor de un método en lenguaje ensamblador. Hasta donde yo sé, el registro eax se usa para mantener el resultado que se debe devolver.Resultado devuelto a eax (lenguaje ensamblador IA-32)
A modo de ejemplo, digamos que mi resultado es 4 y utilizo:
mov eax, 4
ahora tengo 4 en EAX y quiero volver a este método. ¿Hay algo que necesite hacer o la instrucción ret
devolverá automáticamente el resultado?
Lo que pasa es que yo no sé qué tiene de especial registro eax
ya que cuando uso ret
vuelvo a la persona que llama, y la persona que llama es libre de acceder a cualquiera de los registros que almacenan el resultado a, ¿por qué No podría haber usado ebx
o ecx
con el resultado almacenado en su lugar?
Pensé que esta convención en particular estaba un poco más extendida, incluyendo más que GCC. ¿Conoces algún compilador común que no use esta convención? –
No. Pero todo es posible con las convenciones. –
@Mr. Shickadance: aunque no es exactamente convencional (no se puede llamar desde el código de usuario), algunos ayudantes del compilador Delphi usan ZF para devolver un resultado booleano. –