Ainda vale a pena estudar assembly?

143 respostas
A

Ainda vale a pena estudar assembly?

143 Respostas

drsmachado

Sim. Enquanto desenvolverem processadores é necessário assembly.

rmendes08

Eu diria que vale muito a pena, pois você aprende como o computador realmente funciona. Vale a pena também se você quiser uma vaga como programador assembly, mas neste caso, é bom você aprender eletrônica também. Neste caso, a maioria das vagas são para sistemas de controle e automação. Mesmo nestes casos, provavelmente você já vai programar em C, mas é preciso de um conhecimento profundo de hardware.

rmendes08

Ou seja, sempre.

InicianteJavaHenriqu

Se estiver interessado em começar, tem um usuário aqui do GUJ com um blog sobre o assunto :arrow: http://assemblybrasil.blogspot.com.br/

:thumbup:

mcirqueira

Cara, assembly é o centro de tudo, é a linguagem mais simples e conseqüentemente a mais fácil que existe. É mais fácil que java.
Mas por ser simples, você tem que ter uma boa lógica e entender bem do hardware em que está desenvolvendo. Como o rmendes08 falou, estuda eletrônica e C também, poís mesmo que for desenvolver o sistema de carrinho de controle remoto em C, vai ter que saber assembly para fazer o Kernel e utilizar a memoria (que nesse caso não é preciso, a não ser para colocar o programa dentro da placa do carrinho).

Estude, vale muito a pena! :wink:

A

Um pessoal respondeu dizendo que ainda vale a pena estudar assembly.O que devo fazer para estar atualizado sobre isso? Por exemplo, quando não mais valer a pena estudar assembly, o que deverei fazer para saber disso?

mcirqueira

Entra em sites do assunto como:
http://www.assembly.org/

rmendes08

assembler:
galera,me desculpem eu não ter respondido antes a nenhum de vocês, isso aconteceu por causa de eu não saber usar bem o fórum.
Eu estava esperando as respostas aparecerem abaixo da mensagem que coloquem, até achei que estavam demorando responder e cliquei em um lugar para ver o que aconteceria, mas cliquei no lugar errado.

Continuando a tirar minhas dúvidas sobre assembly.
Um pessoal respondeu dizendo ainda vale a pena estudar assembly.O que devo fazer para estar atualizado sobre isso? Por exemplo, quando não mais valer a pena estudar assembly, o que deverei fazer para saber disso?

Veja bem, sempre vai ter mercado para quem conhece assembly, porém ele é completamente diferente do mundo Web por exemplo. Veja bem, dificilmente você vai escrever um jogo ou uma aplicação comercial em assembly, muito provavelmente o que você pode fazer é controlar uma esteira, controlar válvulas, disponibilizar leituras de pressão ou temperatura em uma porta serial, esse tipo de coisa, você pode ainda trabalhar na fabricação de discos rígidos, BIOS, etc.

A

O que eu devo ter para ser um programador assembly? Devo ter graduação? Quais são os cursos que ensinam assembly? É possível aprender assembly não fazendo curso?

drsmachado

mcirqueira:
Cara, assembly é o centro de tudo, é a linguagem mais simples e conseqüentemente a mais fácil que existe. É mais fácil que java.
Mas por ser simples, você tem que ter uma boa lógica e entender bem do hardware em que está desenvolvendo. Como o rmendes08 falou, estuda eletrônica e C também, poís mesmo que for desenvolver o sistema de carrinho de controle remoto em C, vai ter que saber assembly para fazer o Kernel e utilizar a memoria (que nesse caso não é preciso, a não ser para colocar o programa dentro da placa do carrinho).

Estude, vale muito a pena! :wink:


Peraí, estamos falando em que termos mesmo?
Simples? Desde quando dizer a uma máquina o que ela deve fazer é simples?
Camarada, eu quase fui fazer pedagogia quando vi assembly na faculdade. Coisinha sem graça. Até hoje tenho gastrite por causa dessa coisa.
Já acho C um pé no saco por uma série de coisas, quanto mais assembly.
Enfim, ainda vale a pena estudar, pois todo tipo de aplicação e solução que dependa de linguagem de baixo nível pode requerer assembly.
É um paraíso para alguns e certamente, paga bem.

rmendes08

Sim, você pode aprender assembly sozinho, a Internet tem muito material, porém, apenas Assembly não te faz um profissional completo. Por exemplo, se você for trabalhar com automação, você vai precisar conhecer eletrônica, física, etc. Sendo assim, é altamente recomendável que você curse uma faculdade. Pelo seu perfil, talvez EE ou EC sejam os ideais, embora alguns cursos de CC tem um bom conteúdo de programação de baixo nível.

RiQuInHo_

uma pequena pergunta…ganha bem trabalhar com assembly, pelo - uns 3 k pra cima? não sei, chutei!

A

É verdade que o C substituiu muita coisa do assembly? Se o C ou não sei o quê substituir todo o assembly assim como o assembly substituiu a linguagem de máquina, não será necessário o assembly.

luistiagos

Assembly é mais focado para o ramo de engenharia eletrica, desenvolvimento de hardware, e mesmo assim e usado C para a maioria das coisas hoje em dia… Até aqueles controladores pic antigos da para usar C imagine os atuais… Vale mais apena focar em C se vc for para o ramo de engenharia eletrica

drsmachado

É verdade que o C substituiu muita coisa do assembly? Se o C ou não sei o quê substituir todo o assembly assim como o assembly substituiu a linguagem de máquina, não será necessário o assembly.
Quando foi que assembly substituiu a linguagem de máquina?
Quando é que C vai sobrepor assembly?
Quando é que Java vai subjugar COBOL?
C pode fazer uma série de coisas (talvez tudo) que assembly faz. Mas uma coisa é fazer, a outra substituir.
Assembly não substituiu a linguagem de máquina. Elas ainda falam 0 e 1 e continuarão por muito tempo.

rmendes08

É verdade que o C substituiu muita coisa do assembly? Se o C ou não sei o quê substituir todo o assembly assim como o assembly substituiu a linguagem de máquina, não será necessário o assembly.

Veja bem, qualquer programa de computador, em qualquer linguagem de programação vira Assembly no final. A questão toda é se você precisa escrever Assembly na mão.
Ocorre que, à medida que o hardware se torna mais poderoso, é mais produtivo escrever os programas em linguagem de alto nível e usar um compilador para converter o código. Isso aconteceu com os computadores por volta de uns 40 anos atrás com o COBOL, Fortran, C, Algol, etc. Hoje em dia, a maioria dos equipamentos de hardware já possuem memória o suficiente para suportar programas em C, pois programas escritos em linguagem de alto nível sempre são maiores do que programas escritos à mão.

rmendes08

Veja bem:

Assembly == linguagem de máquina

A

Sim, você pode aprender assembly sozinho, a Internet tem muito material, porém, apenas Assembly não te faz um profissional completo. Por exemplo, se você for trabalhar com automação, você vai precisar conhecer eletrônica, física, etc. Sendo assim, é altamente recomendável que você curse uma faculdade. Pelo seu perfil, talvez EE ou EC sejam os ideais, embora alguns cursos de CC tem um bom conteúdo de programação de baixo nível.

Você disse que se eu precisar trabalhar com automação, vou precisar conhecer eletrõnica,física,etc. Etc o quê?

Você também disse que pelo meu perfil, talvez EE ou EC sejam os ideais, embora alguns cursos de CC tem um bom conteúdo de programação de baixo nível. O que você quiz dizer com EE, EC, CC.

Por favor, não imagine meu perfil para me responder. Por isso pergunto outra vez:Quais são os cursos que ensinam assembly?
Qual é o salário mínimo de um programador assembly?

rmendes08

EE = Engenharia Elétrica
EC = Engenharia de Computação
CC = Ciência da Computação

A

Me respondam se for possível, qual é o salário mínimo de um programador assembly?

luistiagos

Numca vi hoje em dia nenhuma vaga para programador assembly, acho que a vaga correta seria engenheiro de microeletronica acho que o salario deve ser bom… mas vc não vai só programar vai mecher com circuito, chips, soldas, acidos e por ai vai, a coisa é tensa…

A

É verdade que o C substituiu muita coisa do assembly? Se o C ou não sei o quê substituir todo o assembly assim como o assembly substituiu a linguagem de máquina, não será necessário o assembly.
Quando foi que assembly substituiu a linguagem de máquina?
Quando é que C vai sobrepor assembly?
Quando é que Java vai subjugar COBOL?
C pode fazer uma série de coisas (talvez tudo) que assembly faz. Mas uma coisa é fazer, a outra substituir.
Assembly não substituiu a linguagem de máquina. Elas ainda falam 0 e 1 e continuarão por muito tempo.

Se C pode fazer uma série de coisas, se pode talvez fazer tudo que assembly faz, uma coisa é fazer, a outra substituir, é melhor usar C por causa de ser mais fácil que o assembly?

A

Se hoje não há vaga para programador assembly, quais são as vagas corretas para quem quer trabalhar com assembly ou a coisa que faz o que o assembly faz?

A

Devo entender inglês para aprender assembly e as linguagens que fazem o que assembly faz?

A

É verdade que o C substituiu muita coisa do assembly? Se o C ou não sei o quê substituir todo o assembly assim como o assembly substituiu a linguagem de máquina, não será necessário o assembly.
Quando foi que assembly substituiu a linguagem de máquina?
Quando é que C vai sobrepor assembly?
Quando é que Java vai subjugar COBOL?
C pode fazer uma série de coisas (talvez tudo) que assembly faz. Mas uma coisa é fazer, a outra substituir.
Assembly não substituiu a linguagem de máquina. Elas ainda falam 0 e 1 e continuarão por muito tempo.

Quais são as linguagens que fazem o que assembly faz?

rmendes08

assembler:
Devo entender inglês para aprender assembly e as linguagens que fazem o que assembly faz?

Você vai precisar aprender Inglês para não passar fome …

luistiagos

É verdade que o C substituiu muita coisa do assembly? Se o C ou não sei o quê substituir todo o assembly assim como o assembly substituiu a linguagem de máquina, não será necessário o assembly.
Quando foi que assembly substituiu a linguagem de máquina?
Quando é que C vai sobrepor assembly?
Quando é que Java vai subjugar COBOL?
C pode fazer uma série de coisas (talvez tudo) que assembly faz. Mas uma coisa é fazer, a outra substituir.
Assembly não substituiu a linguagem de máquina. Elas ainda falam 0 e 1 e continuarão por muito tempo.

Quais são as linguagens que fazem o que assembly faz?

Cara vc sabe ao menos o que é assembly? sugiro que leia isso: http://pt.wikipedia.org/wiki/Assembly

A

É verdade que o C substituiu muita coisa do assembly? Se o C ou não sei o quê substituir todo o assembly assim como o assembly substituiu a linguagem de máquina, não será necessário o assembly.
Quando foi que assembly substituiu a linguagem de máquina?
Quando é que C vai sobrepor assembly?
Quando é que Java vai subjugar COBOL?
C pode fazer uma série de coisas (talvez tudo) que assembly faz. Mas uma coisa é fazer, a outra substituir.
Assembly não substituiu a linguagem de máquina. Elas ainda falam 0 e 1 e continuarão por muito tempo.

Quais são as linguagens que fazem o que assembly faz?

Cara vc sabe ao menos o que é assembly? sugiro que leia isso: http://pt.wikipedia.org/wiki/Assembly

Assembly é linguagem de baixo nível, linguagem mais próxima da linguagem de máquina.
Perguntei quais são as linguagens que fazem o que assembly faz por causa da afirmação do drsmachado:C pode fazer uma série de coisas(talvez tudo) que assembly faz.

E

assembler:
Devo entender inglês para aprender assembly e as linguagens que fazem o que assembly faz?

Acho que você deve aprender inglês para poder viver e trabalhar na nossa área.
A literatura sobre Assembly em português é muito antiga e muito pobre; não vale a pena insistir na nossa língua.
Por exemplo, o manual do fabricante do processador (que é uma referência que você terá de consultar constantemente) está em inglês e eles nunca o traduzirão para outra língua (mesmo os fabricantes chineses publicam os manuais em inglês :slight_smile: ).

E

Quando se escreve um programa em Assembly, normalmente ele está inserido dentro de um programa em C hoje em dia - é difícil ver programas “pelados”.

J

Considero isso um diferencial… saber assembly ajuda a saber como as coisas funcionam!!
Se você for fuçar no kernel do linux provavelmente terá de saber um pouco de assembly!

Tanto se fala de fazedores de CRUD… se quiser se um destes, com certeza Assembly não serve para nada!

Aprendi assembly em 1995 fazendo crackers de joguinhos antigos de DOS… utilizando debugger e trocando JMP por NOP… nunca me aprofundei, pq realmente é dificil trabalhar precisando disto no dia-a-dia… mas acho importante que todo mundo tenha uma noção!

al.barbosa

Caro Assembler,

C pode fazer o que o Assembly faz, até certo ponto, mas é diferente.
Só em Assembly você vai ter controle direto sobre as instruções que o processador vai executar.
Qualquer linguagem de nível mais alto será compilada em instruções de máquina sobre as quais o programador não tem controle direto.
Todo processador de computador tem um conjunto de instruções que fazem coisas simples. Estas instruções fazem coisas como:

  1. Leia a posição de memória 24034 e coloque o seu conteúdo no registrador 5.
  2. Pegue o conteúdo dos registradores 3 e 4, calcule a soma e coloque o resultado no registrador 9.
    As linguagens Assembler têm instruções correspondentes às instruções do processador. Por exemplo, uma linguagem assembler poderia ter os comandos abaixo, para as instruções 1 e 2 acima:
    [color=darkblue] 1) LOAD 24034,5
  3. SUM 3,4,5[/color]
    (É só um exemplo).
    Em C você tem comandos mais complexos, como por exemplo:
int m = 4;

O compilador de C, ao compilar este comando, irá gerar diversos comandos de linguagem de máquina, correspondentes às instruções Assembler. Irá criar uma posição em memória associada à variável m, guardar o endereço, e atribuir o valor.
Um comando mais complexo de C:

for(int i=0;i<10;i++){}

Será convertido em muito mais comandos correspondentes às instruções Assembler…
Como as instruções de máquina são geradas pelo compilador, você não tem controle direto sobre elas.
Quer dizer, se você quiser operar a máquina intimamente, precisará programar em Assembler.
Um programa em Assembler pode ter performance melhor que em C, pois você sabe cada instrução de máquina que será executada. Só que em Assembler é bem mais difícil de entender e manter.
Quanto aos salários para programador, não sei, mas deve ter mais chances na área de engenharia elétrônica, programando coisas de mais baixo nível (no bom sentido), como um driver de dispositivo, por exemplo.

A

É verdade que o C substituiu muita coisa do assembly? Se o C ou não sei o quê substituir todo o assembly assim como o assembly substituiu a linguagem de máquina, não será necessário o assembly.
Quando foi que assembly substituiu a linguagem de máquina?
Quando é que C vai sobrepor assembly?
Quando é que Java vai subjugar COBOL?
C pode fazer uma série de coisas (talvez tudo) que assembly faz. Mas uma coisa é fazer, a outra substituir.
Assembly não substituiu a linguagem de máquina. Elas ainda falam 0 e 1 e continuarão por muito tempo.

Consegui o conteúdo abaixo do camarony.tripod.com/sitebuildercontent/sitebuilderfiles/assembler.doc

PROGRAMAR EM ASSEMBLY (PARTE I)
(texto recuperado por OCR a partir da revista Spooler)

Muitos utilizadores e a totalidade dos programadores deparará, tarde
ou cedo, com a necessidade de resolver um problema específico
de codificação para o qual as linguagens de alto nível não oferecem
qualquer solução ou. se oferecem, esta não é satisfatória. A
frequência de aparecimento desses problemas não é tão invulgar
como à primeira vista possa parecer. Para um programador de
aplicações de gestão podem aparecer ocasionalmente, mas para um
programador de sistemas operativos, aparecerão a todo o momento.
E a sua resolução passará normalmente por possuir um elevado
conhecimento dos «meandros» de como o equipamento funciona e de
como actuar sobre ele. A melhor via para realizar essa aprendizagem
é começar a estudar a única linguagem que o computador entende.

Ora bem. mas todos sabemos que os computadores internamente - os
seus componentes físicos e circuitos electrónicos, todo esse conjunto
que se designa por hardware, só conhecem uma linguagem que é
constituída por zeros e uns, a linguagem binária ou código máquina.

Felizmente, não nos devemos alarmar, pois longe vão os dias em que
se programava directamente em binário. Nos nossos dias já ninguém
o faz!

Um programa binário é praticamente ininteligível para nós humanos,
mesmo que contenha apenas 2 ou 3 instruções. Mas nos primeiros
tempos da era dos computadores, nos anos 40 e 50, houve quem o
fizesse, naqueles grandes computadores de válvulas que já passaram
à História.

