[Ubuntu-PT 10558] Re: A codificação em código binário e assembly são atualmente necessários?

Tiago Gala tiago.gala gmail.com
Quinta-Feira, 11 de Setembro de 2014 - 11:26:12 UTC


Em que contexto? É preciso um bocado mais de detalhes para poder responder
a essa pergunta.

Resumidamente: Código binário está relacionado com a representação que o
computador faz das coisas e sim, é extremamente útil. A configuração de
hardware normalmente é feita através da escrita de determinados bits em
determinadas posições (consoante a configuração que se queira fazer), a
esse nível normalmente só podemos escrever 1, 2 ou 4 bytes de cada vez (1
byte = 8 bits), portanto se eu quiser forçar o bit 3 ao nível lógico "1"
tenho que fazer algo do género: word8bit = word8bit | 0b00001000 (com
operações booleanas). Isto é só um exemplo de muitos.

Quanto ao assembly, sim continua a ser necessário por uma simples razão,
quando se escreve código numa linguagem de alto nível (C, C#, etc...) o
compilador vai converter cada instrução ou conjunto de instruções para
assembly primeiro, tenta fazer alguma optimização (evitar calcular coisas
que não irão ser necessárias) e depois converte o assembly para código
máquina. A questão é que o compilador só sabe optimizar até um determinado
ponto (normalmente podemos escolher optimizações mais ou menos agressivas,
optimizadas para o consumo de memória ou para rapidez, etc.). O objectivo
de escrever um programa em assembly (ou um trecho dele, o C tem uma função
inline que nos deixa escrever assembly no meio do código C) é podermos
fazer optimizações "à unha" que o compilador não consegue fazer por o
programador ter um conhecimento melhor das condicionantes do ambiente.

Concluindo: Sim, saber binário e hexadecimal é absolutamente necessário (a
quem quer programar), assembly não é essencial, dependendo do tipo de
trabalho que se faça.

2014-09-11 0:25 GMT+01:00 françai s <romapera15  gmail.com>:

> A codificação em código binário e assembly são atualmente necessários?
>
> --
> ubuntu-pt mailing list
> ubuntu-pt  lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-pt
>


More information about the ubuntu-pt mailing list