Olá pessoal, não sei se vai ter alguém que saiba algo a respeito mas, não custa nada perguntar, alguém aqui sabe como eu posso começar a estudar a linguagem Assembly de forma geral? que pelo que pesquisei, eu entendi que a linguagem ela é adaptada pra cada processador, então eu queria saber se conhecem alguma apostila gratuita ou até curso que ensine sobre Assembly e se alguém poder me dizer um Assembler bom e gratuito, outra duvida é,todo assembler que eu usar, ele programa em qualquer linguagem Assembly?
Assembly está associado à arquitetura escolhida.
Depende qual a tua necessdiade.
Eu vi na faculdade, mas, em uma arquitetura RISC, onde considerávamos, para fins didáticos, que cada pulso durava 1 segundo.
Agora, você pode ter uma necessidade diferente.
Sei que existem livros, mas não sei quais e nem quais autores. Como disse, vi, apenas.
Quanto a segunda questão, tecnicamente sim, na prática, pode ser que não. Creio que seja como o C e o C++ ou o Pascal e o Delphi.
É que eu estava conversando com um colega meu da faculdade sobre programação e ele comentou sobre o Assembly, então fiquei curioso a respeito da linguagem, então assim, eu não tenho uma finalidade pra aprender essa linguagem, eu só quero mesmo poder conhecer sobre a linguagem, como que se programa, qual compilador é mais adequado e essas coisas, eu já to aprendendo Java, então eu só quero aprender Assembly por curiosidade, eu procurei apostilas mas , todo arquivo que eu encontro, o cara escreveu em arquivo .txt, isso dói a vista pra ler rsrs
Assembly é o mais baixo nível possível, mais baixo que ela, só binário mesmo.
Do que eu lembro, basicamente, você precisa dizer ao processador tudo o que ele deve fazer, programando a sequência de comandos que cada registrador do processador deve executar.
Primeiro informa que o processador deve ir até a memória obter a instrução. Passa a instrução que diz como o processador deve executar a mesma (ler um dado da memória, ler a instrução, escrever, etc)… Após a execução, o ciclo se repete, vai buscar instrução, executa, lê dado, nova instrução, etc.
Se o problema é leitura, use o notepad++, ele tem uma featura só para assembly
as instruções são as mesma para todo Assembly? tipo, eu vi que usam o MOV, que é tipo uma palavra reservada, então todo processador vai ter essa instrução definida? ou toda vez que eu tiver que programar, eu vou ter que começar do zero pra cada processador?
Cara, veja bem, eu vi assembly em 2007, estamos em 2018 e desde lá eu nunca mais peguei nenhuma material sobre.
Logo, eu vou ser bem sincero e responder que eu não sei.
Agora, em geral, você pega materiais que digam a qual processador/arquitetura ele se refere.
ok então, vlw amigo, vou deixa ainda o tópico em aberto pra caso mais alguém que conheça e tenha tido mais contato possa dizer livros que eu possa porcurar pra estudar
O Asssembly que você usa depende do Assembler que escolher.
O Assembler escolhido depende da plataforma que você vai usar para desenvolver e pra qual plataforma (processador x sistema operacional) você vai desenvolver.
Dependendo do Assembler, podem haver instruções especificas para processadores/sistemas especificos, por isso é importante ler o manual.
Recomendo fortemente o site abaixo:
Ele ensina a programar em Assembly para Linux rodando em processadores x86. É bem legal e didático.
Se puder, recomendo também a leitura deste livro. Não ensina a programar, mas explica numa didática simples e de forma conceitual como o computador funciona.
Nesse vídeo ele fala sobre a linguagem e recomenda alguns livros.
não entendi muito bem, o Assembler vai depender do meu SO ou do SO em que ele vai ser usado? O SO que eu uso no meu computador é windows 10. Então com isso eu só vo poder programar Assembly compativel com o SO Windows 10?
Eu li que o Assembly depende do processador que for usar, então para cada tipo de processador existe um Assembly especifico, existe alguma lista de se não todos, pelo menos uma boa quantidade de Assemblys?
Eu não sei se estou sendo claro a respeito do que quero, espero que tenham entendido, se não eu tento explicar melhor.
Depende do processador por causa da arquitetura. Se é ARM, MIPS, intel. Se é x86 ou x64.
Tem um livro que eu li que dá um norte: The Art of Assembly Language, 2nd Edition - Randall Hyde
.
Nesse link era possível baixar, mas agora parece que não mais possível.
Aqui tem um .pdf
que dá um norte sobre architectures. http://www.inf.pucrs.br/emoreno/undergraduate/EC/arqi/class_files/Aula11.pdf
Sabe alguma lista de Arquiteturas de Processadores? Ou site que possa me informar sobre, ou até mesmo uma Aquitetura basica de todo processador talvez.
Tipo tenho pesquisado, e eu vi algo sobre Arquiteturas RISC e CISC, são dessas arquiteturas que vem as x86 entre outras arquiteturas de processadores?
Assembly é linguagem de máquina, não de programação, tanto que não é compilada, é somente traduzida.
Então, sim, você precisa conhecer as instruções do processador ou microcontrolador para o qual deseja escrever código.
É bacana para fins didáticos e entender como realmente o computador funciona.
Mas para utilizar no dia a dia, só se você for escrever pra algum hardware muito limitado para o qual seja inviável utilizar linguagem de alto nível.
Não. Dependendo do Assembler vc poderia programar pra ARM a partir do seu Windows.