Tentou-se, em alternativa, programar em hexadecimal, que é uma
base de numeração em que se começa a contar no zero e se termina
no «F» (que significa 15 em numeração decimal). Base esta que tem
uma relação simples com a base binária, pois por cada grupo de
4 dígitos binários temos l em hexadecimal. Porém, a programação
em hexadecimal também era extraordinariamente complicada e
demorada.

Finalmente encontrou-se a solução, o Assembly.

Se o Assembly não substituiu a linguagem de máquina, para que a linguagem de máquina existe se é verdade que ninguém programa diretamente nela?

rmendes08

É verdade que o C substituiu muita coisa do assembly? Se o C ou não sei o quê substituir todo o assembly assim como o assembly substituiu a linguagem de máquina, não será necessário o assembly.
Quando foi que assembly substituiu a linguagem de máquina?
Quando é que C vai sobrepor assembly?
Quando é que Java vai subjugar COBOL?
C pode fazer uma série de coisas (talvez tudo) que assembly faz. Mas uma coisa é fazer, a outra substituir.
Assembly não substituiu a linguagem de máquina. Elas ainda falam 0 e 1 e continuarão por muito tempo.

Consegui o conteúdo abaixo do camarony.tripod.com/sitebuildercontent/sitebuilderfiles/assembler.doc

PROGRAMAR EM ASSEMBLY (PARTE I)
(texto recuperado por OCR a partir da revista Spooler)

Muitos utilizadores e a totalidade dos programadores deparará, tarde
ou cedo, com a necessidade de resolver um problema específico
de codificação para o qual as linguagens de alto nível não oferecem
qualquer solução ou. se oferecem, esta não é satisfatória. A
frequência de aparecimento desses problemas não é tão invulgar
como à primeira vista possa parecer. Para um programador de
aplicações de gestão podem aparecer ocasionalmente, mas para um
programador de sistemas operativos, aparecerão a todo o momento.
E a sua resolução passará normalmente por possuir um elevado
conhecimento dos «meandros» de como o equipamento funciona e de
como actuar sobre ele. A melhor via para realizar essa aprendizagem
é começar a estudar a única linguagem que o computador entende.

Ora bem. mas todos sabemos que os computadores internamente - os
seus componentes físicos e circuitos electrónicos, todo esse conjunto
que se designa por hardware, só conhecem uma linguagem que é
constituída por zeros e uns, a linguagem binária ou código máquina.

Felizmente, não nos devemos alarmar, pois longe vão os dias em que
se programava directamente em binário. Nos nossos dias já ninguém
o faz!

Um programa binário é praticamente ininteligível para nós humanos,
mesmo que contenha apenas 2 ou 3 instruções. Mas nos primeiros
tempos da era dos computadores, nos anos 40 e 50, houve quem o
fizesse, naqueles grandes computadores de válvulas que já passaram
à História.

Tentou-se, em alternativa, programar em hexadecimal, que é uma
base de numeração em que se começa a contar no zero e se termina
no «F» (que significa 15 em numeração decimal). Base esta que tem
uma relação simples com a base binária, pois por cada grupo de
4 dígitos binários temos l em hexadecimal. Porém, a programação
em hexadecimal também era extraordinariamente complicada e
demorada.

Finalmente encontrou-se a solução, o Assembly.

Se o Assembly não substituiu a linguagem de máquina, para que a linguagem de máquina existe se é verdade que ninguém programa diretamente nela?

Cara, isso é aí é bobagem. Assembly É a linguagem de máquina, tanto que cada arquitetura de processador tem sua própria linguagem Assembly. Uma instrução Assembly nada mais é do que um código seguido por 1 ou 2 parâmetros. Esse código é numérico, sendo assim, ele pode ser representado em qualquer base numérica, a mais comum é a hexadecimal. Porém, pode-se representar esse código também através de mnemônicos, para facilitar a leitura das instruções. Mas o fato de representar uma instrução através de um mnemônico está longe de definir uma linguagem nova.

J

Exatamente!
Tanto que um debugger assembly, não precisa descompilar o programa… ele apenas traduz os códigos hexa para os mnemônicos!
E da mesma forma que se você mudar um mnemônico, poderá ver qual a posição desta alteração e alterar diretamente o executável hexa!
É apenas um DE/PARA, diferente de um programa em C que passa por um compilador e que vai TRADUZIR o código para um de máquina, logo, dependendo do que o compilador fizer, pode ficar diferente.

A

Galera, me desculpem se falei o que não deveria ter falado, mas fiz o melhor que pude.

Se essas informações forem verdade, tentarei praticá-las.

O que devo fazer para estar atualizado sobre essas informações, por exemplo, quando não mais valer a pena estudar assembly, o que deverei fazer para saber disso? Por exemplo, se chegar o tempo que ninguém usará assembly assim como nos nossos dias ninguém usa a linguagem binária, o que deverei fazer para saber disso?

J

assembler:
Galera, me desculpem se falei o que não deveria ter falado, mas fiz o melhor que pude.

Se essas informações forem verdade, tentarei praticá-las.

O que devo fazer para estar atualizado sobre essas informações, por exemplo, quando não mais valer a pena estudar assembly, o que deverei fazer para saber disso? Por exemplo, se chegar o tempo que ninguém usará assembly assim como nos nossos dias ninguém usa a linguagem binária, o que deverei fazer para saber disso?

Amigo. Se você quer ser um profissional completo, de tecnologia, considero que é importante aprender e ter noções de assembly, linguagem de máquina (hexadecimal), etc!
Hoje quase ninguém utiliza assembly para desenvolver sistema de padaria e cada dia menos se utiliza assembly até mesmo quem trabalha com eletrônica, visto até mesmo robôs de montadoras de automóveis (tenho um conhecido do ramo), que diz que os mais novos já se programa em C e não mais em Assembly.
O detalhe é… aprender e não se aprofundar! São diversos conceitos, muitos destes vistos em universidades, que são importantissimos de aprender, serão um diferencial, mesmo que você nãos os use no dia-a-dia, entender como as coisas funcionam ajudará a resolver problemas mais complexos.
Tive um problema muito sério com um gerenciador de banco de dados em Java (HSQL) e tive de abrir o código fonte da OpenJDK para saber alguns detalhes de como o nio funcionava para ver uma forma de resolver o problema. Muitos caras que conheciam Java mais do que eu, tentaram e não resolveram o problema, pois eles podiam ser mestres em Frameworks da moda, mas precisou ver um fonte em C o cara fugia!

E no fim das contas, mesmo que ninguem use diretamente, ele esta lá! Afinal é o que o computador entende! Talvez algum novo tipo de máquina que deixe de entender assembly e efetivamente esse conhecimento não sirva para mais nada!!! Ou os tal computadores quânticos, que confesso que não consigo entender…

Mas aprenda também linguagens de alto nível, C, C++, Java, C#, etc … na hora de se especializar, escolha um caminho!

rmendes08

O fato é que você não vai conseguir fugir da faculdade. Hoje em dia é muito raro conseguir ser contratado sem uma boa graduação (o diploma sozinho não vale nada, tem que matar a cobra e mostrar o porrete). Em termos profissionais, é mais fácil pensar no tipo de produto/serviço que você quer desenvolver/prestar do que na ferramenta em si. Pense na área de atuação, pense se você quer trabalhar mais próximo do hardware ou trabalhar com sistemas completos, pense se você quer trabalhar em linhas de produção ou fazendo apps para celulares. A ferramenta é consequencia.

E

assembler:
Galera, me desculpem se falei o que não deveria ter falado, mas fiz o melhor que pude.

Se essas informações forem verdade, tentarei praticá-las.

O que devo fazer para estar atualizado sobre essas informações, por exemplo, quando não mais valer a pena estudar assembly, o que deverei fazer para saber disso? Por exemplo, se chegar o tempo que ninguém usará assembly assim como nos nossos dias ninguém usa a linguagem binária, o que deverei fazer para saber disso?

“Quando” é modo de dizer.
Quando é que não valerá mais a pena estudar latim, por exemplo?
É a linguagem que deu origem ao português, ao francês e indiretamente ao inglês (que é basicamente uma língua germânica mas com uma boa parte do seu vocabulário vinda do francês).
Você não precisa aprender latim para viver, mas um pouquinho de latim você acaba sabendo por osmose.
Se for estudar Economia, por exemplo, vai aprender o que é “ceteris paribus”.
Se for estudar Direito, vai se encher de latim jurídico até dizer chega.
Se for estudar Biologia, pelo menos vai saber dizer por que o Argentinossaurus tem esse nome :slight_smile:

E é por isso que não estipulo um prazo. Coisas antigas não morrem, só mudam de figura.

E

Só para você ter uma idéia do conhecimento que é usado para fazer o Java, por exemplo.

Basicamente, o Java contém:
um compilador - transforma arquivos-texto em linguagem Java em arquivos .class (bytecodes)
uma máquina virtual - contém um interpretador (obrigatório) e um Just-in-time compiler (opcional, mas presente nas implementações da Sun/Oracle, da IBM e da Apple).

Esse Just-in-time compiler foi escrito em C++, mas gera código de máquina (nem assembly - o código assembly equivalente está só em comentários!) dinamicamente, de acordo com as necessidades.

Se você gosta de estudar, e sabe ler um pouquinho de C++, baixe os fontes do JDK, e veja como é que o just-in-time compiler implementa o System.arraycopy, por exemplo (essa rotina não está em C, por incrível que pareça, e muito menos em Java, mas é gerada dinamicamente em código de máquina dependendo da necessidade, se não me engano).

E

Nem torturada a Dilma fugiu da faculdade - por que é que você não quer (ou acha que não precisa) dela?

RiQuInHo_

Assembly ou linguagem de montagem é uma notação legível por humanos para o código de máquina que uma arquitetura de computador específica usa, utilizada para programar dispositivos computacionais, como microprocessadores e microcontroladores. A linguagem de máquina, que é um mero padrão de bits, torna-se legível pela substituição dos valores em bruto por símbolos chamados mnemónicos[1][2].

Por exemplo, enquanto um computador sabe o que a instrução-máquina IA-21 (10110000 01100001) faz, para os programadores é mais fácil recordar a representação equivalente em instruções mnemónicas MOV AL, 61h. Tal instrução ordena que o valor hexadecimal 61 (97, em decimal) seja movido para o registrador ‘AL’.

A conversão da linguagem de montagem para o código de máquina é feita pelo montador ou assembler, que é basicamente um tradutor de comandos, sendo mais simples que um compilador.

A

entanglement:
assembler:
Galera, me desculpem se falei o que não deveria ter falado, mas fiz o melhor que pude.

Se essas informações forem verdade, tentarei praticá-las.

O que devo fazer para estar atualizado sobre essas informações, por exemplo, quando não mais valer a pena estudar assembly, o que deverei fazer para saber disso? Por exemplo, se chegar o tempo que ninguém usará assembly assim como nos nossos dias ninguém usa a linguagem binária, o que deverei fazer para saber disso?

“Quando” é modo de dizer.
Quando é que não valerá mais a pena estudar latim, por exemplo?
É a linguagem que deu origem ao português, ao francês e indiretamente ao inglês (que é basicamente uma língua germânica mas com uma boa parte do seu vocabulário vinda do francês).
Você não precisa aprender latim para viver, mas um pouquinho de latim você acaba sabendo por osmose.
Se for estudar Economia, por exemplo, vai aprender o que é “ceteris paribus”.
Se for estudar Direito, vai se encher de latim jurídico até dizer chega.
Se for estudar Biologia, pelo menos vai saber dizer por que o Argentinossaurus tem esse nome :slight_smile:

E é por isso que não estipulo um prazo. Coisas antigas não morrem, só mudam de figura.

Errei em perguntar quando não mais valerá a pena estudar assembly, fiz essa pergunta tentando dizer o que quis dizer, mas errei.
Era para ter perguntado assim:O que devo fazer para estar atualizado sobre essas informações, por exemplo, se não mais valer a pena estudar assembly, o que deverei fazer para saber disso?

Me desculpem, galera, por favor!

E

O que eu digo é: eu já estudei isso faz muito tempo, mas realmente não uso.

Acho que você precisa aprender o básico, para esquecer quase tudo (isso parece zen, não? Mas muitas coisas são assim mesmo. Você tem de aprender, para poder esquecer quase tudo, e o que você realmente aprendeu é o que não esqueceu.)

Você vai precisar mesmo saber isso profundamente - e isso, se você for esperto, vai aprender rapidinho - se tiver que realmente trabalhar com isso.

Senão, aprenda como funcionam as coisas, mas não é preciso ir até o último picossegundo de diferença para saber decidir entre usar REP STOSW ou LOOPNE em um código de movimentação de bytes - esse tipo de coisas você aprende depois se precisar, ou acha na Internet.

Por exemplo, a equipe que trabalhou escrevendo os compiladores Just-In-Time do Java (que convertem bytecodes em código de máquina) teve de aprender isso profundamente.

EDIT - aham, citei CMPSW, mas isso é para ser usado para comparar duas strings, não para fazer cópias de memória - desculpem nossa falha :slight_smile:

al.barbosa

O que pode fazer é ficar antenado, acompanhar a evolução do mercado. Tanto pela Internet quanto no dia a dia do trabalho, fazendo cursos, lendo livros e revistas, faculdade, etc.
Não acho que chegará um dia em que não valha mais a pena estudar Assembly (ou pelo menos conhecer), a não ser que mudem radicalmente a arquitetura dos computadores.
Mas conhecer C acho bastante útil também.

fantomas
  1. A linguagem Assembly é na verdade uma linguagem de ALTO NÍVEL como qualquer outra linguagem moderna existente no mercado. É considerada de baixo nível quando comparada com outras linguagens como C, JAVA, Pascal e etc…

  2. O processo para se chegar a um executável utilizando uma linguagem regular (existem exceções - Java, Javascript, Vbscript, etc…) está incluída a linkedição, último passo para se chegar ao executável; antes deste passo está a compilação. A linguagem Assembly se encaixa neste processo -> Edição do código fonte, compilação, linkedição => objeto executável.

  3. A dita linguagem de máquina se refere ao código binário, antes da linguagem Assembly utilizava-se (se não me engano) umas máquinas especiais para ligar e desligar os bits das palavras (formação dos comandos e etc…). Olhando por este angulo nota-se que a linguagem Assembly possui um nível altíssimo.

  4. Você saberá que a linguagem Assembly não vale mais a pena para você da mesma forma como você faz em relação as outras coisas. Se não estiver dando algum retorno positivo financeiro ou emocional você descarta.

  5. Acredito que nos dias de hoje a linguagem Assembly seja pré-requisito para quem domina linguagens como C, C++, Pascal em alguns projetos. Ou seja, o seu uso deve ser pontual em alguns setores do projeto, o programador não irá ficar trabalhando full time com Assembly durante todo o projeto; fara apenas rotinas bem especifica.

  6. Quem utiliza Assembly normalmente visa: Utilização de pouquíssimo espaço e velocidade de processamento.

  7. A linguagem C não substitue a Assembly porem as duas em conjunto forma um excelente casamento.

  8. Boa parte do segredo, pulo do gato ou seja lá como queira chamar, não está na linguagem está na linkedição através do qual se obtem o objeto executável.

flws

A

Sim, você pode aprender assembly sozinho, a Internet tem muito material, porém, apenas Assembly não te faz um profissional completo. Por exemplo, se você for trabalhar com automação, você vai precisar conhecer eletrônica, física, etc. Sendo assim, é altamente recomendável que você curse uma faculdade. Pelo seu perfil, talvez EE ou EC sejam os ideais, embora alguns cursos de CC tem um bom conteúdo de programação de baixo nível.

Rmendes08, você me disse que para eu ser um profissional completo em Assembly é altamente recomendável que eu curse uma faculdade, pelo meu perfil, talvez EE ou EC sejam os ideais, embora alguns cursos de CC tem um bom conteúdo de programação de baixo nível.

Galera, qual ou quais cursos devo ter no mínimo para ser um programador Assembly completo?

rmendes08

Sim, você pode aprender assembly sozinho, a Internet tem muito material, porém, apenas Assembly não te faz um profissional completo. Por exemplo, se você for trabalhar com automação, você vai precisar conhecer eletrônica, física, etc. Sendo assim, é altamente recomendável que você curse uma faculdade. Pelo seu perfil, talvez EE ou EC sejam os ideais, embora alguns cursos de CC tem um bom conteúdo de programação de baixo nível.

Rmendes08, você me disse que para eu ser um profissional completo em Assembly é altamente recomendável que eu curse uma faculdade, pelo meu perfil, talvez EE ou EC sejam os ideais, embora alguns cursos de CC tem um bom conteúdo de programação de baixo nível.

Galera, qual ou quais cursos devo ter no mínimo para ser um programador Assembly completo?

Uma faculdade é mais do que o suficiente. O fato é que dificilmente haverá uma profissão que seja restrita a programar em Assembly. Geralmente a programação é apenas parte de uma atividade maior: pode ser o projeto de um hardware, a automação de uma linha de produção, o desenvolvimento de um robô … nesse ponto que a faculdade é importante.

