Ainda vale a pena estudar assembly?

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.

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

juliocbq, qual o significado da sigla TI?[/quote]

Tecnologia da Informação.

Por que você se interessou por assembly?

juliocbq, qual o significado da sigla TI?[/quote]

Tecnologia da Informação.

Por que você se interessou por assembly?[/quote]

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?

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?

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!"

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?
[/quote]

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

juliocbq, qual o significado da sigla TI?[/quote]

Tecnologia da Informação.

Por que você se interessou por assembly?[/quote]

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?

[/quote]

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.

[quote=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!"
[/quote]

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.

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.

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?
[/quote]

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[/quote]

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?

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:

alguém tranca isso aqui por favor.

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?
[/quote]

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[/quote]

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?[/quote]

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…

++

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

flws

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?

[quote=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?

[/quote]

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.

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.

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.[/quote]

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.

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.