Estoy trabajando con el ensamblado ARM, donde tengo que escribir una subrutina para la cual sigo la convención de llamadas ARM (esto tendrá que integrarse con alguna implementación separada de nivel superior en algún lado else) para pasar parámetros y devolver valores. Ahora aquí hay algo que no estoy seguro en general cuando se trabaja con ensamblaje.Pasando parámetros y valores de retorno para una subrutina en el ensamblaje
De acuerdo con la convención, si entiendo bien, los argumentos se pasan en orden comenzando por los registros r0 - r4 y luego por otros argumentos se usan pilas. Los valores de retorno se pasan a r0.
Ahora aquí es con lo que estoy confundido. Si se supone que debo guardar el contexto de r0 y desactivarlo después de que no haya forma de devolver el resultado, la única forma en que se puede hacer es corromper el primer argumento. ¿Hay alguna solución de alguna manera? ¡Gracias de antemano chicos!
Supongo que es responsabilidad del que llama guardar el contexto de r0 antes de invocar la función. – as3rdaccount
Desde el enlace que publicó: * "r0 a r3: utilizado para mantener los valores de argumento pasados a una subrutina, y también mantener los resultados devueltos desde una subrutina" *. – m0skit0