A

Qual faculdade é menos suficiente? Imagino que em Engenharia Elétrica é mais suficiente do que Engenharia da Computação.

rmendes08

Veja bem, eu disse isso como forma de expressão …

Cara, eu vou ser franco … Se você quer entrar no ramo de programação e ficar com corpo mole para estudar … sinto muito, mas você não vai ter futuro não. A faculdade facilita em muito a sua vida, pois você tem toda a informação de que você precisa, e um pouco mais toda organizada e com professores e colega para você trocar idéias. Eu diria que esse é o seu ponto de partida.

E

Estou aqui no meu departamento e meu chefe é formado engenheiro químico, eu sou engenheiro eletrônico, assim como o indiano que também está trabalhando aqui, e o outro carinha aqui do meu lado tem doutorado não lembro exatamente em quê - sei lá se engenheiro civil é “menos suficiente” que engenheiro da computação. Aliás, não tem muitos engenheiros de computação aqui.
O que é ‘mais suficiente’ é você procurar o seu caminho e estudar numa escola de nome - até para conseguir bons contatos (mais conhecidos como “Q.I.” - “quem indica”).
E para estudar numa escola de nome, se você não nasceu filhinho de papai, vai ter de ralar bastante. Não é fácil não.

A

Estou decidido não fugir da faculdade. Mas acho muito boa idéia aprender assembly antes de ir para a faculdade, um dos motivos é eu suspeitar que no curso Engenharia da Computação não ensina Assembly, O DavidUser perguntou no GUJ no Assunto Assembly Language - Programar em liguagem baixo nível [ajuda!] no dia 11/10/2009 perguntando onde aprender Assembly mesmo dizendo que cursa Engenharia da Computação na PUC-GO.

O curso Engenharia da Computação ensina Assembly?
Onde aprender Assembly pela Internet?

rmendes08

assembler:
Estou decidido não fugir da faculdade. Mas acho muito boa idéia aprender assembly antes de ir para a faculdade, um dos motivos é eu suspeitar que no curso Engenharia da Computação não ensina Assembly, O DavidUser perguntou no GUJ no Assunto Assembly Language - Programar em liguagem baixo nível [ajuda!] no dia 11/10/2009 perguntando onde aprender Assembly mesmo dizendo que cursa Engenharia da Computação na PUC-GO.

O curso Engenharia da Computação ensina Assembly?
Onde aprender Assembly pela Internet?

Nesse caso, vale a pena olhar na grade curricular do curso. Eu cursei Ciência da Computação e tive Assembly e ainda tive uma matéria de Microcontroladores.

A

entanglement:
Estou aqui no meu departamento e meu chefe é formado engenheiro químico, eu sou engenheiro eletrônico, assim como o indiano que também está trabalhando aqui, e o outro carinha aqui do meu lado tem doutorado não lembro exatamente em quê - sei lá se engenheiro civil é “menos suficiente” que engenheiro da computação. Aliás, não tem muitos engenheiros de computação aqui.
O que é ‘mais suficiente’ é você procurar o seu caminho e estudar numa escola de nome - até para conseguir bons contatos (mais conhecidos como “Q.I.” - “quem indica”).
E para estudar numa escola de nome, se você não nasceu filhinho de papai, vai ter de ralar bastante. Não é fácil não.

Nunca ouvi falar quais são essas escolas de nome? Entanglement, se você puder, me diga quais são essas escolas de nome?

A

Vou repetir uma pergunta que fiz só mais uma vez, onde aprender Assembly pela Internet?

Q

Prefiro aprender o comportamento das minhocas morjadas no deserto, é mais útil !

A

assembler:
entanglement:
Estou aqui no meu departamento e meu chefe é formado engenheiro químico, eu sou engenheiro eletrônico, assim como o indiano que também está trabalhando aqui, e o outro carinha aqui do meu lado tem doutorado não lembro exatamente em quê - sei lá se engenheiro civil é “menos suficiente” que engenheiro da computação. Aliás, não tem muitos engenheiros de computação aqui.
O que é ‘mais suficiente’ é você procurar o seu caminho e estudar numa escola de nome - até para conseguir bons contatos (mais conhecidos como “Q.I.” - “quem indica”).
E para estudar numa escola de nome, se você não nasceu filhinho de papai, vai ter de ralar bastante. Não é fácil não.

Nunca ouvi falar quais são essas escolas de nome? Entanglement, se você puder, me diga quais são essas escolas de nome?

Eu não tenho nenhum contato!

Galera, Entanglemente, nunca ouvi falar quais são essas escolas de nome? Se puderem, me digam quais são essas escolas de nome?

J

rmendes08:

Cara, isso é aí é bobagem. Assembly É a linguagem de máquina, tanto que cada arquitetura de processador tem sua própria linguagem Assembly. Uma instrução Assembly nada mais é do que um código seguido por 1 ou 2 parâmetros. Esse código é numérico, sendo assim, ele pode ser representado em qualquer base numérica, a mais comum é a hexadecimal. Porém, pode-se representar esse código também através de mnemônicos, para facilitar a leitura das instruções. Mas o fato de representar uma instrução através de um mnemônico está longe de definir uma linguagem nova.

Pessoal, seguinte:
Assembly não é linguagem de máquina. Assembly são mnemônicos que facilitam o entendimento dos conjuntos de instruções de uma plataforma(microcontrolador ou microprocessador), além de não ser linguagem de programação, mas de montagem.
Esses mnemônicos representam uma instrução. O código de máquina não tem segredo, é 0 ou 1. Portanto se alguém quiser escrever um programa nessa linguagem pode conseguir um teclado de 3 teclas, 0, 1 e enter criar um arquivo .com no win 98 e digitar instruções lá.

A parte sobre a linguagem c fazer praticamente tudo o que o assembly faz é real. Você pode otimizar partes do programa inserindo os mnemônicos inline. Mas é inviável usar c em um programa para um micro de 1kb de memória. O programa tem que ser muito enxuto então se opta pelo assembly. Mas a grande maioria das plataformas hoje usam c, pascal ou basic.

Sobre a parte rentável da coisa pode acreditar que ela existe e é muito boa. Mas você precisa trabalhar com engenharia elétrica.

No campo das aplicações você não usa linguagem de baixo nível, a não ser que você recaia em um problema de otimização que foi o meu a muito tempo atraz. Estávamos desenvolvendo um sistema de cftv e descobrimos que memcopy do windows 98 na época era muito lento para copiar a imagem da placa de captura para o programa. Para podermos montar um quadro do vídeo no tempo certo precisamos reescrever essa função e o fizemos em assembly. E resolveu.

reforçando o artigo aqui da wiki

A

É verdade que hoje em dia dificilmente o Assembly é usado fora do ambiente de faculdade, pois geralmente mesmo máquina são programadas usando linguagem C, que em ambiente de trabalho é 99% de chance que você nunca mais verá Assembly?

É verdade que hoje em dia, são pouquíssimos os casos onde não se usa C no lugar de assembly, mesmo no desenvolvimento de hardware?

A

assembler:
assembler:
entanglement:
Estou aqui no meu departamento e meu chefe é formado engenheiro químico, eu sou engenheiro eletrônico, assim como o indiano que também está trabalhando aqui, e o outro carinha aqui do meu lado tem doutorado não lembro exatamente em quê - sei lá se engenheiro civil é “menos suficiente” que engenheiro da computação. Aliás, não tem muitos engenheiros de computação aqui.
O que é ‘mais suficiente’ é você procurar o seu caminho e estudar numa escola de nome - até para conseguir bons contatos (mais conhecidos como “Q.I.” - “quem indica”).
E para estudar numa escola de nome, se você não nasceu filhinho de papai, vai ter de ralar bastante. Não é fácil não.

Nunca ouvi falar quais são essas escolas de nome? Entanglement, se você puder, me diga quais são essas escolas de nome?

Eu não tenho nenhum contato!

Galera, Entanglemente, nunca ouvi falar quais são essas escolas de nome? Se puderem, me digam quais são essas escolas de nome?

Galera, nunca ouvi falar quais são essas escolas de nome. Se puderem, me digam quais são essas escolas de nome!

J

assembler:
É verdade que hoje em dia dificilmente o Assembly é usado fora do ambiente de faculdade, pois geralmente mesmo máquina são programadas usando linguagem C, que em ambiente de trabalho é 99% de chance que você nunca mais verá Assembly?

É verdade que hoje em dia, são pouquíssimos os casos onde não se usa C no lugar de assembly, mesmo no desenvolvimento de hardware?

Olha só, assembly é usado por engenheiros de hardware, não por analistas de sistemas. Assembly é muito usado, mas hoje em dia é um padrão fabricantes de micros disponibilizarem um compilador de uma linguagem qualquer(que seja c ou pascal ou basic).

Dá uma olhada nos produtos da microship,

http://www.microchip.com/

ViniGodoy

Só para deixar claro:

  1. É possível controlar o código de baixo nível em C, embora geralmente não valha a pena (exceto para funções específicas);
  2. Geralmente, um programa feito com cuidado em C será mais legível, mais fácil de manter e mais otimizado do que um equivalente feito em assembly (compiladores nunca perdem oportunidades de otimizar o código, programadores sim);
  3. É uma falácia achar que programar em assembly diretamente gerará código mais otimizado do que fazer em C (também é uma falácia inferir o contrário);
  4. Até mesmo dispositivos muito pequenos, como PICs e DSPs, já estão vindo com compiladores C de boa qualidade.
  5. Estudar assembly ainda é importante caso você consiga um cargo de engenheiro eletrônico, mecatrônico ou da computação, em empresas que produzem hardware. Como essas empresas geralmente são de engenharia, seria muitíssimo bom que você cursasse a faculdade. Até porque, ela vai te ensinar muitos conceitos importantes para um programador assembly completo (organização de hardware, tipos de hardware, álgebra booleana, etc).

Se quiser um exemplo de programação que mistura muito C e assembly, dê uma lida no Black Book do Michael Abrash.

Ele ensina a fazer um Doom, escrevendo o motor gráfico “no braço” (sem OpenGL ou DirectX) e acelerado com assembly:

Alguns ganhos de performance que ele alega no livro que o assembly terá não são mais tão significativos. Os compiladores evoluíram muito desde então.

J

ViniGodoy:
Só para deixar claro:

  1. É possível controlar o código de baixo nível em C, embora geralmente não valha a pena (exceto para funções específicas);
  2. Geralmente, um programa feito com cuidado em C será mais legível, mais fácil de manter e mais otimizado do que um equivalente feito em assembly (compiladores nunca perdem oportunidades de otimizar o código, programadores sim);
  3. É uma falácia achar que programar em assembly diretamente gerará código mais otimizado do que fazer em C (também é uma falácia inferir o contrário);
  4. Até mesmo dispositivos muito pequenos, como PICs e DSPs, já estão vindo com compiladores C de boa qualidade.
  5. Estudar assembly ainda é importante caso você consiga um cargo de engenheiro eletrônico, mecatrônico ou da computação, em empresas que produzem hardware. Como essas empresas geralmente são de engenharia, seria muitíssimo bom que você cursasse a faculdade. Até porque, ela vai te ensinar muitos conceitos importantes para um programador assembly completo (organização de hardware, tipos de hardware, álgebra booleana, etc).

Se quiser um exemplo de programação que mistura muito C e assembly, dê uma lida no Black Book do Michael Abrash.

Ele ensina a fazer um Doom, escrevendo o motor gráfico “no braço” (sem OpenGL ou DirectX) e acelerado com assembly:

Alguns ganhos de performance que ele alega no livro que o assembly terá não são mais tão significativos. Os compiladores evoluíram muito desde então.

A questão é a qualidade do compilador. Existem compiladores ruins no mercado. Por exemplo tínhamos um problema com tamanho de um software, onde o dispositivo dispunha de pouca memória de programa e o compilador teimava em gerar o resultado maior. Tivemos que usar assembly. Mas eu concordo com você, fora alguns problemas específicos é muito mais vantajoso ter uma ferramenta como um compilador que usar um montador assembly.

matheuslmota

Você tem que aprender um pouco de arquitetura de computadores junto com assembly. Sugiro que procure um livro sobre microprocessadores, baixe o manual de algum microprocessador (ou microcontrolador) e aí você pode estudar assembly. Para aprender assembly é preciso entender bem de hardware.

A

entanglement:
Estou aqui no meu departamento e meu chefe é formado engenheiro químico, eu sou engenheiro eletrônico, assim como o indiano que também está trabalhando aqui, e o outro carinha aqui do meu lado tem doutorado não lembro exatamente em quê - sei lá se engenheiro civil é “menos suficiente” que engenheiro da computação. Aliás, não tem muitos engenheiros de computação aqui.
O que é ‘mais suficiente’ é você procurar o seu caminho e estudar numa escola de nome - até para conseguir bons contatos (mais conhecidos como “Q.I.” - “quem indica”).
E para estudar numa escola de nome, se você não nasceu filhinho de papai, vai ter de ralar bastante. Não é fácil não.

Entanglement, nunca ouvi falar quais são essas escolas de nome? Por favor, se puder, me diga quais são essas escolas de nome, se não puder falar quais são todas elas, me fale o que puder.
Por favor, se não puder me dizer ou não me dizer não sei por quais motivos, me diga que não vai responder.

rmendes08

http://info.abril.com.br/professional/os-melhores-na-graduacao.html

o link acima é uma boa referência para faculdades de computação …

Mas de maneira geral, os cursos das públicas são os melhores, mas tem particulares muito boas como a PUC. O que você deve evitar são as UniEsquinas da vida, que aceitam qualquer um. Nessas faculdades geralmente o nível dos alunos é mais baixo, e como consequencia, o nivel do curso de maneira geral cai junto.

A

juliocbq:
rmendes08:

Cara, isso é aí é bobagem. Assembly É a linguagem de máquina, tanto que cada arquitetura de processador tem sua própria linguagem Assembly. Uma instrução Assembly nada mais é do que um código seguido por 1 ou 2 parâmetros. Esse código é numérico, sendo assim, ele pode ser representado em qualquer base numérica, a mais comum é a hexadecimal. Porém, pode-se representar esse código também através de mnemônicos, para facilitar a leitura das instruções. Mas o fato de representar uma instrução através de um mnemônico está longe de definir uma linguagem nova.

Pessoal, seguinte:
Assembly não é linguagem de máquina. Assembly são mnemônicos que facilitam o entendimento dos conjuntos de instruções de uma plataforma(microcontrolador ou microprocessador), além de não ser linguagem de programação, mas de montagem.
Esses mnemônicos representam uma instrução. O código de máquina não tem segredo, é 0 ou 1. Portanto se alguém quiser escrever um programa nessa linguagem pode conseguir um teclado de 3 teclas, 0, 1 e enter criar um arquivo .com no win 98 e digitar instruções lá.

A parte sobre a linguagem c fazer praticamente tudo o que o assembly faz é real. Você pode otimizar partes do programa inserindo os mnemônicos inline. Mas é inviável usar c em um programa para um micro de 1kb de memória. O programa tem que ser muito enxuto então se opta pelo assembly. Mas a grande maioria das plataformas hoje usam c, pascal ou basic.

Sobre a parte rentável da coisa pode acreditar que ela existe e é muito boa. Mas você precisa trabalhar com engenharia elétrica.

No campo das aplicações você não usa linguagem de baixo nível, a não ser que você recaia em um problema de otimização que foi o meu a muito tempo atraz. Estávamos desenvolvendo um sistema de cftv e descobrimos que memcopy do windows 98 na época era muito lento para copiar a imagem da placa de captura para o programa. Para podermos montar um quadro do vídeo no tempo certo precisamos reescrever essa função e o fizemos em assembly. E resolveu.

reforçando o artigo aqui da wiki
http://pt.wikipedia.org/wiki/Assembly

juliocbq, estou interesado só na sua resposta ao que pergunto agora. Você disse no GUJ no assunto Assembly Language - Programar em liguagem baixo nível [ajuda!] em 11/10/2009 respondendo ao luca moderador dizendo assim: vou discordar quanto ao conhecimento inútil. Muitos microcontroladores ainda são programados em assembly, e, para otimização, usar assembly inline em pascal ou c também.

Você diz agora que a parte sobre a linguagem c fazer praticamente tudo o que o assembly faz é real, que Assembly é muito usado. Se é verdade que a linguagem c é mais fácil que o Assembly, para que usar Assembly se é verdade que a linguagem c faz praticamente tudo o que o assembly faz?

A

rmendes08:
http://info.abril.com.br/professional/os-melhores-na-graduacao.html

o link acima é uma boa referência para faculdades de computação …

Mas de maneira geral, os cursos das públicas são os melhores, mas tem particulares muito boas como a PUC. O que você deve evitar são as UniEsquinas da vida, que aceitam qualquer um. Nessas faculdades geralmente o nível dos alunos é mais baixo, e como consequencia, o nivel do curso de maneira geral cai junto.

