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

Tiago Gala tiago.gala gmail.com
Sexta-Feira, 12 de Setembro de 2014 - 19:45:43 UTC


Eu sou português, não que isso seja relevante para o caso. A minha área é a
electrónica e não a informática mas tenho muito contacto com programação de
alto nível. Atenção, e penso que salvaguardei esse ponto, CÓDIGO BINÁRIO É
BASTANTE DIFERENTE DE CÓDIGO MÁQUINA!!!
Código binário é apenas a representação em 0's e 1's, assim como código
décimal é a representação em algarismos 0-9 e hexadecimal 0-9,A-F. E sim,
nesse contexto é perfeitamente natural qualquer programador usar qualquer
um dos sistemas de código. Muitas vezes é preciso aplicar máscaras, fazer
shifts e assim e isso facilita bastante a leitura do código. Mas nestes
casos usar binário, hexadecimal ou decimal é perfeitamente intermutável uma
vez que o compilador interpreta SEMPRE aquilo como um número!
Penso que a grande confusão vem de você achar que código máquina é a mesma
coisa que código binário. Código máquina é um conjunto de instruções que o
processador vai interpretar linearmente e sequencialmente (numa abstracção
mais simplistas) e neste caso ele vai olhar para certos bits dentro da
instrução para saber o que copiar para onde, que operações realizar, etc.
aí é mais um caso onde é extremamente benéfico olhar para isto em binário.
Por exemplo, um CPU hipotético recebe uma instrução ADD (simplesmente feita
em hardware), em que vai somar o conteudo do registo R0 ao registo R1 e
guardá-lo no registo R5, se o cpu interpretar o endereço de R0 como 0b0000,
R1 como 0b0001 e R5 como 0b0101 e a instrução ADD tiver um código 0b1110,
esta instrução num cpu hipotetico tem o seguinte formato:

FCOD RDES ROR1 ROR2  (código da função, registo destino, registo origem 1,
registo origem 2), em binário ficaria:

1110 0101 0000 0001, que é convertível para hexadecimal (0b1110 0101 0000
0001 == 0xE501, que é 58625 em decimal). Isto tudo é uma questão de
representação mas, como pode ver, há representações mais benéficas à
leitura.

A ler: http://en.wikipedia.org/wiki/Binary_code e
http://en.wikipedia.org/wiki/Machine_code

No dia 12 de Setembro de 2014 às 18:32, António Almeida <
antoniojralmeida  gmail.com> escreveu:

> Oo
> Em 12/09/2014 17:39, "Bruno Guerreiro" <bruno.jng  gmail.com> escreveu:
>
> > Caro françai s,
> >
> > Imagina que te contratam para fazeres o programa que transforma de forma
> > eficiente código C/C++ em código máquina de um chip da Intel. Nesse caso
> > trás de saber a linguagem assembly desse chip.
> > Por outro lado, imagina que trabalhas com os engenheiros de
> > micro-electrónica que desenvolvem o chip, e que para isso necessitas de
> > descrever as operações básicas do circuito integrado em código assembly.
> > Nesse caso, saber código binário, octal, e hexadecimal é fundamental!
> >
> > Programar não é só fazer código de alto nível. Para esse é raro utilizar
> > assembly ou binário. Mas se pretendes ir ao nível mais baixo e
> > desenvolver interfaces com dispositivos digitais, não ter nocões básicas
> > de binário é uma falha debilitante. Como programador, ainda que te
> > centres em programas de alto nível, alguma "cultura geral" de outros
> > tipos de programação é sempre bom.
> >
> > Espero que não cedas ao instinto de ver as coisas a preto e branco, e
> > menosprezar tudo aquilo que desconheces.
> >
> > Cumprimentos,
> > Bruno
> >
> > On 11-09-2014 19:55, françai s wrote:
> > > Em 11/09/14, Tiago Gala<tiago.gala  gmail.com> escreveu:
> > >> Em que contexto? É preciso um bocado mais de detalhes para poder
> > responder
> > >> a essa pergunta.
> > > Em todos os contextos.
> > >
> > >
> > >> 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.
> > >>
> > > Saber binário e hexadecimal é absolutamente necessário (a
> > > quem quer programar)???
> > >
> > > Vários moderadores do FreeBSD Forums disseram no tópico "Assembly and
> > > FreeBSD" que ninguém escreve diretamente em binário.
> > >
> > > O moderador "Phoenix" disse que ninguém escreve diretamente em
> > > binário. O moderador "SirDice" citou essa afirmação feita pelo
> > > "Phoenix" e disse que ninguém mais escreve diretamente em binário,
> > > pelo menos ninguém sensato.
> > >
> > > Infelizmente o tópico foi deletado, o link do tópico era:
> > > https://forums.freebsd.org/viewtopic.php?t=42856
> > >
> > > Mas eu encontrei esse tópico em Archive depois que ele foi deletado:
> > >
> >
> http://archive-org.com/page/3491382/2014-01-08/http://forums.freebsd.org/viewtopic.php?f=34&t=42856
> > >
> > > Como você responde isso?
> > >
> > >> 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.
> > >>
> > > Qual é o país em que você mora?
> > >
> > > Achei muito interessante você ter falado que saber binário e
> > > hexadecimal é absolutamente necessário (a  quem quer programar).
> > >
> > > Eu pensei que nunca iria ouvir falar de alguém que diz que atualmente
> > > a codificação em binário é necessária.
> > >
> > > A primeira vez que ouvi falar de alguém que diz que atualmente a
> > > codificação em binário é necessária foi no FreeBSD Forums no mesmo
> > > tópico que falei acima, o usuário "graudeejs" disse que o código
> > > binário é usado... também disse que não acha que código binário é
> > > "morto", que hoje existe universidades que ensinam codificação até
> > > mesmo em binário.
> > >
> >
> >
> > --
> > ubuntu-pt mailing list
> > ubuntu-pt  lists.ubuntu.com
> > https://lists.ubuntu.com/mailman/listinfo/ubuntu-pt
> >
> --
> 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