Programação em Assembler: Quem te viu, quem te vê.

Terminator 6502Se você, assim como eu, programou em Assembler na era clássica, provavelmente já se sentiu assim:

Meu modelo mental de CPUs ficou parado nos anos 80: basicamente, caixas que fazem aritmética, lógica, manipulação de bits, e carregam e colocam coisas na memória. Tenho uma vaga consciência de vários progressos, como instruções vetoriais (SIMD) e a ideia das CPUs terem suporte a virtualização (mas não faço ideia do que isso significa na prática).

Que avanços legais eu perdi? O que as CPUs de hoje podem fazer que as do ano passado não podiam? Ou do retrasado, ou de 5, 10 anos atrás? O que mais me interessa são capacidades que o programador tem que aproveitar manualmente (ou que precisam de reprojeto dos ambientes de programação) para poderem ser utilizadas, e portanto podem não estar sendo utilizadas no momento. Acho que isso não inclui coisas como SMT/Hyper-threading, mas honestamente não tenho certeza. Também me interesso em coisas que as CPUs atuais não podem fazer, mas as do futuro próximo poderão.

Foi essa a pergunta que David Albert fez, e Dan Luu resolveu respondê-la. Leitura obrigatória para qualquer assembleiro que se preze. Leia aqui.

Sobre Juan Castro

Juan Castro é uma das mentes em baixa resolução que compõem o Governo de Retrópolis – a única cujo Micro Formador não foi o MSX (e sim o TRS-80). Idealizador, arquiteto e voz do Repórter Retro. Com exceção do nome, que foi ideia do Cesar.