Assembly

Um pequeno emulador da CPU 8086

Emulador 8086 escrito em C A primeira coisa que é preciso deixar claro é que esse não é um emulador completo, o objetivo é apenas interpretar um hello world. Claro, é possível pegar esse esqueleto e expandir até se tornar um emulador completo. Eu estava entediado esperando meus amigos aparecerem na Campus Party de 2016, encontrei a mesa que estava separada para a galera de hackerspace e fiquei esperando mas como não tinha nenhuma palestra aquele horário nem nada que eu quisesse participar eu precisava de algo para matar o tempo.

MS-DOS, APM com C e Assembly

Para brincar de retro-computação eu uso o VirtualBox com o MS-DOS 6.22 e o DOSBox, os dois funcionam muito bem mas a tela fica ligeiramente melhor no VirtualBox e o DOSBox é mais rápido e fácil para desenvolver e ir rapidamente de um sistema para outro então acabo usando os dois. No DOSBox você pode fechar o simulador simplesmente digitando o comando exit que vai fechar uma sesseão do interpretador de comandos e se for a ultima sessão ela vai fechar o proprio DOSBox, o que é bem legal porque não precisa mover mouse nem nada e é um comportamento mais parecido com um terminal.

Assembly 16Bits no macOS com NASM e DOSBox

Brincando com Assembly Brincar com assembly é divertido, só com asm você tem controle total da maquina e de cada aspecto do seu programa, não há nada escondido e o computador vai fazer exatamente o que você mandou (não necessariamente o que você quer). Hoje me dia assembly para mim é um hobby, não estou mexendo com nada tão baixo nível que realmente precise descer até o asm mas como diversão NERD não tem igual e recentemente encontrei meus antigos guias de referencia rápida das interrupções da BIOS e do MS-DOS.

Assembly, assembler e linguagem de maquina

São coisas diferentes! São três coisas diferentes mas relacionadas e as pessoas vivem confundindo, então vamos a explicação. Assembly É uma linguagem de programação composta por mnemônicos simples. Ela reflete um para um as instruções da plataforma que estiver sendo usada. Escrevendo código Assembly você sabe exatamente o que o processador esta fazendo e tem acesso a recursos que podem não estar disponíveis em linguagens de mais alto nível… falando nisso podemos chamar Assembly de uma linguagem de baixo nível, nesse caso não é ruim, quer dizer apenas mais perto do hardware.