Aldeia Numaboa
Um portal diferente em Português |
Linguagem Perl - Loops e Saltos
Perl+CGI - Um script de verdade
2775 registros
4 hoje
14 nesta semana
55 neste mês| 88,2% | | Brasil |
| 9,2% | | Portugal |
| 0,8% | | EUA |
| 0,2% | | Espanha |
| 0,1% | | Alemanha |
| Hoje: | 298 |
| Ontem: | 1831 |
| Esta semana: | 8618 |
| Semana passada: | 13257 |
| Este mês: | 38359 |
| Mês passado: | 49141 |
| Total: | 104079 |
|
Sex 25 Mai 2007 21:08 |
|
Página 1 de 6
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
A linguagem AssemblyTodo 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 registradoresRegistradores 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 MOVEsta 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: mov ax, 1 ; Move 1 para AX, ou seja, AX = 1 mov bx, ax ; Move o valor de AX para BAX, ou seja, BX = AX mov cl, 0x12 ; CL = 12 hex (CL = o byte baixo de CX) mov ch, 0x34 ; CH = 34 hex (CH = o byte alto de CX) mov dx, 0x3412 ; DX=3412hex, DH=34hex, DL=12hex A instrução INTA 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: INT 0x10 ; chama uma interrupção 10hex de software |
||||||||
| Última atualização ( Seg, 14.04.2008 23:57 ) |
|