rmendes08, obrigado pela resposta.

Entanglement, estou interessado só na sua resposta ao que pergunto outra vez agora.Entanglement, nunca ouvi falar quais são essas escolas de nome. Por favor, se puder, me diga quais são essas escolas de nome, se não puder falar quais são todas elas, me fale o que puder.
Por favor, se não puder me dizer ou não me dizer não sei por quais motivos, me diga que não vai responder.

A

É verdade que o C substituiu muita coisa do assembly? Se o C ou não sei o quê substituir todo o assembly assim como o assembly substituiu a linguagem de máquina, não será necessário o assembly.
Quando foi que assembly substituiu a linguagem de máquina?
Quando é que C vai sobrepor assembly?
Quando é que Java vai subjugar COBOL?
C pode fazer uma série de coisas (talvez tudo) que assembly faz. Mas uma coisa é fazer, a outra substituir.
Assembly não substituiu a linguagem de máquina. Elas ainda falam 0 e 1 e continuarão por muito tempo.

drsmachado, por favor, me responda, mas só você ao que pergunto agora!
Se é verdade que C pode fazer uma série de coisas(talvez tudo) que assembly faz e que o C é mais fácil que o Assembly, para que usar C?

Corrigindo a última pergunta: Se é verdade que C pode fazer uma série de coisas(talvez tudo) que assembly faz e que o C é mais fácil que o Assembly, para que usar Assembly?

Você perguntou quando é que C vai sobrepor assembly.
Veja este texto que consegui do PROGRAMAR EM ASSEMBLY (PARTE I) camarony.tripod.com/sitebuildercontent/sitebuilderfiles/assembler.doc

“Alguns autores classificam algumas linguagens, incluindo a
linguagem ‘C’, por linguagem de «médio nível». Sem discutir a
correcção do termo, com o qual pessoalmente concordamos,
confirmamos que na realidade as linguagens de médio nível
substituem em muitas situações o Assembly.”

Esse texto diz ou não que o C e as outras linguagens de médio nível substituem em muitas situações o Assembly? Você me diz que este texto está errado?

E

Não vou listar as “escolas de nome” até porque:

  • Há rankings disponíveis
  • Depende muito do tipo de coisa que você for fazer
  • Mudam bastante, de modo geral - e é por isso que há rankings anuais
  • Se você for fazer um curso no estrangeiro, o que é de “nome” lá pode ser completamente desconhecido aqui. Por exemplo, não tenho razões para duvidar que a Iran University of Science & Technology seja uma escola de nome lá no Irã (uma vez até houve uma pessoa de lá que se inscreveu no GUJ e tentou postar algumas coisas em inglês) - pela Wikipedia ela é uma das quatro grandes no Irã, mas aqui ela é completamente desconhecida.

De modo geral, muitas universidades e faculdades públicas aqui do Sudeste (como USP, Unicamp, ITA, IME etc.) sáo as tais “escolas de nome” que disse genericamente.
Eu disse que o “Q.I” é importante - por exemplo, há uns 30 anos atrás (não sei se hoje ainda é assim) a FAAP não era exatamente conhecida por ser uma escola “de renome” mas porque havia muita gente rica estudando lá e você poderia conseguir bons contatos - e como o pessoal costuma dizer, “o pior problema do pobre é que seus amigos também são pobres”. Não sei como isso ficou hoje em dia.

A

entanglement:
Não vou listar as “escolas de nome” até porque:

  • Há rankings disponíveis
  • Depende muito do tipo de coisa que você for fazer
  • Mudam bastante, de modo geral - e é por isso que há rankings anuais
  • Se você for fazer um curso no estrangeiro, o que é de “nome” lá pode ser completamente desconhecido aqui. Por exemplo, não tenho razões para duvidar que a Iran University of Science & Technology seja uma escola de nome lá no Irã (uma vez até houve uma pessoa de lá que se inscreveu no GUJ e tentou postar algumas coisas em inglês) - pela Wikipedia ela é uma das quatro grandes no Irã, mas aqui ela é completamente desconhecida.

De modo geral, muitas universidades e faculdades públicas aqui do Sudeste (como USP, Unicamp, ITA, IME etc.) sáo as tais “escolas de nome” que disse genericamente.
Eu disse que o “Q.I” é importante - por exemplo, há uns 30 anos atrás (não sei se hoje ainda é assim) a FAAP não era exatamente conhecida por ser uma escola “de renome” mas porque havia muita gente rica estudando lá e você poderia conseguir bons contatos - e como o pessoal costuma dizer, “o pior problema do pobre é que seus amigos também são pobres”. Não sei como isso ficou hoje em dia.

Entanglement, um grande abraço e um super obrigado para você!

J
assembler:
juliocbq:
rmendes08:

http://pt.wikipedia.org/wiki/Assembly

Cara, isso é aí é bobagem. Assembly É a linguagem de máquina, tanto que cada arquitetura de processador tem sua própria linguagem Assembly. Uma instrução Assembly nada mais é do que um código seguido por 1 ou 2 parâmetros. Esse código é numérico, sendo assim, ele pode ser representado em qualquer base numérica, a mais comum é a hexadecimal. Porém, pode-se representar esse código também através de mnemônicos, para facilitar a leitura das instruções. Mas o fato de representar uma instrução através de um mnemônico está longe de definir uma linguagem nova.

Pessoal, seguinte:
Assembly não é linguagem de máquina. Assembly são mnemônicos que facilitam o entendimento dos conjuntos de instruções de uma plataforma(microcontrolador ou microprocessador), além de não ser linguagem de programação, mas de montagem.
Esses mnemônicos representam uma instrução. O código de máquina não tem segredo, é 0 ou 1. Portanto se alguém quiser escrever um programa nessa linguagem pode conseguir um teclado de 3 teclas, 0, 1 e enter criar um arquivo .com no win 98 e digitar instruções lá.

A parte sobre a linguagem c fazer praticamente tudo o que o assembly faz é real. Você pode otimizar partes do programa inserindo os mnemônicos inline. Mas é inviável usar c em um programa para um micro de 1kb de memória. O programa tem que ser muito enxuto então se opta pelo assembly. Mas a grande maioria das plataformas hoje usam c, pascal ou basic.

Sobre a parte rentável da coisa pode acreditar que ela existe e é muito boa. Mas você precisa trabalhar com engenharia elétrica.

No campo das aplicações você não usa linguagem de baixo nível, a não ser que você recaia em um problema de otimização que foi o meu a muito tempo atraz. Estávamos desenvolvendo um sistema de cftv e descobrimos que memcopy do windows 98 na época era muito lento para copiar a imagem da placa de captura para o programa. Para podermos montar um quadro do vídeo no tempo certo precisamos reescrever essa função e o fizemos em assembly. E resolveu.

reforçando o artigo aqui da wiki
http://pt.wikipedia.org/wiki/Assembly

juliocbq, estou interesado só na sua resposta ao que pergunto agora. Você disse no GUJ no assunto Assembly Language - Programar em liguagem baixo nível [ajuda!] em 11/10/2009 respondendo ao luca moderador dizendo assim: vou discordar quanto ao conhecimento inútil. Muitos microcontroladores ainda são programados em assembly, e, para otimização, usar assembly inline em pascal ou c também.

Você diz agora que a parte sobre a linguagem c fazer praticamente tudo o que o assembly faz é real, que Assembly é muito usado. Se é verdade que a linguagem c é mais fácil que o Assembly, para que usar Assembly se é verdade que a linguagem c faz praticamente tudo o que o assembly faz?

Mas é isso mesmo. Vou te dar um outro exemplo.
Os compiladores não suportam todos os sets de instruções de um processador ou microcontrolador. Para se poder usar alguns desses(escondidos de alguma forma) registradores você precisa do manual do micro e escrever a instrução diretamente:

imagine uma instrução que troca os valores de dois registradores x1 e y1;

swap x1, y1;

Porque eu deveria escrever um workaround enorme em c(copiar memória em um monte de variáveis) se eu posso apenas fazer isso acima?

você pode usar inline no programa escrito em c por exemplo:

void swap_reg_x1y1(){
 
   __asm{
swap x1, y1;
}
}

Existem muitos registradores que os compiladores "não enxergam". Dá uma olhada lá no site da microship. Você vai ver nos datasheets.

Existem micros com memória de programa pequenas. Não dá pra usar um compilador nesses casos. Como o programa é pequeno, é preferível escrever diretamente em assembly.

Mas é fato que os compiladores otimizam melhor o código que nós mesmos na grande maioria dos casos. É muito difícil melhorar um código escrito por um compilador ainda mais quando o programa é muito extenso.

Isso não quer dizer que assembly é conhecimento inútil, aliás é justamente o contrário, é até essencial para quem trabalha com hardware.

E

assembler:

drsmachado, por favor, me responda, mas só você ao que pergunto agora!
Se é verdade que C pode fazer uma série de coisas(talvez tudo) que assembly faz e que o C é mais fácil que o Assembly, para que usar C?

Você perguntou quando é que C vai sobrepor assembly.
Veja este texto que consegui do PROGRAMAR EM ASSEMBLY (PARTE I) camarony.tripod.com/sitebuildercontent/sitebuilderfiles/assembler.doc

Esse texto diz ou não que o C e as outras linguagens de médio nível substituem em muitas situações o Assembly? Você me diz que este texto está errado?

Como você deve saber, nada é preto ou branco (a vida tem vários tons de cinza).

Eu posso escrever um programa razoavelmente grande usando um “Macro Assembler”, que basicamente converte macros para conjuntos de instruções específicas.
Posso, usando alguns macro assemblers, criar automaticamente um loop “do while” ou um loop “while”, ou então ter “ifs” aninhados - como você deve ter percebido, qualquer programa com uma lógica um pouco mais complexa fica muito chato de escrever em assembler - se vocë náo fizer um fluxograma completo de seu programa antes de codificar qualquer instrução, você se perde - e isso é coisa para gente que é muito metódica, não para gente que quer programar só de sentar na frente do computador.
Outras macros permitem simular a passagem e a recuperação de parâmetros em funções, usando as convencoes (mais conhecidas como ABI, Application BInary Interface) da linguagem C ou alguma outra.

Houve uma vez, na faculdade, em que escrevi um driver de impressora usando um Macro Assembler com esses recursos. (Eu fiz antes um pseudo-código desse driver em Pascal :slight_smile: - naquele tempo, o Turbo Pascal era disparado a melhor linguagem em termos de rapidez de desenvolvimento, e é por isso que a primeira versão foi em Pascal e não em C. )

Hoje em dia, não usaria um Macro Assembler mas um compilador C que aceitasse blocos de instruçÕes em Assembler. Mas dependendo da qualidade do compilador para a arquitetura alvo, eu teria de usar um Macro Assembler mesmo :frowning:

W

Problema eh trabalhar nessa area. Parece que as empresas sempre consideram o Brasil cafe-com-leite e colocam o desenvolvimento pesado sempre nas maos dos gringos.

Eu estou sempre mexendo com assembly, nao por causa do trabalho eh mais hobby mesmo. Eu desenvolvo homebrews para Super Nintendo (SNES) e ele usa o Assembly 65816.

De qualquer forma eu acho valido aprender pelo menos um pouco, saber do que se trata porque eh sempre bom saber um pouco de programacao mais baixo-nivel do que nos estamos geralmente usando.

//Daniel

E

Eu diria que, para os processadores RISC modernos, é muito difícil escrever um programa Assembly que seja demonstravelmente mais rápido que um programa em C equivalente, isso porque é um pouco difícil para o ser humano levar em conta todas as interdependências entre os operandos necessárias para evitar algumas coisas esquisitas que ocorrem nos processadores RISC modernos.

Por exemplo, um compilador C normalmente reordena operações de modo que eventuais carregamentos de dados da memória tenham tempo de executar, enquanto são processadas outras coisas que não dependem desse valor da memória. Como você deve ter aprendido, a memória é um recurso muito lento e eventuais acessos a ela devem ser minimizados, além de você ter de acessá-la de modo que aproveite o máximo os valores que já estão (ou devem estar) no cache. Isso é algo que é muito difícil de fazer manualmente porque a sua capacidade cerebral de levar essas coisas em conta acaba antes :slight_smile: - mas o compilador usa alguns algoritmos para poder fazer essa reordenação sem problemas. Até o JIT da máquina virtual Java, para ter uma idéia, consegue fazer alguns desses truques (mas não todos os que o compilador C consegue fazer).

J

A coisa é que TI não tem nada a ver com engenharia elétrica. Tem um monte de gente aí que usa linguagem de alto nível no dia a dia trabalhando com TI e critica falando que assembly é coisa do passado, linguagem c está defasada. É uma área completamente diferente da outra.

E

