Je viens de commencer à bricoler avec ASM et je ne suis pas sûr si ma compréhension des appels de procédure est correcte.Comment fonctionnent les appels de procédure dans l'assembleur?
dire à un moment donné dans le code il y a un appel de procédure
call dword ptr[123]
et la procédure se compose d'une seule commande, RET:
ret 0004
quel serait l'effet de cet appel de procédure , et où la valeur de retour serait-elle stockée? J'ai lu quelque part qu'une valeur de retour de 2 octets serait stocké dans AX, mais quand je remplace l'appel de procédure par
mov AX, 0004
(ainsi que les PON nécessaires) le programme se bloque.
merci! la plupart des tutoriels que j'ai googlé simplement utilisé ret, et n'a pas expliqué l'opération ret immédiate. Je suis devenu plus confus quand l'assembleur LLVM avait apparemment une commande "ret". –
int3
Y at-il une raison pour laquelle RET peut retourner à un endroit autre que l'appel? Je viens de créer une question et j'ai trouvé ceci dans les questions connexes – lisovaccaro
oui, si vous avez manipulé l'adresse de retour que 'CALL' a poussé sur la pile. –