Tutorial de asm!
Death Knights Issue 3
by HunterHeads
bom pra aprender um pouquito de asm.. melhor agente comecar pelo basico... vou def. umas coisitas. aqui pra ter melhor ideia sobre. Sistema Computacional.
- Chamamos de Sistema Computacional a completa configuracao de um computador, incluindo os perifericos e o sistema operacional.
- Processador Central.
E tambem conhecido por CPU ou Unidade Central de Processamento, que por sua vez e composta pela unidade de controle e unidade de logica e aritmetica.
Sua funcao consiste na leitura e escrita do conteudo das celulas de memoria,regular o trafego de dados entre as celulas de memoria e registradores especiais, e decodificar e executar as instrucoes de um programa.
O processador tem uma serie de celulas de memoria usadas com frequencia e, dessa forma, sao partes da CPU. Estas celulas sao conhecidas com o nome de registradores. Um processador de um PC possui cerca de 14 registradores.
Como os PCs tem sofrido evolucao veremos que podemos manipular registradores de 16 ou 32 bits.
A unidade de logica e aritmetica da CPU realiza as operacoes relacionadas ao calculo simbolico e numerico. Tipicamente estas unidades apenas sao capazes de realizar operaoees elementares, tais como: adicao e subtracao de dois numeros inteiros, multiplicacao e divisao de numero inteiro, manuseio de bits de registradores e comparacao do conteudo de dois registradores.
Computadores pessoais podem ser classificados pelo que e conhecido como tamanho da palavra, isto e, a quantidade de bits que o processador e capaz de manusear de uma so vez. aham ..
Unidades de Entrada e Saida. entra .sai . entra sai colx.
Para que o computador possa ser util para nos se faz necessario que o processador se comunique com o exterior atraves de interfaces que permitem a entrada e a saida de informacoes entre ele e a memoria. Atraves do uso destas comunicacoes e possivel introduzir informacao a ser processada e mais tardeM visualizar os dados processados. Algumas das mais comuns unidades de entrada sao o teclado e o mouse. As mais comuns unidades de sa!da sFo a tela do monitor e a impressora.
Memoria Principal. nao eh o seu cerebro nah k?
E um grupo de celulas,que eh fabricada com semi-condutores, usada para processamentos gerais, tais como a execucao de programas e o armazenamento de informaGdes para operacoes.
Cada uma das celulas pode conter um valor numerico e capaz de ser enderecada, isto e, pode ser identificada de forma singular em relacao a outras celulas pelo uso de um numero ou endereco.
O nome generico destas memorias e Random Access Memory ou RAM. A principal desvantagem deste tipo de memoria e o fato de que seus circuitos integrados perderem a informacao que armazenavam quando a energia eletrica for interrompida, ou seja, ela e volatil. Este foi o motivo que levou E criacao de um outro tipo de memoria cuja informacao nao e perdida quando o sistema e desligado. Estas memorias receberam o nome de Read Only Memory ou ROM.
-x-x-x-x-...
Bom bora parar. .de falar merda. e vamos logo ao que interessa cof cofx.
-x-x-x-x-x
vamos conhecer melhor registradores..
sao grupos de 8 ou 16 flip-flops..<- ummm interesting
Um flip-flop e um dispositivo capaz de armazenar 2 niveis de voltagem, um baixo, geralmente 0.5 volts, e outro comumente de 5 volts. O nivel baixo de energia no flip-flop e interpretado como desligado ou 0, e o nivel alto, como ligado ou 1. Estes estados sao geralmente conhecidos como bits, que sao a menor unidade de informacao num computador.
Um grupo de 16 bits e conhecido como palavra; uma palavra pode ser dividida em grupos de 8 bits chamados bytes, e grupos de 4 bits chamados nibbles.
Sistemas numericos bola difinir isto cof. nao eh os numelo de 1 - 10 nao k?
O sistema numerico que nos usamos diariamente e o decimal, mas este sistema nao e conveniente para maquinas, pois ali as informacoes tbm serao codificadas de modo a interpretar os estados da corrente (ligado-desligado) ;) este modo de codigo faz com que tenhamos que conhecer o calculo posicional que nos permitir expressar um numero em qualquer base onde precisarmos dele.
E possivel representar um determinado numero em qualquer base atraves das seguinte formula:
M
Onde n e a posicao do digito, iniciando da direita para a esquerda e numerando de 0. e B o digito sobre o qual nos operamos e B e a base numerica usada.
-como agente pode conv. numeros binarios para decimais O sistema binario e baseado em apenas duas condicoes ou estados, estar ligado(1), ou desligado(0), portanto sua base e dois. Para a conversFo, podemos usar a formula de valor posicional:
Por exemplo, se tivermos o n#mero binario 10011, tomamos cada digito da direita para a esquerda e o multiplicamos pela base, elevando ao potencial correspondente E sua posicao relativa:
Binary: 1 1 0 0 1
Decimal: 1*2^0 + 1*2^1 + 0*2^2 + 0*2^3 + 1*2^4
= 1 + 2 + 0 + 0 + 16 = 19 decimal.
O caracter ^ e usado em computacao como simbolo para potencia e * para a multiplicacao.
agora como conv. numero decimal pra binario :)
melhor forma a conversao com calculadora cientifica.. ou tu quer ficar 30
min fazendo conta? heeh, e muito mais facil, mas nem sempre podemos contar com isso, logo o maisM conveniente e, ao menos, sabermos uma formula para faze-la.
O metodo resume-se na aplicacao de divisiveis sucessivas por 2, mantendo o resto como o digito binario e o resultado como o proximo numero a ser dividido.
Tomemos como exemplo o numero decimal 43.
43/2=21 e o resto e 1; 21/2=10 e o resto e 1; 10/2=5 e o resto e 0;M
5/2=2 e o resto e 1; 2/2=1 e o resto e 0; 1/2=0 e o resto e 1.M
Para construir o equivalente binario de 43, vamos pegar os restos obtidos de baixo para cima, assim temos 101011.
Sistema hexa
Na base hexadecimal temos 16 d!gitos, que vao de 0 a 9 e da letra A ate a F,estas letras representam os numeros de 10 a 15. Portanto contamos:
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E, e F.
A conversao entre numeros binarios e hexadecimais e facil. A primeira coisa a fazer e dividir o numero binario em grupos de 4 bits, comecando da direita para a esquerda. Se no grupo mais E direita sobrarem d!gitos, completamos com zeros.
Tomando como exemplo o numero binario 101011, vamos dividi-lo em grupos de 4 bits:
10;1011
Preenchendo o ultimo grupo com zeros (o um mais a esquerda):
0010;1011
A seguir, tomamos cada grupo como um numero independente e consideramos o seu valor decimal:
0010=2;1011=11
no proximo zine vamos entrar finalmente ao comeco de programacao asm...
c_yax
HunterH@DeathKnights.com