Vou dar um exemplo bobo dos truques que um compilador C consegue fazer. Como você faz uma conversão de binário para decimal? Basicamente você pensaria em usar uma instrução que está disponível em vários processadores e que faz uma divisão e calcula o resto. Como vocës também devem saber, ou a divisão não é implementada no processador (em alguns processadores RISC ha’uma instrucao esquisita, que é “passo da divisão”, não a divisão completa), ou então é uma operacáo lenta.
Mas eu vi que o compilador da Microsoft pega a sequencia de código em C que tem uma divisão por 10 e cálculo de resto por 10 e transforma isso em apenas uma multiplicação simples por um numero cabalistico (nao lembro se era 0x66666666666666666 ou coisa parecida, e mais um shift. Ambas as operaçoes, em processadores Intel, costumam gastar muito menos tempo que uma unica divisão se não me engano, a multiplicacao costuma gastar um único ciclo em processadores mais modernos porque a multiplicacao é feita por um circuito lógico (“multiplicador por hardware”) específico para isso.

A

juliocbq, qual o significado da sigla TI?

A

Estou muito interessado em conseguir todo o conteúdo do assunto PROGRAMAR EM ASSEMBLY (texto recuperado por OCR a partir da revista Spooler).
Tentei conseguir todo esse conteúdo e só pude tentar pela Internet, o site é camarony.tripod.com/sitebuildercontent/sitebuilderfiles/assembler.doc, mas consegui só a parte 1 e gostei muito de lê-lo.

Mas se vocês acham ou sabem que não vale a pena ler esse conteúdo, me digam a opinião de vocês ou me mostrem porque não vale a pena ler esse conteúdo.
Mas se vale a pena ler esse conteúdo, me ajudem a conseguir o restante se puderem, ficarei muito contente.

E

Bom, o conteúdo da revista portuguesa é interessante mas um bocadinho antigo - ele fala de processadores de 8 bits (Z80) e de 16 bits (8088 ) - e realmente eu sabia bem os de 8 e os de 16 (e mais ou menos eu sei o de 32, que é o 80386, mas náo sei muito bem o de 64, que é o conjunto EMT64 / AMD64).
O seu problema é que, se for testar esse código em um Windows de 64 bits, você vai ter problemas para rodá-lo (porque ele não consegue mais rodar programas de 16, exceto se for em uma máquina virtual).
Além disso, as ferramentas citadas são bem antigas (EXE2BIN etc.) e têm problemas de disponibilidade (se procurar no site da Microsoft, no Platform SDK, ele vai ter uma versão do MASM e do LINK que compila só a partir de 32 bits). Você iria ter de desencavar um TASM (“Turbo Assembler”) de 16 bits em algum lugar.

E

Hoje em dia, é interessante aprender sobre assembly de microcontroladores ou então sobre assembly de processadores mais modernos.

gpellizzoni

juliocbq, qual o significado da sigla TI?

Tecnologia da Informação.

Por que você se interessou por assembly?

A

juliocbq, qual o significado da sigla TI?

Tecnologia da Informação.

Por que você se interessou por assembly?

Me interessei por assembly porque sentia vontade irresistível para ler sobre isso, por exemplo quando lia a palavra Assembly sentia emoção, senti que seria muito divertido ler sobre isso, sentia isso até para ler sobre linguagem de máquina.
Comecei ler sobre essas coisas lendo na Internet e livros da biblioteca da Universidade Federal do Piauí sobre linguagem de máquina, acreditei em conteúdo que diz que ninguém usa linguagem de máquina e linguagem hexadecimal, mas há conteúdo que nem diz de qual época é esse conteúdo e passei para conteúdo de Assembly.

Quase não encontrei conteúdo que fala sobre linguagem hexadecimal, não encontrei em nenhum livro conteúdo sobre isso, encontrei foi na Internet e me lembro de ter encontrado em três sites.

Mas entendi que foi falado em resposta neste assunto que coloquei no GUJ, Ainda vale a pena estudar Assembly? que linguagem de máquina é usada.

Pessoal,é verdade que ninguém usa linguagem de máquina e linguagem hexadecimal?

A

Estou aflito com uma afirmação do luistiagos: " mas vc não vai só programar vai mecher com circuito, chips, soldas, acidos e por ai vai, a coisa é tensa…"
Estou aflito por causa dessas soldas e acidos.
Quais são essas soldas e acidos? Que mal eles fazem a saúde?

A

Pessoal, o PDF C Completo e Total 3ª edição do autor Herbert Schildt da Makron Books diz no capitulo 25 - Interfaceamento com Rotinas em Linguagem Assembly no título Quando Codificar em Assembly:

“Como regra geral, não use assembler, cria problemas demais! No entanto, há duas situações em que faz sentido codificar em assembler.”

Como vocês responderiam a alguém que tivesse falado isso neste assunto, alguém que tivesse falado:

" Como regra geral, não use assembler, cria problemas demais!"

luistiagos

Estou aflito com uma afirmação do luistiagos: " mas vc não vai só programar vai mecher com circuito, chips, soldas, acidos e por ai vai, a coisa é tensa…"
Estou aflito por causa dessas soldas e acidos.
Quais são essas soldas e acidos? Que mal eles fazem a saúde?

Ué o que vc espera fazer com assembly? Até os kernels de SOs são feitos com C/C++, assembly até pode ser usado mas não é a tecnologia primaria neste sentido…
creio que é mais usado para fazer drivers de dispositivos, interfaciamento e isto ainda e raramente usado pois na maioria usa-se C, a questão primaria é o que vc vai usar assembly que não possa usar C? não vejo muita aplicabilidade. Acho que primeiro vc devia estudar bastante C/C++, depois quando já tiver ninja em C, estude um pouco de assembly.

Bem aqui tem um bom projeto para começar a aprender assembly: https://github.com/jmechner/Prince-of-Persia-Apple-II

A

juliocbq, qual o significado da sigla TI?

Tecnologia da Informação.

Por que você se interessou por assembly?

Me interessei por assembly porque sentia vontade irresistível para ler sobre isso, por exemplo quando lia a palavra Assembly sentia emoção, senti que seria muito divertido ler sobre isso, sentia isso até para ler sobre linguagem de máquina.
Comecei ler sobre essas coisas lendo na Internet e livros da biblioteca da Universidade Federal do Piauí sobre linguagem de máquina, acreditei em conteúdo que diz que ninguém usa linguagem de máquina e linguagem hexadecimal, mas há conteúdo que nem diz de qual época é esse conteúdo e passei para conteúdo de Assembly.

Quase não encontrei conteúdo que fala sobre linguagem hexadecimal, não encontrei em nenhum livro conteúdo sobre isso, encontrei foi na Internet e me lembro de ter encontrado em três sites.

Mas entendi que foi falado em resposta neste assunto que coloquei no GUJ, Ainda vale a pena estudar Assembly? que linguagem de máquina é usada.

Pessoal,é verdade que ninguém usa linguagem de máquina e linguagem hexadecimal?

Entanglement, é verdade que ninguém usa linguagem de máquina e linguagem hexadecimal?

Entanglement, se não puder responder ou não quiser responder por causa de não sei quais motivos por favor, me diga que não vai responder.

A

assembler:
Pessoal, o PDF C Completo e Total 3ª edição do autor Herbert Schildt da Makron Books diz no capitulo 25 - Interfaceamento com Rotinas em Linguagem Assembly no título Quando Codificar em Assembly:

“Como regra geral, não use assembler, cria problemas demais! No entanto, há duas situações em que faz sentido codificar em assembler.”

Como vocês responderiam a alguém que tivesse falado isso neste assunto, alguém que tivesse falado:

" Como regra geral, não use assembler, cria problemas demais!"

Entanglement, o PDF C Completo e Total 3ª edição do autor Herbert Schildt da Makron Books diz no capitulo 25 - Interfaceamento com Rotinas em Linguagem Assembly no título Quando Codificar em Assembly:

“Como regra geral, não use assembler, cria problemas demais! No entanto, há duas situações em que faz sentido codificar em assembler.”

Como você responderia a alguém que tivesse falado isso neste assunto?

Entanglement, se não puder responder ou não quiser responder por causa de não sei quais motivos por favor, me diga que não vai responder.

A

Pessoal, quando me responderem, se colocarem siglas, coloquem o significado das siglas, não quero mais perguntar que quis dizer com sigla essa, sigla aquela.

A

Estou aflito com uma afirmação do luistiagos: " mas vc não vai só programar vai mecher com circuito, chips, soldas, acidos e por ai vai, a coisa é tensa…"
Estou aflito por causa dessas soldas e acidos.
Quais são essas soldas e acidos? Que mal eles fazem a saúde?

Ué o que vc espera fazer com assembly? Até os kernels de SOs são feitos com C/C++, assembly até pode ser usado mas não é a tecnologia primaria neste sentido…
creio que é mais usado para fazer drivers de dispositivos, interfaciamento e isto ainda e raramente usado pois na maioria usa-se C, a questão primaria é o que vc vai usar assembly que não possa usar C? não vejo muita aplicabilidade. Acho que primeiro vc devia estudar bastante C/C++, depois quando já tiver ninja em C, estude um pouco de assembly.

Bem aqui tem um bom projeto para começar a aprender assembly: https://github.com/jmechner/Prince-of-Persia-Apple-II

luistiagos, você afirmou me dizendo que não vou só programar, vou mecher com circuito, chips, soldas, acidos e por ai vai, a coisa é tensa…
Se você puder me dizer quais são essas soldas e acidos e que mal eles fazem a saude, me diga, se não puder ou não quiser responder , me diga que não vai responder.
Você me perguntou o que espero fazer com assembly, mas você não disse que não vou só programar, vou mecher com circuito, chips, soldas, acidos e por ai vai, a coisa é tensa…?
Mas se entendi errado entendo que não vou só programar usando por exemplo assembly, vou mecher com circuito, chips, soldas, acidos e por ai vai, a coisa é tensa…,
vou programar em quê? vou programar usando por exemplo assembly?

Sharkns

tenho um amigo que cursa engenharia elétrica na federal aqui de brasília, ele falo que assembly é o que eles mais usam la, de vez em quando C :smiley:

J

alguém tranca isso aqui por favor.

luistiagos

Estou aflito com uma afirmação do luistiagos: " mas vc não vai só programar vai mecher com circuito, chips, soldas, acidos e por ai vai, a coisa é tensa…"
Estou aflito por causa dessas soldas e acidos.
Quais são essas soldas e acidos? Que mal eles fazem a saúde?

Ué o que vc espera fazer com assembly? Até os kernels de SOs são feitos com C/C++, assembly até pode ser usado mas não é a tecnologia primaria neste sentido…
creio que é mais usado para fazer drivers de dispositivos, interfaciamento e isto ainda e raramente usado pois na maioria usa-se C, a questão primaria é o que vc vai usar assembly que não possa usar C? não vejo muita aplicabilidade. Acho que primeiro vc devia estudar bastante C/C++, depois quando já tiver ninja em C, estude um pouco de assembly.

Bem aqui tem um bom projeto para começar a aprender assembly: https://github.com/jmechner/Prince-of-Persia-Apple-II

luistiagos, você afirmou me dizendo que não vou só programar, vou mecher com circuito, chips, soldas, acidos e por ai vai, a coisa é tensa…
Se você puder me dizer quais são essas soldas e acidos e que mal eles fazem a saude, me diga, se não puder ou não quiser responder , me diga que não vai responder.
Você me perguntou o que espero fazer com assembly, mas você não disse que não vou só programar, vou mecher com circuito, chips, soldas, acidos e por ai vai, a coisa é tensa…?
Mas se entendi errado entendo que não vou só programar usando por exemplo assembly, vou mecher com circuito, chips, soldas, acidos e por ai vai, a coisa é tensa…,
vou programar em quê? vou programar usando por exemplo assembly?

Cara eu quis dizer que onde assembly é mais usado é no desenvolvimento de hardwares e não softwares, e mexer com estas coisas faz parte de um engenheiro de hardwares, ao menos em uma graduação de engenharia vc deve aprender este tipo de coisa… Porem não conheço esta area e nem sei se todos os engenheiros mechem com isto… A unica coisa que sei é que assembly é mais usado no desenvolvimento de hardwares, dispositivos eletronicos, drivers e softwares destinados a esses hardwares, automação industrial, etc… Também é usado em alguns softwares comerciais e SOs mas não como linguagem principal e sim para contornar algumas situações que com C por exemplo não seria a melhor solução, isto digo no mercado e não no mundo academico. Uma coisa que sei é que esta área de engenharia eletrica e de hardware da bem mais grana do que TI por exemplo, porem tem um mercado bem mais restrito. Se quiser ser engenheiro, sugiro que faça uma graduação em engenharia eletrica, engenharia mecatronica ou engenharia da computação…

fantomas

++

P.S Você tambem percebeu que algo de errado não esta certo? rsrsr

flws

A

Para os que insistiram em me responder, muito obrigado pelas respostas . Os que querem me desanimar para tentar aprender isso, façam tudo o que puderem para me desanimar o mais rápido possível. Porque sou criticado por causa de tentar aprender?
E o que dizem das respostas contraditórias que foi dada a mim, por exemplo, o rmendes08 insistiu em dizer que Assembly é linguagem de máquina e o juliocbq contradisse isso dizendo que Assembly não é linguagem de máquina e ainda sou criticado por causa de tentar aprender.

Agora só me responda, por favor só quem continua interessado em me responder, senão há ninguém, façam parar esse assunto o mais rápido possível.

Qual é o site oficial e fórum oficial do Assembly? Se eles são escritos em inglês, quais são os sites e fóruns do Assembly escritos em português?

matheuslmota

assembler:
Para os que insistiram em me responder, muito obrigado pelas respostas . Os que querem me desanimar para tentar aprender isso, façam tudo o que puderem para me desanimar o mais rápido possível. Porque sou criticado por causa de tentar aprender?
E o que dizem das respostas contraditórias que foi dada a mim, por exemplo, o rmendes08 insistiu em dizer que Assembly é linguagem de máquina e o juliocbq contradisse isso dizendo que Assembly não é linguagem de máquina e ainda sou criticado por causa de tentar aprender.

Agora só me responda, por favor só quem continua interessado em me responder, senão há ninguém, façam parar esse assunto o mais rápido possível.

Qual é o site oficial e fórum oficial do Assembly? Se eles são escritos em inglês, quais são os sites e fóruns do Assembly escritos em português?

Não existe um “site oficial” do Assembly. Cada processador possui uma implementação diferente do Assembly. Por isso que eu disse lá no começo que para se estudar assembly é ncessário aprender um pouco de arquitetura de computadores. Fazendo isso, aprenderá assembly sem grandes dificuldades.

Para os processadores da Intel, existe um pdf que contém tudo o que é necessário saber sobre a arquitetura e a programação dos processadores deles:
http://download.intel.com/products/processor/manual/325462.pdf
O livro é gigante, mas basta estudar a parte de arquitetura.
Você pode também procurar algum microcontrolador e baixar o manual de desenvolvimento dele.

leandronsp

Cara, aprendi desde o começo dos meus estudos em computação que assembly é linguagem de alto nível para entendimento dos programadores. Aprendi que o compilador assembler converte isso pra instrução de máquina (bits). Eu nem sabia que cada arquitetura tinha o seu próprio “assembly”.

Acho que aprendi muito errado então.

matheuslmota

Cara, aprendi desde o começo dos meus estudos em computação que assembly é linguagem de alto nível para entendimento dos programadores. Aprendi que o compilador assembler converte isso pra instrução de máquina (bits). Eu nem sabia que cada arquitetura tinha o seu próprio “assembly”.

Acho que aprendi muito errado então.

Asembly não é linguagem de alto nível. Linguagens de alto nível são linguagens de programação sintaticamente próximas do entendimento humano. Assembly possui sintaxe próxima do hardware. Em assembly você manipula registradores, endereços de memória, instruções etc.
Além do mais, assembly não possui um compilador, possui um montador. Ele converte os mnemônicos do assembly é códigos de máquina. Vou te dar um exemplo. Suponhamos que tu tenhas a seguinte instrução:

mov ax, 2

O montador (no caso, estou usando o MASM), irá gerar o seguinte código:
B8 02 00
Onde o B8 é o correspondente do mnemônico mov e o 02 00 é o valor que está sendo movido para o registrador ax (como o registrador ax é de 16 bits, os primeiro é enviado o byte menos significativo e depois o byte mais significativo, ou seja , é enviado o valor 00 02 para o registrador ax).
Ou seja, o assembly é um conjunto de mnemônicos que representam instruções do processador. O montador sobstutui esses mmemônicos por códigos reais das intruções para aquele processador.
Esse código que foi gerado é para o processador Intel 8086. Se fosse gerar o corresponte para um microcontrolador PIC, certamente o código para a instrução mov seria diferente.

leandronsp

Certo, mas não é linguagem de máquina. Alto nível em se comparando com linguagem de máquina. Mas baixo nível se comparando com C, Fortran, etc…
Pelo menos foi isso que aprendi. E por isso que intriguei tudo o que eu sabia referente a esse assunto pelo mendes ter afirmado que Assembly é a linguagem de máquina.

No mais, a discussão está muito boa, apesar do autor do tópico me parecer um troll profissional usando a boa vontade alheia pra ficar tirando sarro.

leandronsp

Aqui -> http://pt.wikipedia.org/wiki/Assembly

Assembly, notação legível para humanos.

matheuslmota

leandronsp:
Aqui -> http://pt.wikipedia.org/wiki/Assembly

Assembly, notação legível para humanos.

Pois é mas a questão alto ou baixo nível não está nesse aspecto. Uma linguagem de alto nível permite expressar a lógica do teu problema de forma legível à humanos. Você não consegue expressar lógica de alto nível em um código assembly. Você não vai botar em assembly “…caso passem 4 carro pela cancela do estacionamento, dar uma pausa de 1 minutos” (exemplo tosco, eu sei). Mas em uma linguagem como Java ou C, conseguiria expressar isso facilmente. Isso que difere uma linguagem de alto nível de uma de baixo nível.

leandronsp

matheuslmota:
leandronsp:
Aqui -> http://pt.wikipedia.org/wiki/Assembly

Assembly, notação legível para humanos.

Pois é mas a questão alto ou baixo nível não está nesse aspecto. Uma linguagem de alto nível permite expressar a lógica do teu problema de forma legível à humanos. Você não consegue expressar lógica de alto nível em um código assembly. Você não vai botar em assembly “…caso passem 4 carro pela cancela do estacionamento, dar uma pausa de 1 minutos” (exemplo tosco, eu sei). Mas em uma linguagem como Java ou C, conseguiria expressar isso facilmente. Isso que difere uma linguagem de alto nível de uma de baixo nível.


Pode crer, pensando no contexto da lógica, bem isso mesmo. Com assembly não rola.

fantomas

Não rola numas né!?!? rsrsr.

O que você e o matheuslmota não estão levando em conta (não é culpa de vcs) é a linha do tempo. A “evolução” das linguagens, alem de outras coisas, é baseada também na melhora da expressão. A diferença da linguagem Assembly em relação as de hoje é melhora nas recursos em termos de se formar expressões mais inteligíveis - expressões mais próximas as utilizadas por humanos.

Baixo recurso em termos de expressão não faz da linguagem Assembly uma linguagem de baixo nível.

Temos que notar que, quando a linguagem Assembly surgiu não havia muitos recursos nos microprocessadores e nem muita memória…então não era possível implementar uma linguagem muito complexa em termos de expressões.

Como já foi dito, Assembly só é considerada de mais baixo nível quando comparada com linguagens mais recentes…provavelmente linguagens como Java e C++ serão consideradas de baixo nível um dia. Quem sabe?

Segundo conta a história o primeiro computador (máquina analítica) foi inventado pelo engenheiro cientista Charles Babbage e a primeira pessoa o desenvolver o algoritmo (plano para calcular os números de Bernoulli) para esta máquina foi a condessa Ada (é isso ai…uma mulher) --> http://www.miniweb.com.br/atualidade/tecnologia/artigos/ada_%20byron.html

Neste link vocês irão encontrar um resumo da historia dos computadores http://cadinformatica.br.tripod.com/ “modernos” rsrsr Quem prestar bastante atenção irá perceber que antes de surgir a linguagem Assembly muita água (e dinheiro) passou por debaixo da ponte camaradas.

A questão não é quem esta certo ou errado, e sim perceber que tudo esta relacionado a historia da evolução das coisas existentes em nossos dias; infelizmente nossas “universidades” deixam a desejar em alguns momentos.

P.S Existe uma linguagem chamada ADA, o nome foi atribuído em homenagem a condessa cita acima.

flws

matheuslmota

Não rola numas né!?!? rsrsr.

O que você e o matheuslmota não estão levando em conta (não é culpa de vcs) é a linha do tempo. A “evolução” das linguagens, alem de outras coisas, é baseada também na melhora da expressão. A diferença da linguagem Assembly em relação as de hoje é melhora nas recursos em termos de se formar expressões mais inteligíveis - expressões mais próximas as utilizadas por humanos.

Baixo recurso em termos de expressão não faz da linguagem Assembly uma linguagem de baixo nível.

Temos que notar que, quando a linguagem Assembly surgiu não havia muitos recursos nos microprocessadores e nem muita memória…então não era possível implementar uma linguagem muito complexa em termos de expressões.

Como já foi dito, Assembly só é considerada de mais baixo nível quando comparada com linguagens mais recentes…provavelmente linguagens como Java e C++ serão consideradas de baixo nível um dia. Quem sabe?

Segundo conta a história o primeiro computador (máquina analítica) foi inventado pelo engenheiro cientista Charles Babbage e a primeira pessoa o desenvolver o algoritmo (plano para calcular os números de Bernoulli) para esta máquina foi a condessa Ada (é isso ai…uma mulher) --> http://www.miniweb.com.br/atualidade/tecnologia/artigos/ada_%20byron.html

Neste link vocês irão encontrar um resumo da historia dos computadores http://cadinformatica.br.tripod.com/ “modernos” rsrsr Quem prestar bastante atenção irá perceber que antes de surgir a linguagem Assembly muita água (e dinheiro) passou por debaixo da ponte camaradas.

A questão não é quem esta certo ou errado, e sim perceber que tudo esta relacionado a historia da evolução das coisas existentes em nossos dias; infelizmente nossas “universidades” deixam a desejar em alguns momentos.

P.S Existe uma linguagem chamada ADA, o nome foi atribuído em homenagem a condessa cita acima.

flws

Linguagens de alto nível e baixo nível não são classificadas segundo critérios relativos. Linguagens de baixo nível são as linguagens que lidam diretamente com o Hardware, como Assembly, SystemC, VHDL e Verilog.
Linguagens de baixo nível descrevem interações com o Hardware. Linguagens de alto nível são usadas para expressar lógica de programação.
Quando eu disse que não podemos expressar lógica de programação em Assembly quis dizer que Assembly não foi projetada para isso.
Drivers de dispositivos, algorítmos de mapeamento de memória etc. isso sim é feito em Assembly, que é uma linguagem de programação de Hardware. Java, C#, Pascal etc são usadas para programação de softwares de alto nível, como gerenciadores de bancos de dados, navegadores de internet etc.

J

matheuslmota:

Linguagens de alto nível e baixo nível não são classificadas segundo critérios relativos. Linguagens de baixo nível são as linguagens que lidam diretamente com o Hardware, como Assembly, SystemC, VHDL e Verilog.
Linguagens de baixo nível descrevem interações com o Hardware. Linguagens de alto nível são usadas para expressar lógica de programação.
Quando eu disse que não podemos expressar lógica de programação em Assembly quis dizer que Assembly não foi projetada para isso.
Drivers de dispositivos, algorítmos de mapeamento de memória etc. isso sim é feito em Assembly, que é uma linguagem de programação de Hardware. Java, C#, Pascal etc são usadas para programação de softwares de alto nível, como gerenciadores de bancos de dados, navegadores de internet etc.

É essa mesma a idéia. Assembly não é “linguagem de programação”. É uma linguagem de montagem e é usada para controlar hardware. Não se pode dizer que assembly é um conceito antigo, pois na verdade ele é muito atual porque descreve as instruções de micros, e vai continuar sendo assim(olha o bytecode da maquina virtual, apenas mnemônicos também).
Linguagens de programação de alto nível como c++ e java são linguagens de aplicação(c++ também é linguagem de sistema assim como c, embora tenha nível mais alto).

A

juliocbq:

Pessoal, seguinte:
Assembly é muito usado, mas hoje em dia é um padrão fabricantes de micros disponibilizarem um compilador de uma linguagem qualquer(que seja c ou pascal ou basic).

luistiagos:

creio que é mais usado para fazer drivers de dispositivos, interfaciamento e isto ainda e raramente usado pois na maioria usa-se C, a questão primaria é o que vc vai usar assembly que não possa usar C?

Eu nunca quis fazer nem sem querer nenhum mal neste fórum, onde neste fórum tentei tirar sarro de alguém?
E o que dizem das contradições de resposta que houve no atual assunto, por exemplo o julio cbq diz que Assembly é muito usado e o luistiagos diz que ele é raramente usado? Os que me criticaram querem que eu tente ser vencedor pensando que “Windows é não gratuito e ao mesmo tempo gratuito” ou não procurar as respostas mínimas que devem haver para que exista a possibilidade de ser vencedor?

Depois de decidir fechar o atual assunto, sem querer senti muita saudade de estar tentando tirar dúvidas nele e de ler as mensagens que foram colocadas nele.

Estou com muito medo de perguntar no GUJ, lamento muito de ter sido proibido de perguntar no GUJ, tomara que isso seja engano, se estou enganado, tirem esse engano, por favor.

Quem dera que eu pudesse perguntar ao fantomas se houve epóca em que a Linguagem de Máquina e Hexadecimal foram consideradas Linguagens de Baixo Nível comparadas com o Assembly.

Mas antes de fechar o assunto, peço a todos que quiserem enviar a esse assunto, enviem:

[b]Como o leandronsp, perguntas sobre assembly e como o matheuslmota e o fantomas responderam ao leandronsp, respostas, mensagens e tudo o mais que desejarem colocar sobre o Assembly.

Respostas as perguntas que coloquei que não foram respondidas.

Conteúdo de Assembly que hoje é a única solução para coisas que só podem ser feitas em Assembly.
Conteúdo de Linguagem de Máquina e Hexadecimal que hoje é a única solução para coisas que só podem ser feitas em Linguagem de Máquina e Hexadecimal.

Só para satisfazer minha gigantesca curiosidade:
Conteúdo de Assembly que hoje não é a única solução para coisas que podem ser feitas em só uma linguagem, provavelmente a C ou que podem ser feitas em mais de uma linguagem.
Conteúdo de Linguagem de Máquina e Hexadecimal que hoje não são a única solução para coisas que podem ser feitas só em uma linguagem ou mais linguagens.
[/b]
Quando eu ver que nada mais será enviado a esse assunto, fecharei ele e se não conseguir fechá-lo, pedirei a todos que tem autoridade para fechá-lo fazerem isso.

rmendes08

Veja bem, isso é um fórum. Isso pressupõe que as respostas são baseadas nas opiniões dos autores. Algumas são bem fundamentadas, outras nem tanto, mas mesmo assim ainda são opiniões, sendo assim, a coisa mais normal do mundo é aparecer contradições. O seu papel nesse caso é correr atrás e pesquisar um pouco também.
Na boa, acho que antes de ficar pensando se vale a pena ou não aprender assembly o que você tem que fazer é enfiar a cara e estudar. Nenhum conhecimento é desperdício, absolutamente nenhum. Então, mesmo que você não encontre uma vaga específica para programador Assembly, você vai, no mínimo conhecer o funcionamento de um computador melhor do que muitos.

Para começar, uma googlada do tipo: “apostila Assembly” é mais do que suficiente. Com mais de 80.000 resultados, é impossível que 1 não te satisfaça.

A

rmendes08, obrigado de tamanho quase infinito por me fazer saber que estava enganado em pensar que estava proibido de perguntar no fórum.

fantomas:

A questão não é quem esta certo ou errado, e sim perceber que tudo esta relacionado a historia da evolução das coisas existentes em nossos dias; infelizmente nossas “universidades” deixam a desejar em alguns momentos.

fantomas, se você puder fale quais são as outras coisas que as nossas “universidades” deixam a desejar sobre a relação de tudo a historia da evolução das coisas existentes em nossos dias, se não puder falar todas elas, fale o que puder.

A

matheuslmota:

Linguagens de baixo nível são as linguagens que lidam diretamente com o Hardware, como Assembly, SystemC, VHDL e Verilog.

matheuslmota, você soube de onde da existência das linguagens SystemC, VHDL e Verilog? Se puder me diga quais são as outras linguagens que lidam diretamente com o hardware, se não puder falar todas elas, fale o que puder.

fantomas

Antes da década de 50. Hexadecimal, binário, octal e decimal eram bases utilizadas (são utilizadas ainda hoje) para facilitar o entendimento sobre os aspectos computacionais.

O que isso tem a ver com a linguagem Assembly meu caro?

flws

J

ô assembler, numa boa. Em vez de você ficar comparando os nossos posts com interesses exclusos, assimila o que a gente postou e procure no google por artigos onde possa colocá-los em xeque. É desse jeito que a gente aprende.

Você está parecendo um de três avatares aqui do guj famosos por trollar e avacalhar vários tópicos interessantes.

DavidUser

Você vai utilizar assembly quando tiver de trabalhar com pouco recurso ou quando desenvolve compiladores e outras atividades bem específicas.
A anos não se desenvolve em assembly puro a maior parte das aplicações pelas inúmeras vantagem disponibilizadas pelas linguagens em alto nível quando se trata de desenvolvimento em equipe, pois quanto mais próximo da linguagem humana mais fácil seu intendimento, mas este não pode ser considerado o único fator, já escrevi e li muito código em alto nível incompreensível até mesmo na visão de quem desenvolveu, não basta conhecer a ferramenta tem de saber a utilizar de forma benéfica a seus objetivos.

Fatos:
Que sabe assembly desenvolve melhor em qualquer outra linguagem que venha a conhecer bem pois sabe oque os códigos se tornarão após a compilação.
Quem aprende realmente bem assembly e já utiliza a um certo tempo vai se sentir engessado ao utilizar outras linguagens.

Quem tem forte conhecimento em assembly e matemática computacional faz mágica na otimização de programas, pois certos recursos só terão o máximo de aproveitamento com inlines assembly, ou outro método de integração do assembly, isso é um fato imutável pois até hoje não foi feito um compilador com a capacidade de transcrição de uma abstração maior que a de um programador assembly experiente, de modo análogo atualmente dificilmente um programador assembly sem experiência escrevera um código mais eficiente que um compilador na transcrição de código em alto nível, para o aproveitamento de se desenvolver em assembly e necessária uma abordagem do ponto de vista de desenvolvimento em questão.

Desenvolver em assembly exige mais capacidade do programador, trabalhar com assembly exige uma naturalidade na memorização de muita informação, grande capacidade de abstração, raciocínio lógico e matemático; todas são capacidades adquiridas com estudo e experiência.

Tudo uma hora vira assembly.

Obs.: Não critique ou questione a linguagem assembly ao menos que tenha no mínimo 1 ano de experiência com a mesma.

luistiagos

assembler:
juliocbq:

Pessoal, seguinte:
Assembly é muito usado, mas hoje em dia é um padrão fabricantes de micros disponibilizarem um compilador de uma linguagem qualquer(que seja c ou pascal ou basic).

Você sitou meu post e o post do Julio… Se ler com bastante atenção o que vc “quotou” vai observar que ambos falamos a mesma coisa.

Tem uns livros bons de arquitetura de computadores para você estudar… um deles é este: http://www.linuxmall.com.br/produto/livro-arquitetura-de-computadores-uma-abordagem-quantitativa.html

A

fantomas, nunca ouvi falar das bases octal e decimal. De onde você soube da existência delas, de onde você soube que antes da década de 50 as bases hexadecimal, binário, octal e decimal eram consideradas Linguagens de Baixo Nível comparadas com o Assembly, que eram bases utilizadas (são utilizadas ainda hoje) para facilitar o entendimento sobre os aspectos computacionais? As bases hexadecimal, binário, octal e decimal são usadas para programar?

luistiagos

Aqui vai um “Olá, Mundo” em assembly:

variable:
   .message   db   "Olá, Mundo!$"
code:
   mov  ah, 9
   mov  dx, offset .message
   int  0x21
   ret

e um em C++

cout << "Olá, Mundo!"

Qual dos 2 vc acha mais produtivo e menos trabalhoso?

A resposta correta desta pergunta vai te responder o pq assembly não é mais tão usado hoje em dia…

rmendes08

fantomas, nunca ouvi falar das bases octal e decimal. De onde você soube da existência delas, de onde você soube que antes da década de 50 as bases hexadecimal, binário, octal e decimal eram consideradas Linguagens de Baixo Nível comparadas com o Assembly, que eram bases utilizadas (são utilizadas ainda hoje) para facilitar o entendimento sobre os aspectos computacionais? As bases hexadecimal, binário, octal e decimal são usadas para programar?

Cara, muito disso você aprende na faculdade, e muito mais você aprende PESQUISANDO. Na boa mesmo, a sua dúvida já foi mais do que respondida, agora tá na hora de você correr atrás um pouco.

DavidUser

fantomas, nunca ouvi falar das bases octal e decimal. De onde você soube da existência delas, de onde você soube que antes da década de 50 as bases hexadecimal, binário, octal e decimal eram consideradas Linguagens de Baixo Nível comparadas com o Assembly, que eram bases utilizadas (são utilizadas ainda hoje) para facilitar o entendimento sobre os aspectos computacionais? As bases hexadecimal, binário, octal e decimal são usadas para programar?

Bases numéricas são referentes a matemática e foram criadas a séculos por matemáticos como Pingala, no mesmo período foram criadas lógica booleana dentre outras alguns links do wikipédia para um melhor entendimento seguem abaixo, basicamente tudo que atualmente existe na informática como em vários outros campos específicos foram baseados em conceitos e teorias criadas por matemáticos e lógicos, no caso da informática essa aproximação é ainda maior e mais óbvia.
http://pt.wikipedia.org/wiki/Sistema_bin%C3%A1rio_(matem%C3%A1tica)



http://pt.wikipedia.org/wiki/Conversão_entre_sistemas_numéricos

como pode se ver podemos ter infinitas bases de operação, mas nos computadores atuais é muito comum opção por bases octal e hexa pois tem uma conversão para binário e vice-versa direta, como os computadores até agora utilizam a álgebra booleana o binário é o melhor modo de representação físico.

A

rmendes08:
http://info.abril.com.br/professional/os-melhores-na-graduacao.html

o link acima é uma boa referência para faculdades de computação …

Mas de maneira geral, os cursos das públicas são os melhores, mas tem particulares muito boas como a PUC. O que você deve evitar são as UniEsquinas da vida, que aceitam qualquer um. Nessas faculdades geralmente o nível dos alunos é mais baixo, e como consequencia, o nivel do curso de maneira geral cai junto.

O que devo fazer para saber quais são as UniEsquinas da vida, que aceitam qualquer um?

entanglement:
Estou aqui no meu departamento e meu chefe é formado engenheiro químico, eu sou engenheiro eletrônico, assim como o indiano que também está trabalhando aqui, e o outro carinha aqui do meu lado tem doutorado não lembro exatamente em quê - sei lá se engenheiro civil é “menos suficiente” que engenheiro da computação. Aliás, não tem muitos engenheiros de computação aqui.
O que é ‘mais suficiente’ é você procurar o seu caminho e estudar numa escola de nome - até para conseguir bons contatos (mais conhecidos como “Q.I.” - “quem indica”).
E para estudar numa escola de nome, se você não nasceu filhinho de papai, vai ter de ralar bastante. Não é fácil não.

entanglement:
Não vou listar as “escolas de nome” até porque:

  • Há rankings disponíveis
  • Depende muito do tipo de coisa que você for fazer
  • Mudam bastante, de modo geral - e é por isso que há rankings anuais
  • Se você for fazer um curso no estrangeiro, o que é de “nome” lá pode ser completamente desconhecido aqui. Por exemplo, não tenho razões para duvidar que a Iran University of Science & Technology seja uma escola de nome lá no Irã (uma vez até houve uma pessoa de lá que se inscreveu no GUJ e tentou postar algumas coisas em inglês) - pela Wikipedia ela é uma das quatro grandes no Irã, mas aqui ela é completamente desconhecida.

De modo geral, muitas universidades e faculdades públicas aqui do Sudeste (como USP, Unicamp, ITA, IME etc.) sáo as tais “escolas de nome” que disse genericamente.
Eu disse que o “Q.I” é importante - por exemplo, há uns 30 anos atrás (não sei se hoje ainda é assim) a FAAP não era exatamente conhecida por ser uma escola “de renome” mas porque havia muita gente rica estudando lá e você poderia conseguir bons contatos - e como o pessoal costuma dizer, “o pior problema do pobre é que seus amigos também são pobres”. Não sei como isso ficou hoje em dia.

O que devo fazer para saber quais são as universidades e faculdades que não são exatamente conhecidas por serem escolas " de renome", mas que há muita gente rica estudando nelas? Pergunto isso porque estou muito interessado em conseguir bons contatos.

luistiagos:
Aqui vai um “Olá, Mundo” em assembly:

variable:
   .message   db   "Olá, Mundo!$"
code:
   mov  ah, 9
   mov  dx, offset .message
   int  0x21
   ret

e um em C++

cout << "Olá, Mundo!"

Qual dos 2 vc acha mais produtivo e menos trabalhoso?

A resposta correta desta pergunta vai te responder o pq assembly não é mais tão usado hoje em dia…


luistiagos, o mais produtivo e menos trabalhoso é o “Olá, Mundo” em C++. luistiagos, mas C++ dá grana igual ao Assembly?

luistiagos ,você disse ou não que uma coisa que sabe é que esta área de engenharia eletrica e de hardware da bem mais grana do que TI por exemplo, porem tem um mercado bem mais restrito? Mas a maioria dos programadores sabem disso? Se soubessem, o Assembly seria o que você chama de “tão usado hoje em dia…”?

No assunto Vale a pena estudar assembly, assunto que foi colocado no GUJ por você em 31/07/2008, você perguntou “Vale a pena estudar assembly?”
Parte da resposta do popeye foi assim:“Um salário minimo pra quem programa direto em assembly ta na faixa de uns 30 mil.”
Você perguntou a ele onde foi que le viu isso. Parte da resposta dele foi assim: " Claro que não. Ninguém bota uma vaga no Catho pra programador Assembly. Tem que ter os contatos, as entrelinhas. "
Você falou para ele que "mas esta do 30k por mes se isto for verdade mesmo vou começar a me dedicar mais a hardware e micocrontoladores do que programação de alto nivel… "
Quantos mais que se soubessem disso, teriam começado a se dedicar mais a hardware e microcontroladores do que programação de alto nivel? A maioria dos programadores? Se a resposta a essa pergunta tivesse sido sim, a maioria dos programadores provavelmente teriam decidido como você, decidido começar a se dedicarem mais a hardware e micocrontoladores do que programação de alto nivel e provavelmente o Assembly hoje em dia estaria sendo o que você chama de “tão usado hoje em dia…”.

luistiagos

assembler:
rmendes08:
http://info.abril.com.br/professional/os-melhores-na-graduacao.html

o link acima é uma boa referência para faculdades de computação …

Mas de maneira geral, os cursos das públicas são os melhores, mas tem particulares muito boas como a PUC. O que você deve evitar são as UniEsquinas da vida, que aceitam qualquer um. Nessas faculdades geralmente o nível dos alunos é mais baixo, e como consequencia, o nivel do curso de maneira geral cai junto.

O que devo fazer para saber quais são as UniEsquinas da vida, que aceitam qualquer um?

entanglement:
Estou aqui no meu departamento e meu chefe é formado engenheiro químico, eu sou engenheiro eletrônico, assim como o indiano que também está trabalhando aqui, e o outro carinha aqui do meu lado tem doutorado não lembro exatamente em quê - sei lá se engenheiro civil é “menos suficiente” que engenheiro da computação. Aliás, não tem muitos engenheiros de computação aqui.
O que é ‘mais suficiente’ é você procurar o seu caminho e estudar numa escola de nome - até para conseguir bons contatos (mais conhecidos como “Q.I.” - “quem indica”).
E para estudar numa escola de nome, se você não nasceu filhinho de papai, vai ter de ralar bastante. Não é fácil não.

entanglement:
Não vou listar as “escolas de nome” até porque:

  • Há rankings disponíveis
  • Depende muito do tipo de coisa que você for fazer
  • Mudam bastante, de modo geral - e é por isso que há rankings anuais
  • Se você for fazer um curso no estrangeiro, o que é de “nome” lá pode ser completamente desconhecido aqui. Por exemplo, não tenho razões para duvidar que a Iran University of Science & Technology seja uma escola de nome lá no Irã (uma vez até houve uma pessoa de lá que se inscreveu no GUJ e tentou postar algumas coisas em inglês) - pela Wikipedia ela é uma das quatro grandes no Irã, mas aqui ela é completamente desconhecida.

De modo geral, muitas universidades e faculdades públicas aqui do Sudeste (como USP, Unicamp, ITA, IME etc.) sáo as tais “escolas de nome” que disse genericamente.
Eu disse que o “Q.I” é importante - por exemplo, há uns 30 anos atrás (não sei se hoje ainda é assim) a FAAP não era exatamente conhecida por ser uma escola “de renome” mas porque havia muita gente rica estudando lá e você poderia conseguir bons contatos - e como o pessoal costuma dizer, “o pior problema do pobre é que seus amigos também são pobres”. Não sei como isso ficou hoje em dia.

O que devo fazer para saber quais são as universidades e faculdades que não são exatamente conhecidas por serem escolas " de renome", mas que há muita gente rica estudando nelas? Pergunto isso porque estou muito interessado em conseguir bons contatos.

luistiagos:
Aqui vai um “Olá, Mundo” em assembly:

variable:
   .message   db   "Olá, Mundo!$"
code:
   mov  ah, 9
   mov  dx, offset .message
   int  0x21
   ret

e um em C++

cout << "Olá, Mundo!"

Qual dos 2 vc acha mais produtivo e menos trabalhoso?

A resposta correta desta pergunta vai te responder o pq assembly não é mais tão usado hoje em dia…


luistiagos, o mais produtivo e menos trabalhoso é o “Olá, Mundo” em C++. luistiagos, mas C++ dá grana igual ao Assembly?

luistiagos ,você disse ou não que uma coisa que sabe é que esta área de engenharia eletrica e de hardware da bem mais grana do que TI por exemplo, porem tem um mercado bem mais restrito? Mas a maioria dos programadores sabem disso? Se soubessem, o Assembly seria o que você chama de “tão usado hoje em dia…”?

No assunto Vale a pena estudar assembly, assunto que foi colocado no GUJ por você em 31/07/2008, você perguntou “Vale a pena estudar assembly?”
Parte da resposta do popeye foi assim:“Um salário minimo pra quem programa direto em assembly ta na faixa de uns 30 mil.”
Você perguntou a ele onde foi que le viu isso. Parte da resposta dele foi assim: " Claro que não. Ninguém bota uma vaga no Catho pra programador Assembly. Tem que ter os contatos, as entrelinhas. "
Você falou para ele que "mas esta do 30k por mes se isto for verdade mesmo vou começar a me dedicar mais a hardware e micocrontoladores do que programação de alto nivel… "
Quantos mais que se soubessem disso, teriam começado a se dedicar mais a hardware e microcontroladores do que programação de alto nivel? A maioria dos programadores? Se a resposta a essa pergunta tivesse sido sim, a maioria dos programadores provavelmente teriam decidido como você, decidido começar a se dedicarem mais a hardware e micocrontoladores do que programação de alto nivel e provavelmente o Assembly hoje em dia estaria sendo o que você chama de “tão usado hoje em dia…”.

Cara pelo jeito ta dificil de entender heim… vai lá no netcarreiras: www.netcarreiras.com.br e procura vaga para programador assembly e veja quantas vc acha, provavelmente algo proximo a zero, isto pq hoje em dia assembly não tem mais mercado! A grande maioria das coisas vc pode fazer com C/C++ que como eu te mostrei e muito mais produtivo, até sistemas embarcados, pics, chips, hardwares hoje em dia permitem que vc programe em C ao invéz de assembly! Claro que tem as exeções mas elas são exeções e não regra! Mesmo um engenheiro de hardware tende a trabalhar mais com C e em casos raros usar assembly! As faculdades ensinam assembly não para o cara aprender a programar em assembly mas sim para ele ter uma base solida de como funciona o hardware, os endereços de memoria, os registradores, compiladores e por ai vai… Para o mercado raramente vai achar algo que use assembly.

O pq vc acha que ele disse que o salario de quem programa direto assembly é uns 30k? Pq hoje em dia não existe ou quase não existe pessoas que fazem isto, e pq não existem estas pessoas? pq não existe demanda! Mas estes 30k é viajem do cara. Mesmo se achassem um vovo que programasse em assembly para uma demanda em um microcontrolador antigo seria mais barato trocar o microcontrolador para um mais novo que pagar isto pro cara. E é verdade engenheiros eletronicos ganham bem mais que nos de TI, talvez pq a profissão deles é regulamentada, tem um orgão sério e não tem amadores no mercado. Mas não entrarei neste ponto aqui, pois já tem um outro tópico sobre isto… Naquela época até pensava em fazer uma faculdade de engenharia elétrica, porem hardware não é minha “praia” meu negocio é software e já estou velho para fazer uma outra faculdade de engenharia!
Mas se vc quer tanto mexer com hardware e é novo, pq não faz uma faculdade de engenharia elétrica?

A

luistiagos:
assembler:
rmendes08:
http://info.abril.com.br/professional/os-melhores-na-graduacao.html

o link acima é uma boa referência para faculdades de computação …

Mas de maneira geral, os cursos das públicas são os melhores, mas tem particulares muito boas como a PUC. O que você deve evitar são as UniEsquinas da vida, que aceitam qualquer um. Nessas faculdades geralmente o nível dos alunos é mais baixo, e como consequencia, o nivel do curso de maneira geral cai junto.

O que devo fazer para saber quais são as UniEsquinas da vida, que aceitam qualquer um?

entanglement:
Estou aqui no meu departamento e meu chefe é formado engenheiro químico, eu sou engenheiro eletrônico, assim como o indiano que também está trabalhando aqui, e o outro carinha aqui do meu lado tem doutorado não lembro exatamente em quê - sei lá se engenheiro civil é “menos suficiente” que engenheiro da computação. Aliás, não tem muitos engenheiros de computação aqui.
O que é ‘mais suficiente’ é você procurar o seu caminho e estudar numa escola de nome - até para conseguir bons contatos (mais conhecidos como “Q.I.” - “quem indica”).
E para estudar numa escola de nome, se você não nasceu filhinho de papai, vai ter de ralar bastante. Não é fácil não.

entanglement:
Não vou listar as “escolas de nome” até porque:

  • Há rankings disponíveis
  • Depende muito do tipo de coisa que você for fazer
  • Mudam bastante, de modo geral - e é por isso que há rankings anuais
  • Se você for fazer um curso no estrangeiro, o que é de “nome” lá pode ser completamente desconhecido aqui. Por exemplo, não tenho razões para duvidar que a Iran University of Science & Technology seja uma escola de nome lá no Irã (uma vez até houve uma pessoa de lá que se inscreveu no GUJ e tentou postar algumas coisas em inglês) - pela Wikipedia ela é uma das quatro grandes no Irã, mas aqui ela é completamente desconhecida.

De modo geral, muitas universidades e faculdades públicas aqui do Sudeste (como USP, Unicamp, ITA, IME etc.) sáo as tais “escolas de nome” que disse genericamente.
Eu disse que o “Q.I” é importante - por exemplo, há uns 30 anos atrás (não sei se hoje ainda é assim) a FAAP não era exatamente conhecida por ser uma escola “de renome” mas porque havia muita gente rica estudando lá e você poderia conseguir bons contatos - e como o pessoal costuma dizer, “o pior problema do pobre é que seus amigos também são pobres”. Não sei como isso ficou hoje em dia.

O que devo fazer para saber quais são as universidades e faculdades que não são exatamente conhecidas por serem escolas " de renome", mas que há muita gente rica estudando nelas? Pergunto isso porque estou muito interessado em conseguir bons contatos.

luistiagos:
Aqui vai um “Olá, Mundo” em assembly:

variable:
   .message   db   "Olá, Mundo!$"
code:
   mov  ah, 9
   mov  dx, offset .message
   int  0x21
   ret

e um em C++

cout << "Olá, Mundo!"

Qual dos 2 vc acha mais produtivo e menos trabalhoso?

A resposta correta desta pergunta vai te responder o pq assembly não é mais tão usado hoje em dia…


luistiagos, o mais produtivo e menos trabalhoso é o “Olá, Mundo” em C++. luistiagos, mas C++ dá grana igual ao Assembly?

luistiagos ,você disse ou não que uma coisa que sabe é que esta área de engenharia eletrica e de hardware da bem mais grana do que TI por exemplo, porem tem um mercado bem mais restrito? Mas a maioria dos programadores sabem disso? Se soubessem, o Assembly seria o que você chama de “tão usado hoje em dia…”?

No assunto Vale a pena estudar assembly, assunto que foi colocado no GUJ por você em 31/07/2008, você perguntou “Vale a pena estudar assembly?”
Parte da resposta do popeye foi assim:“Um salário minimo pra quem programa direto em assembly ta na faixa de uns 30 mil.”
Você perguntou a ele onde foi que le viu isso. Parte da resposta dele foi assim: " Claro que não. Ninguém bota uma vaga no Catho pra programador Assembly. Tem que ter os contatos, as entrelinhas. "
Você falou para ele que "mas esta do 30k por mes se isto for verdade mesmo vou começar a me dedicar mais a hardware e micocrontoladores do que programação de alto nivel… "
Quantos mais que se soubessem disso, teriam começado a se dedicar mais a hardware e microcontroladores do que programação de alto nivel? A maioria dos programadores? Se a resposta a essa pergunta tivesse sido sim, a maioria dos programadores provavelmente teriam decidido como você, decidido começar a se dedicarem mais a hardware e micocrontoladores do que programação de alto nivel e provavelmente o Assembly hoje em dia estaria sendo o que você chama de “tão usado hoje em dia…”.

Cara pelo jeito ta dificil de entender heim… vai lá no netcarreiras: www.netcarreiras.com.br e procura vaga para programador assembly e veja quantas vc acha, provavelmente algo proximo a zero, isto pq hoje em dia assembly não tem mais mercado! A grande maioria das coisas vc pode fazer com C/C++ que como eu te mostrei e muito mais produtivo, até sistemas embarcados, pics, chips, hardwares hoje em dia permitem que vc programe em C ao invéz de assembly! Claro que tem as exeções mas elas são exeções e não regra! Mesmo um engenheiro de hardware tende a trabalhar mais com C e em casos raros usar assembly! As faculdades ensinam assembly não para o cara aprender a programar em assembly mas sim para ele ter uma base solida de como funciona o hardware, os endereços de memoria, os registradores, compiladores e por ai vai… Para o mercado raramente vai achar algo que use assembly.

O pq vc acha que ele disse que o salario de quem programa direto assembly é uns 30k? Pq hoje em dia não existe ou quase não existe pessoas que fazem isto, e pq não existem estas pessoas? pq não existe demanda! Mas estes 30k é viajem do cara. Mesmo se achassem um vovo que programasse em assembly para uma demanda em um microcontrolador antigo seria mais barato trocar o microcontrolador para um mais novo que pagar isto pro cara. E é verdade engenheiros eletronicos ganham bem mais que nos de TI, talvez pq a profissão deles é regulamentada, tem um orgão sério e não tem amadores no mercado. Mas não entrarei neste ponto aqui, pois já tem um outro tópico sobre isto… Naquela época até pensava em fazer uma faculdade de engenharia elétrica, porem hardware não é minha “praia” meu negocio é software e já estou velho para fazer uma outra faculdade de engenharia!
Mas se vc quer tanto mexer com hardware e é novo, pq não faz uma faculdade de engenharia elétrica?

luistiagos, como é que vou diferenciar nos fóruns o conteúdo que é viagem e o que não é viagem? O Popeye fez essas afirmações, deu a entender que estava falando sério. E sobre as afirmações que foram faladas no atual assunto, o que devo fazer para saber qual é e qual não é viajem, se tem viajem?

luistiagos

veja bem… vc não pode confiar em todas as informações em qualquer lugar da net, para averiguar se a informação realmente é algo valido pesquise sobre ela e veja… use um pouco mais o google e veja se uma informação é realmente relevante… Se ela se encontra em varias fontes distintas ela possivelmente é relevante… Mas as vezes é complicado mesmo… E procure usar também mais a sua lógica para verificar se tal informação é relevante… Neste caso dizer que quem trampa com isto ganha 30k não tem muita lógica não concorda?!

J

assembler, desculpa perguntar mas vc tem quantos anos?

Sharkns

luistiagos, o mais produtivo e menos trabalhoso é o “Olá, Mundo” em C++. luistiagos, mas C++ dá grana igual ao Assembly?

luistiagos wrote:
Uma coisa que sei é que esta área de engenharia eletrica e de hardware da bem mais grana do que TI por exemplo, porem tem um mercado bem mais restrito.

Acho isso bem relativo, programadores top’s de linguagens de alto nível também ganham muita grana, basta você ser bom.

obs: falo isso com base nos programadores que eu conheço, meu vizinho e grande amigo trabalha com java ganha 8k da empresa dele, da aula em faculdade e as vezes faz uns sistemas por fora, acho que deve dar uma boa grana rsrs, outra amiga minha trabalha com cobol, ganha 15k no emprego dela, outro conhecido analista de sistemas, 15k na empresa dele… enfim…

luistiagos

Sharkns:
luistiagos, o mais produtivo e menos trabalhoso é o “Olá, Mundo” em C++. luistiagos, mas C++ dá grana igual ao Assembly?

luistiagos wrote:
Uma coisa que sei é que esta área de engenharia eletrica e de hardware da bem mais grana do que TI por exemplo, porem tem um mercado bem mais restrito.

Acho isso bem relativo, programadores top’s de linguagens de alto nível também ganham muita grana, basta você ser bom.

obs: falo isso com base nos programadores que eu conheço, meu vizinho e grande amigo trabalha com java ganha 8k da empresa dele, da aula em faculdade e as vezes faz uns sistemas por fora, acho que deve dar uma boa grana rsrs, outra amiga minha trabalha com cobol, ganha 15k no emprego dela, outro conhecido analista de sistemas, 15k na empresa dele… enfim…

Não basta ser apenas bom… Tem que morar em sp e ter muita mas muita sorte mesmo…

Sharkns

Bom eu não sei como esta por ai mas eu moro em brasília e aqui as vagas não são ruins pra quem sabe… E eu trocaria esse “sorte” por correr atras, tenho um amigo que não pode nem ser titulado como junior, hoje mais cedo encontrei com ele por acaso, ele conseguiu um estágio pra ganhar micharia com .net mas la ele fez contatos mostrou serviço e o ex chefe dele agora muito tempo depois o indicou para um cargo comissionado em uma secretaria aqui do df, o cara vai ganhar 2,500 vai ter alguem la pra auxiliar ele e vai estar fazendo o que gosta, claro que isso não acontece todo dia e nem com todo mundo mas ainda não vi ninguém que não correu atras e ralou um pouco ficar a vida toda ganhando micharia.

Um curso superior ajuda e muito também, tem muito concurso ai pra ganhar bem, e só estudar :smiley:

E claro essa e só minha opinião não é uma regra mas prefiro pensar assim pelo menos por enquanto pra me motivar nos estudos kkkk :smiley:

DavidUser

No momento em que um empregado ganhar bem ele provavelmente está sendo surrupiado e seu trabalho valerá bem mais que o que seu soldo.

Estude e aplique conhecimento, trabalhe para encontrar estabilidade e faça o seu trabalho.

Curso Engenharia de Computação e posso dizer com clareza pela experiência dos meus conhecidos formados e professores da universidade, o profissional vale o que sabe e não o diploma que tem currículo é algo muito importate para uma primeira etapa num processo seletivo mas os bons empregos são conquistados por indicação, saiba e faça um bom trabalho assim você conseguirá um melhor.

Tem muito profissional técnico Expert em programação, otimização de BD, …
Tem muito economista mestre em computação como é o caso de um pesquisador de minha universidade
Tem muito Bacharel sem nem mesmo emprego pois não tem qualificação real, “conhecimento”.

Não interessa qual curso escolher interessa o conhecimento que adquirir e não pense que uma faculdade vai lhe dar o conhecimento necessário pois se depender apenas do que lhe ensinam pode acabar passando fome, ao menos que como dito vá para uma universidade de renome e consequentemente bom ensino, o que lhe obriga a ser auto de data novamente.

A

luistiagos, desde quando assembly não tem mercado, não tem demanda?

luistiagos

luistiagos, desde quando assembly não tem mercado, não tem demanda?

A alguns anos atraz ainda tinha… mas hoje em dia é muito difícil.

Gabriel

luistiagos, desde quando assembly não tem mercado, não tem demanda?

A alguns anos atraz ainda tinha… mas hoje em dia é muito difícil.

Você acha mesmo que porque você não encontra muitas vagas em portais de emprego populares isso quer dizer que não existe demanda de trabalho para quem programa em assembly?

Cara, o mercado de desenvolvimento de software é muito grande, existem muitas empresas e muitas coisas sendo feitas em N linguagens e plataformas. No Brasil e no mundo todo. Acho que você diz isso pois assembly não é o tipo de “liguagem” que você faz um curso e pode simplesmente “ir pro mercado”(como Java, .Net e afins), mas tem trabalho sim.

Esses dias mesmo abri um tópico no grupo de discussão de desenvolvedores Objective-C(https://groups.google.com/forum/?fromgroups#!forum/selfsp) perguntando que tecnologias o pessoal achava que um desenvolvedor iOS deve dominar. O Rodrigo Kumpera(http://www.kumpera.net/blog/) respondeu que depende muito do que você quer fazer, porque a maior parte do dia-a-dia dele com iOS envolve mach e arm assembly e raramente Objective-C. Isso porque ele trabalha para a Xamarin com o Mono Touch(http://xamarin.com/monotouch), uma plataforma cross-plataform onde você escreve codigo C# para Android e iOS.

A Xamarin não é a única empresa que desenvolve este tipo de ferramenta, assim como existem vários outros segmentos que utilizam desenvolvimento assembly em suas ferramentas e produtos.

J

luistiagos, desde quando assembly não tem mercado, não tem demanda?

A alguns anos atraz ainda tinha… mas hoje em dia é muito difícil.

Você acha mesmo que porque você não encontra muitas vagas em portais de emprego populares isso quer dizer que não existe demanda de trabalho para quem programa em assembly?

Cara, o mercado de desenvolvimento de software é muito grande, existem muitas empresas e muitas coisas sendo feitas em N linguagens e plataformas. No Brasil e no mundo todo. Acho que você diz isso pois assembly não é o tipo de “liguagem” que você faz um curso e pode simplesmente “ir pro mercado”(como Java, .Net e afins), mas tem trabalho sim.

Esses dias mesmo abri um tópico no grupo de discussão de desenvolvedores Objective-C(https://groups.google.com/forum/?fromgroups#!forum/selfsp) perguntando que tecnologias o pessoal achava que um desenvolvedor iOS deve dominar. O Rodrigo Kumpera(http://www.kumpera.net/blog/) respondeu que depende muito do que você quer fazer, porque a maior parte do dia-a-dia dele com iOS envolve mach e arm assembly e raramente Objective-C. Isso porque ele trabalha para a Xamarin com o Mono Touch(http://xamarin.com/monotouch), uma plataforma cross-plataform onde você escreve codigo C# para Android e iOS.

A Xamarin não é a única empresa que desenvolve este tipo de ferramenta, assim como existem vários outros segmentos que utilizam desenvolvimento assembly em suas ferramentas e produtos.

Não precisa ir muito longe não. Aqui em Santa Rita do Sapucaí tem muito trabalho de assembly. Mas é coisa para engenharia elétrica.

luistiagos

Sendo engenheiro elétrico dai sim. Porem para atuar unicamente como programador assembly é meio difícil hoje em dia…

Gabriel

Quantos bons programadores hoje em dia trabalham “só” com uma tecnologia/framework/ferramenta?

WRYEL

Quantos bons programadores hoje em dia trabalham “só” com uma tecnologia/framework/ferramenta?

// troll
os bons e velhos DBA’s oracles :smiley:

Assembly/C está na minha lista de coisas para aprender também.

luistiagos

Quantos bons programadores hoje em dia trabalham “só” com uma tecnologia/framework/ferramenta?

O que quis dizer é que quem costuma mexer com isto geralmente mexe não só com programação e sim principalmente com a parte fisica, montar placas, soldar, etc…
Geralmente isto faz parte do trabalho de um engenheiro elétrico… E programar uma placa é foda, quando vc desenvolve um código e ele tem um bug vc vai na linha do bug e arruma. Agora quando vc desenvolve um circuito não tem este privilégio… um mero erro e sua placa já era, alem da montagem do dispositivo vc tem que se estressar com a resistência do material usado e a tensão da corrente (já fritei uns fios por causa disto).

J

Quantos bons programadores hoje em dia trabalham “só” com uma tecnologia/framework/ferramenta?

O que quis dizer é que quem costuma mexer com isto geralmente mexe não só com programação e sim principalmente com a parte fisica, montar placas, soldar, etc…
Geralmente isto faz parte do trabalho de um engenheiro elétrico… E programar uma placa é foda, quando vc desenvolve um código e ele tem um bug vc vai na linha do bug e arruma. Agora quando vc desenvolve um circuito não tem este privilégio… um mero erro e sua placa já era, alem da montagem do dispositivo vc tem que se estressar com a resistência do material usado e a tensão da corrente (já fritei uns fios por causa disto).

Sei que não vem muito ao caso e também não sei como o pessoal ao certo trabalha, mas conhecidos que trabalham na area utilizam softwares que simulam toda a parte de projeto do circuito, ou seja… fica igual debugar um programa mesmo…
O trampo final é praticamente um de/para, de sair do projeto “lógico” e “implementar” no fisico (soldas, placas e afins)… e me falaram que muitas vezes quem acaba fazendo esse trabalho é o técnico e não o engenheiro (como tudo há excessões)…

mas não sei se na pratica é realmente assim!

J

Quantos bons programadores hoje em dia trabalham “só” com uma tecnologia/framework/ferramenta?

O que quis dizer é que quem costuma mexer com isto geralmente mexe não só com programação e sim principalmente com a parte fisica, montar placas, soldar, etc…
Geralmente isto faz parte do trabalho de um engenheiro elétrico… E programar uma placa é foda, quando vc desenvolve um código e ele tem um bug vc vai na linha do bug e arruma. Agora quando vc desenvolve um circuito não tem este privilégio… um mero erro e sua placa já era, alem da montagem do dispositivo vc tem que se estressar com a resistência do material usado e a tensão da corrente (já fritei uns fios por causa disto).

Sei que não vem muito ao caso e também não sei como o pessoal ao certo trabalha, mas conhecidos que trabalham na area utilizam softwares que simulam toda a parte de projeto do circuito, ou seja… fica igual debugar um programa mesmo…
O trampo final é praticamente um de/para, de sair do projeto “lógico” e “implementar” no fisico (soldas, placas e afins)… e me falaram que muitas vezes quem acaba fazendo esse trabalho é o técnico e não o engenheiro (como tudo há excessões)…

mas não sei se na pratica é realmente assim!

Mas você está totalmente certo. O trabalho do engenheiro é projetar(desenhar no cad, etc…). Normalmente o que acontece aqui em Santa Rita é a maioria dos engenheiros já terem passado pela ETE(Escola Técnica de Eletrônica) e depois estudarem engenharia no INATEL. A ETE é referência em eletrônica na américa latina. Como o pessoal faz ETE, a maioria dos estudantes de engenharia se forma completo(com teoria e muita prática).

voltando para o assembly e campo de atuação:
O que o pessoal ainda não entendeu é que assembly não é ferramenta para ser usada no ramo em que a maioria das pessoas do guj atuam que é o da tecnologia de informação. Assembly não tem utilidade nisso. Mas quando você muda para o campo da engenharia elétrica aí é muito comum. Tem muita gente aqui que faz trabalho independente programando microcontroladores. As empresas daqui também usam bastante, embora também a maioria empregue a linguagem c como padrão.

DavidUser

Quantos bons programadores hoje em dia trabalham “só” com uma tecnologia/framework/ferramenta?

O que quis dizer é que quem costuma mexer com isto geralmente mexe não só com programação e sim principalmente com a parte fisica, montar placas, soldar, etc…
Geralmente isto faz parte do trabalho de um engenheiro elétrico… E programar uma placa é foda, quando vc desenvolve um código e ele tem um bug vc vai na linha do bug e arruma. Agora quando vc desenvolve um circuito não tem este privilégio… um mero erro e sua placa já era, alem da montagem do dispositivo vc tem que se estressar com a resistência do material usado e a tensão da corrente (já fritei uns fios por causa disto).

Existem programas como Proteus para protótipo e teste de circuitos de placas, normalmente utilizamos assembly e C na programação de microcontroladores e muitas vezes é relativamente fácil caso o problema seja em tal programação, são utilizadas e desenvolvidas diversas firmwares para tal, alguns nos possibilitam trabalhar até mesmo com atualizações das firmwares que podem ser dadas por vários tipos de barramento de I/O especializados.

ViniGodoy

Na verdade, são um pouco mais antigas que isso, datam de mais de 3.000 AC.
Os babilônicos usavam para fazer as contas os nós e as pontas de quatro dedos das mãos, enquanto o dedão era usado para apontar em que dedo estavam.

A mão destra contava até 16, enquanto a mão canhota mostrava a parte da “dezena” (quantos 16 já haviam sido contados). Ou seja, as duas mão poderiam contar até 255 itens!

Os egípicios (também em lá vai fumaça antes de cristo), já haviam desenvolvido métodos matemáticos para conversões de bases (também criaram o calendário solar, que foi dado de presente à Julio Cézar, e inaugurou o calendário Juliano - antecessor do calendário gregoriano, que inseriu no Juliano os anos bissextos). Vale lembrar que sempre tivemos outras bases comuns históricas, como a base 60 (minutos) ou a base 7, usada tanto na bíblia quanto na contagem de dias da semana.

luistiagos

Quantos bons programadores hoje em dia trabalham “só” com uma tecnologia/framework/ferramenta?

O que quis dizer é que quem costuma mexer com isto geralmente mexe não só com programação e sim principalmente com a parte fisica, montar placas, soldar, etc…
Geralmente isto faz parte do trabalho de um engenheiro elétrico… E programar uma placa é foda, quando vc desenvolve um código e ele tem um bug vc vai na linha do bug e arruma. Agora quando vc desenvolve um circuito não tem este privilégio… um mero erro e sua placa já era, alem da montagem do dispositivo vc tem que se estressar com a resistência do material usado e a tensão da corrente (já fritei uns fios por causa disto).

Sei que não vem muito ao caso e também não sei como o pessoal ao certo trabalha, mas conhecidos que trabalham na area utilizam softwares que simulam toda a parte de projeto do circuito, ou seja… fica igual debugar um programa mesmo…
O trampo final é praticamente um de/para, de sair do projeto “lógico” e “implementar” no fisico (soldas, placas e afins)… e me falaram que muitas vezes quem acaba fazendo esse trabalho é o técnico e não o engenheiro (como tudo há excessões)…

mas não sei se na pratica é realmente assim!

Sim tem alguns bons softwares para isto… um deles é o Proteus nele vc pode construir até um processador, porem o modelo lógico (no software) é bem diferente do fisico… E esta parte “técnica” de pegar o que foi feito no software e passar para o fisico é que o bixo realmente pega, no software é fácil, porem na realidade já não é tão facil como parecia…

J

Quantos bons programadores hoje em dia trabalham “só” com uma tecnologia/framework/ferramenta?

O que quis dizer é que quem costuma mexer com isto geralmente mexe não só com programação e sim principalmente com a parte fisica, montar placas, soldar, etc…
Geralmente isto faz parte do trabalho de um engenheiro elétrico… E programar uma placa é foda, quando vc desenvolve um código e ele tem um bug vc vai na linha do bug e arruma. Agora quando vc desenvolve um circuito não tem este privilégio… um mero erro e sua placa já era, alem da montagem do dispositivo vc tem que se estressar com a resistência do material usado e a tensão da corrente (já fritei uns fios por causa disto).

Sei que não vem muito ao caso e também não sei como o pessoal ao certo trabalha, mas conhecidos que trabalham na area utilizam softwares que simulam toda a parte de projeto do circuito, ou seja… fica igual debugar um programa mesmo…
O trampo final é praticamente um de/para, de sair do projeto “lógico” e “implementar” no fisico (soldas, placas e afins)… e me falaram que muitas vezes quem acaba fazendo esse trabalho é o técnico e não o engenheiro (como tudo há excessões)…

mas não sei se na pratica é realmente assim!

Sim tem alguns bons softwares para isto… um deles é o Proteus nele vc pode construir até um processador, porem o modelo lógico (no software) é bem diferente do fisico… E esta parte “técnica” de pegar o que foi feito no software e passar para o fisico é que o bixo realmente pega, no software é fácil, porem na realidade já não é tão facil como parecia…

Isso é verdade também. Softwares como o proteus não conseguem simular nem de longe o desempenho do hardware. Você consegue prototipar, mas o teste precisa ser no próprio hardware, e ali a coisa funciona de maneira diferente(de certa forma).

matheuslmota

Mas de certa forma ferramentas como o Proteus são de fato fantásticas. Estou fazendo um projeto da faculdade para a disciplina de microprocessadores e consegui simular todo o meu sistema nele, um computador baseado no Intel 8086, com alguns dispositivos. Consegui simular até o assembly, carregando meu código na memória ROM do meu sistema.
Fora a quantidade de componentes que tem no proteus.

J

matheuslmota:
juliocbq:

Isso é verdade também. Softwares como o proteus não conseguem simular nem de longe o desempenho do hardware. Você consegue prototipar, mas o teste precisa ser no próprio hardware, e ali a coisa funciona de maneira diferente(de certa forma).

Mas de certa forma ferramentas como o Proteus são de fato fantásticas. Estou fazendo um projeto da faculdade para a disciplina de microprocessadores e consegui simular todo o meu sistema nele, um computador baseado no Intel 8086, com alguns dispositivos. Consegui simular até o assembly, carregando meu código na memória ROM do meu sistema.
Fora a quantidade de componentes que tem no proteus.

São sim. Tem até um exemplo nele onde se carrega um linux num ds pic(Agora não lembro se era 18 ou o dspic mesmo). É bem melhor que programar no protoboard diretamente. Mas mesmo assim ainda dá diferença com o hardware.

malato

O curso inteiro de linguagem assembler da Revista Spooler, mencionado aqui, está neste site aqui: www.ospv.com
A publicação é do autor do mesmo. Espero que seja util.
Fiquem bem :slight_smile:

Criado 22 de maio de 2012
Ultima resposta 13 de ago. de 2012
Respostas 143
Participantes 23