sexta-feira, 9 de novembro de 2007

C & Assembly - Procedure Call (Procedimento de Chamada)

Acredito que todo programador de C/C++ que pretende ter grande conhecimento em debugging necessita chegar ao assembly. Assim, aqui vai a base do entendimento de assembly, pré-supondo que o leitor saiba programar em C.
Neste primeiro artigo explicarei basicamente como funciona o Assembly e o procedimento de chamada de funções, pois sinto que é o ponto de união mais simples entre a lógica de um programador de C/C++ e a lógica em assembly. Logo farei um post explicando as instruções mais utilizadas no assembly, para facilitar também aqueles que desejarem tomar a Pílula Vermelha (ou seja, programar e/ou debugar um pouco mais afundo em assembly).
Utilizarei o GDB (Gnu Debugger) para exemplificar as funcionalidades, creio que isto trará a teoria quase a prática, já que qualquer um pode usar e testar em casa. Os exemplos serão em Linux, pois é o S.O. (Sistema Operacional) que utilizo, mas, funcionam perfeitamente em qualquer outro sistema.
Para os iniciantes em Assembly, deixo claro que não existem grandes diferenças entre trabalhar com Assembly em Linux, Windows, FreeBSD ou seja lá o que for. Ao menos não para o que colocamos neste tutorial. O que pode mudar é referente ao processador, que consideramos aqui somente x86 (Intel, Athlon, core2duo, etc..)
Leia o artigo completo em:
http://docs.google.com/Doc?id=dgwgq5zv_716sxkzj

Vida Longa e Prospera!

6 comentários:

Weber Ress disse...

PingBack @ www.weberress.com

Anônimo disse...

AEEE Parabéns! Ficou bem legal mesmo!!

Unknown disse...
Este comentário foi removido por um administrador do blog.
Unknown disse...

Opa... ficou muito legal. Deu pra pegar bem, sem firulas. Talvez para melhorar seria legal colocar uma tabela com snapshot do stack nos momentos mais complicados... sem querer abusar :)

Valeu.

ps. Conhece o Guilherme Royer daí de Joinville?

Diego Contezini disse...

Eduardo, primeiro gostaria de agradecer a leitura e ao comentário. Os snapshots creio que vão ajudar sim, colocarei assim que tiver tempo :)
Quanto a conhecer o Guilherme Royer, creio que não o conheço, porem o nome não me é estranho, e da micro-foto do vivaolinux dele, me pareceu conhecido. Então é possivel.. hehehe.
Grande abraço!

Felipe Pena disse...

Muito bom, parabéns.