Montador
Software responsável pela tradução das instruções em linguagem assembly a sua forma correspondente em código binário para execução pela placa FPGA.
Por exemplo:
- Assembly
- Binário
; Imprime "Hello Mom" ao canto superior esquerdo da tela e encerra.
jmp main
hello: string "Hello Mom"
main:
loadn r0, #0 ; r0 = 0
loadn r1, #hello ; r1 = Ponteiro para a string a ser impressa.
loadn r2, #0 ; r2 = Índice para a posição na tela
printLoop:
loadi r3, r1 ; Carrega o caractere a ser impresso
cmp r0, r3 ; e cheque se este é o caractere terminal.
jeq endLoop ; Termine se este for ou,
outchar r3, r2 ; senão, o imprima e continue.
inc r1 ; Incremente o ponteiro para a string.
inc r2 ; Incremente o índice para a posição na tela.
jmp printLoop
endLoop:
halt
-- Codigo gerado pelo montador
WIDTH=16;
DEPTH=65536;
ADDRESS_RADIX=UNS;
DATA_RADIX=BIN;
CONTENT BEGIN
0:0000100000000000;
1:0000000000001100;
2:0000000001001000;
3:0000000001100101;
4:0000000001101100;
5:0000000001101100;
6:0000000001101111;
7:0000000000100000;
8:0000000001101101;
9:0000000001101111;
10:0000000001101101;
11:0000000000000000;
12:1110000000000000;
13:0000000000000000;
14:1110000010000000;
15:0000000000000010;
16:1110000100000000;
17:0000000000000000;
18:1111000110010000;
19:0101100000110000;
20:0000100001000000;
21:0000000000011011;
22:1100100110100000;
23:1001000010000000;
24:1001000100000000;
25:0000100000000000;
26:0000000000010010;
27:0011110000000000;
28:0000000000000000;
29:0000000000000000;
[...]
65533:0000000000000000;
65534:0000000000000000;
65535:0000000000000000;
END;
Instalação
O montador encontra-se disponível em duas versões:
v1.0.0 stable
(recomendado)v2.1.0 beta
Para instalá-las execute os seguintes comandos:
- stable
- beta
wget https://github.com/de-abreu/Processador-ICMC/raw/master/assembler/assembler-stable.zip
unzip assembler-stable.zip
cd stable
gcc *.c -o montador
wget https://github.com/de-abreu/Processador-ICMC/raw/master/assembler/assembler-beta.zip
unzip assembler-beta.zip
cd beta
gcc *.c -o montador
Com isso você terá em mãos o executável montador
. Leve-o ao diretório em que estiver trabalhando, conforme sua conveniência.
Uso
Sem perda de generalidade, considere um arquivo assembly jogo.asm
. Não havendo erros de sintaxe neste, executar o seguinte comando produz o arquivo binário jogo.mif
:
- stable
- beta
./montador jogo.asm jogo.mif
./montador jogo.asm
Doutra forma, havendo erros de sintaxe, uma mensagem de erro correspondente será emitida.
TODO
- Encontrar e detalhar a instalação para usuários de Windows
- Detalhar mais opções de uso do montador