Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

Ribamar

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

Mensagens Recomendadas

Ribamar    0
Ribamar

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheDark    0
TheDark

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.

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


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade