| INTRODUÇÃO | |||
ASSEMBLY significa construir, juntar partes. É também o nome de uma linguagem de programação. Assembler significa construtor e é o nome que se dá a programas que "juntam partes", que "constroem" programas. A linguagem Assembly é considerada difícil e complicada por ser uma linguagem de baixo nível. Talvez... dê uma olhada e decida se a fama se justifica. Na minha opinião, a melhor maneira de começar é APRENDER FAZENDO. É claro que vai ser preciso saber O QUE fazer, PORQUE fazer, ONDE, PARA QUE e COMO fazer. Tudo isto você vai encontrar nos textos de apoio, nas referências e nos tutoriais. |
|||
Geralmente é uma romaria conseguir material técnico (sobre CPUs, modelos de memória, etc) e material didático de qualidade. Geralmente os artigos e/ou livros são muito superficiais, ou são incompletos, ou ainda são uma enrolação que mais atrapalha do que ajuda. Além disso, a gama de informações necessárias é um tanto ampla e se perder no emaranhado dos tutoriais são "dois palitos". Tem mais um detalhe: adquirir todos os livros, revistas e software necessários pode ficar muito caro. Além do mais, não é fácil encontrar literatura especializada em Português! Mas porque JUSTO ASSEMBLY? Cada um tem suas próprias razões para começar ou continuar a usar esta linguagem. As minhas você pode ver em Porque Assembly? Resolvi dividir o que pude aprender com textos que encontrei na web, livros, manuais e... muitas horas de programação, testes e pesquisas. Se houver alguma imperfeição, peço que me alerte; se faltar alguma coisa, agradeço toda e qualquer contribuição; se tiver dúvidas, faça contato. É claro que é preciso ter noções de programação. Se você nunca viu Assembly pela frente, não se preocupe. Vá seguindo o roteiro proposto que em três tempos estará produzindo seus programas. No mais... este é o meu tributo aos escovadores de bits. Divirtam-se! |
|||
Algumas coisas precisam ficar bem claras para começarmos com o pé direito. Nosso objetivo será criar programas em linguagem assembly para máquinas com processadores Intel e com o sistema operacional Windows de 32 bits. Antes de começar, existem alguns tópicos interessantes que deveriam ser conhecidos. Se você encontrar dificuldades em algum texto, não desanime e não se preocupe. Vá tocando em frente e, depois de algum tempo, volte ao texto. Você vai ver que as coisas vão ficando cada vez mais claras e coerentes.
|
|||
|
|||
|
|||
GoAsm: no site do Jeremy Gordon, Win32 + Assembler Source Page, você encontra de tudo para a programação Assembly de 32 bits para Windows 95/98/ME ou NT/2000/XP. Tem praticamente tudo o que você precisa, sendo o sofware disponibilizado gratuitamente pelo autor, desde o Assembler até o Compilador de Recursos, Linker, Debugger e Editor. Além disso, Informações, Tutoriais, Exemplos de código e demos (site em Inglês). MASM32: a maioria dos tutoriais desta série baseiam-se no MASM. Encontrei um pacote excelente no site do hutch que inclui o MASM, todas as bibliotecas e arquivos de inclusão imagináveis, exemplos, tutoriais, uma IDE muito azeitada e uma pá de utilitários e ferramentas para facilitar o trabalho. Este pacote está na sua versão 8, é constantemente atualizado e, o melhor da história, é "de grátis". Às vezes fica difícil encontrar os pacotes do hutch, por isso coloquei o pacote completo do MASM32 versão 8 (3 Mega) à disposição para download aqui na Aldeia. OllyDbg: é interessante dar uma olhada no código do programa que é mapeado na memória quando ele é executado. Também é muito interessante executar o programa passo a passo (ou melhor, instrução por instrução) para ver como ele se comporta. Para isto utiliza-se programas especiais chamados de debugadores. Tenho especial predileção pelo OllyDbg, um programa gratuito que você encontra no site do autor em http://home.t-online.de/home/Ollydbg/. O debugador clássico é o SoftIce, caro pra caramba e também bom pra caramba. |
Se você for programar para Windows, com certeza vai precisar de uma referência das funções da API do Windows. Se você já tem o Delphi ou o C++ instalado no seu computador, procure no diretório Help pelo arquivo .hlp correspondente. No site da Microsoft com certeza você também vai encontrar. Um dos melhores arquivos de referência é o que acompanha a excelente plataforma de desenvolvimento para C, o lcc-win32, no site do autor Jacob Navia e no endereço FTP ftp://ftp.cs.virginia.edu/pub/lcc-win32/. |
Tabela ASCII: Os caracteres da tabela ASCII e seus valores decimais e hexadecimais. Principais funções da API do Windows: É o tipo de referência que é consultada a toda hora. Nas "Tabelas e Referências oicìliS" apenas as funções mais utilizadas estão descritas. Arquitetura Intel: ARQUITETURA INTEL dos processadores 8086 / 80186 / 80286 / 80386 / 80486. Mnemônicos e Códigos Operacionais: Lista (quase que) completa dos mnemônicos e opcodes (instruções Intel). Caixa de Ferramentas: Snippets de código, modelos, macetes... tudo o que uma boa caixa de ferramentas precisa ter. |
Sistemas de Notação Numérica: Decimais, Binários, Hexadecimais, Octais e até BCD. O básico dos sistemas de notação numérica mais utilizados. Lógica Boleana: Pratique AND, OR, XOR e NOT com bits. É a melhor forma de entender a lógica das operações. Códigos Operacionais e Mnemônicos: O que são códigos operacionais de um processador. O que são mnemônicos e para que servem. Registradores: O que são registradores e como funcionam. As instruções mais comuns: As instruções mais utilizadas em Assembly e a lógica da utilização. Pequeno resumo para quem está começando. Trabalhando com Estruturas: Manusear dados em bloco e agrupá-los de forma que possam ser endereçados como uma unidade. |
Por onde começar: Aquela parte inicial, chata pra caramba, mas que não adianta ignorar pois vai fazer falta mais tarde. Conheça um pouco do MASM e qual é a estrutura de um programa. O folgado: Aprender fazendo, este é o segredo. Neste tutorial ainda tem muita teoria e o primeiro resultado é, no mínimo, frustrante. Mas não desanime: veja como fazer a API do Windows trabalhar para você. (tutNB01.zip - 12 Kb) Message Box NumaBoa: Inicializando variáveis para serem usadas pela função escolhida, operadores especiais do MASM para facilitar nossa vida e, finalmente, uma JANELA ! (tutNB02.zip - 13 Kb) Janelas - Módulo I - Projetando e Registrando uma Classe: Como criar uma janela "de verdade" e o sistema de classes. Conheça a "burocracia" do Windows e prepare-se para fabricar suas próprias janelas. (tutNB03.zip - 34 Kb) Janelas II - Módulo II - Usando uma classe recém-criada: Aprenda como pôr seus "gerentes" na linha e a fazer com que trabalhem de acordo com as regras do sistema. (tutNB03.zip) NumaBoa com Recursos: Criando uma janela com "algo mais". Introdução aos Recursos (resources) e sua aplicação. Controles que na verdade são janelas-filha. Usando o sistema de mensagens para mostrar gráficos. (tutNB04.zip - 75 Kb) Pintando Texto: Texto como objeto GUI. Pegando um gancho na mensagem WM_PAINT. Entendendo o que são modelos de contexto (device context) e retângulos inválidos. (tutNB05.zip - 21 Kb) Janela Numaboíssima: Saindo do convencional. Um tutorial de três módulos para criar uma janela com a forma e o aspecto que você quiser. (tutNB06.zip - 124 Kb) Peles: Trocando as peles da janela. Complementando o código fonte da "Janela Numaboíssima" é possível fazer a janela trocar de pele (ou máscara, como quiser). (tutNB07.zip - 153 Kb) Menus: Um pouco mais de recursos. Como escrever um recurso de menu, como incorporá-lo à sua janela e como gerenciar seus itens. Fácil, fácil. (tutNB08.zip - 15 Kb) Menu Malandro: Trabalhando com variáveis do sistema. Brinque com o usuário. Resolução de tela, coordenadas de janelas, data e hora do sistema são algumas das novidades usadas para criar uma janela que "foge" do cursor do mouse. (tutNB09.zip - 15 Kb) Fontes: Mudando o visual do Menu Malandro. Como trabalhar com fontes e cores. O uso de macros para facilitar a programação. (tutNB10.zip - 21 Kb) Dialog Box: Uma dialog box como janela principal. Facilitando a vida com o uso de classes já definidas e gerenciamento automático. Adicionando componentes economizando programação. (tutNB11.zip - 45 Kb) Ali Babá: Uma dialog box especial para abrir arquivos. As common dialog boxes são classes prontas para serem usadas. Veja como é fácil abrir arquivos e extrair as informações da seleção. (tutNB12.zip - 27 Kb) |
Iczelion's Win32 Assembly Homepage: Um dos melhores sites que encontrei (um clássico da Internet) é o do Iczelion. O menino curte Assembly e, até o momento, já produziu cerca de 60 ótimos tutoriais em inglês baseados no MASM. Você pode fazer o download de tutoriais, software, exemplos de código fonte além de ficar por dentro das últimas notícias e ciscar mais alguns links interessantes. hutch's home page: Steve Hutchesson, de Sidnei (Austrália), é um nome que você vai encontrar com frequência no mundo assembly. Disponibiliza o pacote do MASM32, tools, snippets de códigos e é o autor de diversos softwares (freeware e código aberto) que são a salvação dos iniciantes e uma mão na roda para os experts. |
| Localizador | ||
|
| Localizador || @ Info NumaBoa > oicìliS > Assembly para todos os Gostos Créditos: vovó Vicki webdesign sobMedida by vickiSoft - /informatica/oiciliS/assembler/index.php (12.01.02) versão 1.1 de 31.07.03 Licença Creative Commons 1998-2006 Aldeia NumaBoa Exceto onde especificamente declarado, todo material deste site é disponibilizado de acordo com a Licença Creative Commons. | ||