Murilo :P

C++, Computação, Programação, Web e afins :)

Posts Tagged ‘asm

Linguagens de Montagem Aula 5 – Memória

with one comment

Segmentação

  • Armazenamento de dados – escrever/ler
  • Manutenção da pilha – escrever/ler
  • Armazenamento de código – ler

Diretiva segment

Modo de uso:

segment .nome

Exemplo:

segment .data
segment .data

Indica o início de declarações pertencentes ao segmento de dados que contém somente dados inicializados.

Read the rest of this entry »

Advertisements

Written by Murilo Adriano

17 de February de 2008 at 21:44

Posted in Assembly, Baixo nível

Tagged with , ,

Linguagens de Montagem Aula 3 – Ferramentas Para A Programação Em Assembly

leave a comment »

Descreverei agora algumas ferramentas para a programação em LM que serão utilizadas nas próximas aulas.

Editor

Qualquer editor de texto puro de seu gosto. Eu particularmente uso o gVIM.

Montador

Nos exemplos usarei o montador (assembler) NASM.

Modo de uso (Linux):
$>nasm -f elf arquivo.asm

Se a montagem ocorrer com sucesso, será criado no mesmo diretório um arquivo chamado “arquivo.o”.

Linker

Depois de montado, o arquivo objeto criado deve ser “linkado”. O linker que utilizaremos será o GCC.

Modo de uso:
$>gcc arquivo.o -o arquivo

Written by Murilo Adriano

30 de December de 2007 at 00:07

Posted in Assembly

Tagged with , ,

Linguagens de Montagem Aula 2 – Representação de Dados

leave a comment »

Nesse post trataremos da convenção de representação de dados que utilizaremos (alguns) com freqüência nas próximas aulas.

Bit:

Armazena duas informações diferentes.

0 ou 1 que pode ser usado por exemplo para significar falso ou verdadeiro.

Nibble:

É um agrupamento de 4 bits contíguos.

3 2 1 0
█ █ █ █ – 16 combinações

^MSB ^LSB

MSB: Bit mais significativo (de maior valor).
LSB: Bit menos significativo (de menor valor).

Byte:

8 bits contíguos, ou seja, 2 nibbles.

█ █ 15 █ █ █ █ █0
MSB █ █ █ █ █ █ █ █
LSB
█ █ █ HON LON

HON: Nibble de maior ordem.
LON: Nibble de menor ordem.

Word:

16 bits = 4 nibbles = 2 bytes = 65.536 combinações diferentes.

0 15
█ █ █ █ █ █ █ █
█ █ █ █ █ █ █ █

HOB █ █ █ █ █ LOB

HOB: Byte de maior ordem
LOB: Byte de menor ordem

Double word:

32 bits = 8 nibbles = 4 bytes = 2 words = 4.294.967.296 combinações diferentes.

Quad word:

64 bits = 16 nibbles = 8 bytes = 4 words = 2 dwords = 18.446.744.073.709.551.616 combinações diferentes.

Ten bytes:

80 bits = 20 nibbles = 10 bytes = 5 words (usado em ponto flutuante extendido no IA32)

Parágrafo:

Possui 16 bytes e o endereço do 1º byte sempre é múltiplo de 16.

Página:

Possui 16 parágrafos e o endereço do 1º byte sempre é múltiplo de 256.

Written by Murilo Adriano

29 de December de 2007 at 14:30

4 eBooks que estou lendo

leave a comment »

Ebooks que estou lendo e recomendo à quem gosta de programar.

Análise de quebra de proteção de software – monografia de dois alunos da universidade que estudo sobre quebra de proteção de software, engenharia reversa, arquitetura IA-32 e assembly compatível com o montador NASM.

Programação Orientada a Objeto em C++ UML – STL – GNU/Linux – Completíssimo. Desde o basicão mesmo até o mais avançado em C++, com boa didática e muitos exemplos. Aborda também AOO com UML e programação para GNU/Linux.

PC Assembly Language (inglês) – Muito bom mesmo. Em inglês “fácil”, o autor também explica desde o mais básico (como sistemas numéricos). Se você tem interesse em começar a estudar assembly, esse é um ótimo ponto de partida.

Art of Programming Contest SE  (inglês) – Esse livro foi feito para os que gostam de contests de programação. Basicamente explica algoritmos, ensina técnicas de programação, programação em C e algumas outras coisas. Vale a pena conferir.

Written by Murilo Adriano

15 de November de 2007 at 01:16