• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Ribamar

Implementação de uma função usando IA-32

2 mensagens neste tópico

Boas.

Num trabalho da cadeira de PICC (Programação Imperativa em C e C++) é pedido o seguinte:

1) Usando a linguagem assembly da IA-32, implemente a fução return_n(int n), cujo objectivo

é retornar n stack frames a partir da função chamadora. Considere que as stack frames são de

funções em C e que têm o EBP da função chamadora mesmo que não existam variáveis locais na

função chamada.

Como exemplo, considere a seguinte sequência de chamadas:

Main()  f(…)  g(…)  w(…)  return_n(3)

Após a execução de return_n(3), o fluxo de execução continua em main na instrução a seguir

à chamada da função f.

Estou um bocado à nora, não sei por onde começar, alguma ideia?

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes começar por estudar o formato do stack de C, porque há sempre um apontador no stack actual para a stack frame anterior. Depois de colocares o stack pointer a apontar para o sítio certo, é só ret. Claro que é mais simples dizer que fazer, mas se não percebi mal a pergunta, também não me parece muito complicado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora