Oficina
3. Curso relâmpago de Assembly
Sex 25 Mai 2007 20:08 |
- Detalhes
- Categoria: Sistemas Operacionais
- Atualização: Domingo, 12 Abril 2009 12:27
- Autor: vovó Vicki
- Acessos: 51162
MÓDULO 3 do SO Numaboa
Um dos requisitos para poder começar a pensar em criar um sistema operacional é conhecer a linguagem de programação Assembly (não é programação assembler, é Assembly mesmo ).
Isto você já sabe (se leu o tutorial anterior), pois o Assembly é a melhor forma que temos para nos comunicarmos com o processador. Se você não tiver a mínima noção do que se trata, sugiro que se dedique um pouco ao assunto. Na Aldeia NumaBoa você encontra alguma coisinha. Para aqueles que não querem se aprofundar no Assembly, para os que já têm algum conhecimento da linguagem ou para os mais preguiçosos, basta seguir este Curso Relâmpago.
Se você conseguir acompanhar e entender o texto - tudo bem, vá em frente. Se não for este o caso, sugiro que desista deste tutorial, pelo menos por enquanto
Ferramentas
- NASM - o compilador Assembly. As versões mais atualizadas e a documentação estão disponíveis para download no site oficial do NASM. A versão 0.98.39 para Windows está disponível aqui na Aldeia na seção de downloads (Informática / Compiladores).
- helpPC - Onde você encontra todas as referências imagináveis. Faça o download do helppc versão 2.1 aqui na Aldeia (downloads Informática / Referências e Manuais) ou procure-o pela Internet.
A linguagem Assembly
Todo processador possui um conjunto de instruções próprio. É como se fosse uma "linguagem" embutida dentro da CPU. Cada instrução possui um código operacional e realiza determinada tarefa dentro do processador utilizando seus registradores. Estes códigos são identificados por números. Na linguagem Assembly estes números são transformados nos chamados mnemônicos para facilitar a programação. Assim, por exemplo, o número hexadecimal B2 (178 decimal) corresponde a MOV DL em Assembly. MOV é o mnemônico de MOVer e DL é o byte menos significativo do registrador DX.
Os registradores
Registradores são áreas de trabalho especiais dentro do microprocessador projetadas para trabalharem com códigos operacionais. São uma espécie de "memória" da CPU e servem para armazenar informações temporariamente.
Os registradores mais utilizados são 8, chamados de uso geral. Destes, usaremos com frequência apenas 4: AX, BX, CX e DX. Estes registradores podem armazenar 16 bits, ou seja, 2 bytes (nas máquinas de 32 bits, assim chamadas porque os registradores da sua CPU podem armazenar 32 bits, estes mesmos registradores recebem os nomes de EAX, EBX, ECX e EDX).
Não é à toa que os registradores receberam estes nomes: AX é também o Acumulador, BX é a Base, CX é o Contador e DX vem de Dados. Os nomes derivam do uso mais frequente destes registradores.
Com Assembly podemos acessar diretamente os dois bytes (2 bytes = word) dos registradores de 16 bits ou podemos acessar diretamente o byte mais significativo ou superior (high) ou menos significativo ou inferior (low). Assim, por exemplo, podemos usar instruções com AX (word), AH (byte superior de AX) ou AL (byte inferior de AX), com BX, BH ou BL, etc.
É claro que existem mais registradores, mas não precisaremos deles por enquanto.
A instrução MOV
Esta instrução, uma das mais usadas, copia dados de um local para outro e o mnemônico deriva de MOVer. Veja alguns exemplos de uso:
A instrução INT
A instrução INT gera uma interrupção de software. O DOS e a BIOS fornecem muitas funções úteis que podem ser acessadas através desta instrução:
- Anterior
- Próximo >>