forked from blau_araujo/pbn
conteúdo da aula 7
This commit is contained in:
parent
c142033bf7
commit
d99402393f
2 changed files with 460 additions and 4 deletions
|
@ -346,7 +346,7 @@ _start:
|
|||
o resultado em um registrador de destino.
|
||||
#+end_quote
|
||||
|
||||
** Acesso definindo 'main' no Assembly
|
||||
** Acesso em Assembly exportando main
|
||||
|
||||
Exportando a rotina principal do programa com o nome =main=, nós podemos gerar
|
||||
o executável com o =gcc= que, utilizando o objeto de inicialização da linguagem
|
||||
|
@ -446,7 +446,7 @@ da linguagem C (=crt0.o=) e outro totalmente em Assembly, mas com um pequeno
|
|||
módulo de sub-rotinas para conversão e impressão que só será estudada nos
|
||||
próximos tópicos.
|
||||
|
||||
** Exemplo híbrido (Assembly+C)
|
||||
** Exemplo em Assembly com main e gcc
|
||||
|
||||
Arquivo: [[exemplos/06/cargs.asm][cargs.asm]]
|
||||
|
||||
|
@ -547,7 +547,7 @@ A volatilidade desses registradores não está relacionada com seu uso antes
|
|||
da chamada da função (=call=), mas com o fato da ABI não obrigar a função
|
||||
chamada a salvar e restaurar seus conteúdos.
|
||||
|
||||
** Exemplo em Assembly puro
|
||||
** Exemplo com acesso direto à pilha
|
||||
|
||||
- Arquivo: [[exemplos/06/args.asm][args.asm]]
|
||||
- Módulo: [[exemplos/06/print_utils.asm][print_utils.asm]]
|
||||
|
@ -640,7 +640,7 @@ argv[4]: d
|
|||
* Exercícios propostos
|
||||
|
||||
1. Crie um programa em Assembly que receba seu nome como argumento e imprima =Salve, NOME!=.
|
||||
2. Crie uma versão desse mesmo programa em Assembly híbrido (chamando funções da linguagem C).
|
||||
2. Crie uma versão desse mesmo programa em Assembly chamando funções da linguagem C.
|
||||
3. Utilizando o GDB e o exemplo =cargs.asm=, analise o comportamento dos registradores voláteis nas chamadas de funções da =glibc=.
|
||||
4. Com base nos exemplos do tópico, crie um programa que liste as variáveis no vetor de ambiente.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue