Breve Introdução à Programação

Olá gente! Cá estou eu, Daniel Paulino com masis um artigo sobre programação, sem dúvida nenhuma quem me conheçe me perguta porque por um artigos sobre o assunto já que sou assumidamente fã de design e não só lá muito hábil no ramo de programar. Apesar de não gostar, adoro o assunto, pois assim, ponho em prática o raciocínio lógico das coisas. Pois bem vamos la!

Por | @DanielPaulinoS Programação
Olá gente! Cá estou eu, Daniel Paulino com masis um artigo sobre programação, sem dúvida nenhuma quem me conheçe me perguta porque por um artigos sobre o assunto já que sou assumidamente fã de design e não só lá muito hábil no ramo de programar. Apesar de não gostar, adoro o assunto, pois assim, ponho em prática o raciocínio lógico das coisas. Pois bem vamos la!

No começo, programar um microprocessador para executar uma determinada tarefa não era uma das coisas mais fáceis que existiam. O programador estava preso a utilizar-se da Linguagem de Máquina, que era a programação diretamente em binário ou em hexadecimal. Guardar o que cada código, ou seja, cada número binário ou seu equivalente em hexadecimal significava para o microprocessador, não era fácil. Logo foi criada a primeira linguagem de programação, a linguagem Assembly. Na linguagem assembly, cada código que possui um significado especial para o microprocessador - que é chamado de instrução - recebe um nome, chamado genericamente de Mnemônico. É muito mais fácil de se memorizar um nome do que um código qualquer, além de ser muito mais fácil de se programar por nomes. Por exemplo, uma comparação típica (você não precisa ainda saber o que exatamente significa tudo isto, o objetivo aqui é a comparação):

Microprocessador 8086

Ling. de máquina           Assembly
B0 FF         MOV AL, 0FFh
A2 00 20                 MOV [2000h], AL

Microprocessador 6800

Ling. de máquina           Assembly
86 FF         LDA A, # FF
97 00 20                 STA A, $2000

Microprocessador 6502

Ling. de máquina           Assembly
A9 FF         LDA # FF
8D 00 20                       STA $2000

O que significa isto tudo e qual o nosso objetivo com isto ? Todos os três programas para os três microprocessadores apresentados executam a mesma tarefa: colocar o valor 255 na posição de memória 2000h. Você deve ter reparado duas coisas. A primeira, o assunto que nós estávamos discutindo: é muito mais fácil programar em assembly do que em linguagem de máquina (é muito mais fácil você guardar MOV AL do que B0, por exemplo). A segunda, que para cada microprocessador possuímos um conjunto de instruções próprio. Ou seja, não há qualquer correlação entre as instruções dos diversos tipos de microprocessadores existentes no mercado. O que estipulará uma família de microprocessadores será justamente a existência de uma similaridade no conjunto de instruções dos microprocessadores que constituam uma família. Por assim dizer, um 8086, um 8088, um 80286, um 80386 etc. constituem uma família de microprocessadores por possuírem instruções similares. Quem sabe programar em assembly em um 8086 saberá programar em um 80286, salvo, é claro, as instruções adicionais que cada microprocessador possuirá e que não será muito difícil aprender. Esta família de microprocessadores é chamada Intel Iapx86, 80x86 ou simplesmente Intel e é a família de microprocessadores que está presente no padrão IBM PC de microcomputadores. Outros microprocessadores como o 6800, o 68000, 68020, etc. constituem uma outra família de microprocessadores, por possuírem instruções similares entre si, porém completamente diferentes da família Intel. Esta outra família é chamada 680x0 ou simplesmente Motorola e é a família de microprocessadores que está presente em microcomputadores como o MacIntosh, o Amiga e estações de computação gráfica.

Porém devemos lembrar que mesmo sendo o Assembly uma linguagem de baixo nível, o microprocessador não a entende - ele entende somente linguagem de máquina. O microprocessador não sabe o que é MOV AL, o mnemônico para a instrução B0. Ele entende somente números, e portanto só sabe interpretar B0. Esta conversão pode ser feita basicamente de duas maneiras: ou “na mão” mesmo, utilizando-se a tabela de instruções fornecida pelo fabricante ou utilizando-se de um programa para tal. Este programa é chamado genericamente de Assembler, ou seja, montador. O Assembler lê um programa lido em Assembly e converte-o para linguagem de máquina. Entenda que não há qualquer tipo de tradução indireta: a linguagem Assembly é apenas os opcodes (números que representam instruções específicas) com um rótulo particular, chamado, como vimos, mnemônico.

Ufa! Acabou por enquanto galera, espero que tenhas gostado e assim façam diferente de mim que não me dou muito, estudem! Qualquer dúvida ou sugestão deixa o comentário ai e se possível siga-me no twitter @DanielPaulino. Tchau!

DESTAQUESRecomendado
Mais compartilhados
Comentários
Continue lendo