O que é a linguagem de montagem?

O ENIAC foi o primeiro computador eletrônico de uso geral. Foi construído na Universidade da Pensilvânia e concluído em 1945. Snyder foi uma das seis mulheres que o programaram à mão.
Antes de máquinas como o ENIAC, a palavra computer significava uma pessoa que fazia cálculos à mão, e as seis mulheres que programaram o ENIAC tinham sido contratadas para esse trabalho. Para programar a máquina, elas a recabavam: conectavam cabos e ajustavam interruptores toda vez que o problema mudava. Essa recabagem é a razão histórica pela qual a linguagem de montagem existe. Em poucos anos, engenheiros na Europa e na América começaram a substituir fios e configurações de interruptores por códigos escritos curtos que representavam instruções, para que uma pessoa pudesse ler e alterar um programa sem tocar em um conector.
Primeiro, uma CPU (unidade central de processamento) é o chip no centro do seu computador, e ela faz um único trabalho: executa uma longa lista de pequenos comandos chamados instruções, um após o outro, bilhões por segundo. Cada instrução é fácil por si só, como somar dois números, mover um valor ou saltar para outro lugar.
Assembly é a forma das instruções que uma CPU executa que uma pessoa consegue ler. Cada linha é (quase) uma instrução de máquina. Você não tem laços, objetos ou strings. Você move números entre registradores, pequenos espaços de armazenamento dentro do processador, e a memória.

O EDSAC executava as Initial Orders de David Wheeler, um dos primeiros programas que traduziam instruções escritas em código de máquina.
Todo processador precisa de um programa que leia instruções escritas e produza os bits brutos que o hardware executa: um montador. O montador desta página tem como alvo um único conjunto de instruções.
Este simulador usa RISC-V, um conjunto de instruções moderno usado em chips reais e ensinado nas universidades. O que você aprende aqui se aplica diretamente ao hardware.

RISC-V é uma arquitetura de conjunto de instruções aberta. Qualquer pessoa pode implementar sua especificação publicada em hardware, e nenhuma taxa ou permissão é necessária.
Qualquer projeto de conjunto de instruções precisa decidir quanta trabalho uma única instrução realiza. Chips CISC (Complex Instruction Set Computer), incluindo a arquitetura x86 encontrada na maioria dos computadores de mesa e laptops, colocam uma grande quantidade de trabalho em cada instrução. Uma instrução pode ler um valor da memória, realizar aritmética sobre ele e armazenar o resultado de volta, tudo em uma única etapa. O RISC-V segue o projeto defendido por Patterson & Ditzel, 1980: cada instrução realiza uma única operação simples, e qualquer comportamento complexo é produzido pela combinação de muitas dessas instruções.
RISC significa Reduced Instruction Set Computer. O hardware é construído para executar um pequeno grupo de instruções simples em alta velocidade. Comportamento complexo é produzido pela combinação desses passos simples e rápidos.
O montador de Kathleen Booth para o ARC (Booth, 1947) e as Initial Orders de David Wheeler para o EDSAC (Wilkes, Wheeler & Gill, 1951) estão entre os primeiros montadores funcionais, e os historiadores continuam a debater qual deles veio primeiro. O RISC-V, o conjunto de instruções que este simulador executa, define uma pequena lista aberta de instruções que qualquer pessoa pode implementar (Asanović & Patterson, 2014). Toda lição a partir deste ponto ensina esse conjunto de instruções diretamente.
Referências
- [1]IEEE Computer Society. Women of ENIAC.
- [2]Booth, K. General Considerations in the Design of an All Purpose Electronic Digital Computer. 1947.
- [3]Wilkes, M. V., Wheeler, D. J., Gill, S. The Preparation of Programs for an Electronic Digital Computer. Addison-Wesley, 1951.
- [4]Patterson, D. A., Ditzel, D. R. The Case for the Reduced Instruction Set Computer. ACM SIGARCH Computer Architecture News, 1980.
- [5]Asanović, K., Patterson, D. A. Instruction Sets Should Be Free: The Case For RISC-V. UCB/EECS-2014-146, 2014.
- [6]DCC UFMG. 17 de junho de 2024. Coordenador do Laboratório de Compiladores do DCC/UFMG apresenta microcontrolador u32BR durante RISC-V Brasil.
- [7]Glen Beck and Betty Snyder program the ENIAC, building 328, Ballistic Research Laboratory. U.S. Army photo, public domain.
- [8]Maurice Wilkes examining a mercury delay line during the construction of EDSAC. Computer Laboratory, University of Cambridge, CC BY 2.0.
- [9]Yunsup Lee holding a RISC-V prototype chip, 2013. CC0.
