====== Montador DAEDALUS ====== ===== Descrição ===== Montador para os computadores AHMES, RAMSES e CESAR. Esse programa pode ser usado para editar um arquivo fonte na linguagem //assembly// e para montar os arquivos ".mem" onde estão as instruções que poderão ser executadas no simulador adequado. Os arquivos fonte são formados por linhas que podem ser de dois tipos: * linhas de instruções * linhas de diretivas ==== Linhas de Instruções ==== As linhas que formam um arquivo fonte para ser montado através do DAEDALUS tem a seguinte forma geral: ^ Rótulo ^ Mnemônico ^ Operandos ^ Comentários ^ O **__rótulo__** (//label//) é um símbolo definido pelo usuário ao qual é atribuído o valor corrente do contador de programa. Esse símbolo e seu valor associado é colocado na Tabela de Símbolos do montador. O uso de um rótulo é opcional e sua definição deve obedecer às seguintes regras: * não podem ser redefinidos (só podem ser definidos uma única vez); * devem começar na primeira posição da linha (coluna 1); * devem ser seguidos por um caractere dois-pontos (":"), que não faz parte do rótulo. O **__mnemônico__** é uma sequencia de letras que identifica uma instrução da máquina para a qual se está escrevendo o programa. O mnemônico deve ser colocado a direita do rótulo (se houver) ou a partir da posição 2 da linha. A lista de mnemônicos válidos depende da cada computador. O uso de um mnemônico em uma linha é opcional. Mas, uma vez usado, devem ser fornecidos os operandos adequados. Os **__operandos__** são os parâmetros da instrução. Uma instrução pode requerer o uso de zero (nenhum) ou mais operandos, que devem ser separados por um delimitador (caractere //space// ou vírgula). O seu uso é obrigatório, quando usando instruções que requeiram operandos. Caso contrário, não devem ser utilizados. Finalmente, os **__comentários__** devem iniciar com ";" (ponto-e-vírgula) e se extende até o final da linha. O uso de comentários é opcional. ==== Linhas de Diretivas ==== Todo o montador requer que o arquivo fonte utilize //diretivas// (comandos) para orientar a forma como deve ser realizada a montagem dos programas. No Daedalus, uma linha com diretivas tem o formato semelhante ao de uma linha de instrução. Notar que, diferentemente de uma linha de instrução, uma linha com diretiva (também chamada de //pseudo-instrução//) atua sobre o processo de montagem do fonte. Ela //não produz// qualquer código executável. No máximo elas são capazes de reservar e inicializar espaços de dados para o programa. Essa linha tem a seguinte forma: ^ Nome ^ Diretiva ^ Operandos ^ Comentários ^ O **__nome__** é um símbolo definido pelo usuário ao qual é atribuído um valor que depende da diretiva usada para defini-lo. Algumas diretivas exigem o uso de um "nome" que lhe antecede na linha; em outras o uso de um "nome" é opcional. De forma semelhante aos rótulos, os nome devem obedecer às seguintes regras: * não podem ser redefinidos (só podem ser definidos uma única vez); * devem começar na primeira posição da linha (coluna 1); * devem ser seguidos por um caractere dois-pontos (":"), que não faz parte do nome. A **__diretiva__** define como o montador deve operar. Essa operação pode ser relativa a própria linha apenas ou pode indicar como proceder em todo o fonte a partir do ponto onde foi definida a diretiva. As diretivas tratadas pelo montador são as seguintes: * EQU * ORG * DB * DW * DAB * DAW Os **__operandos__** são os parâmetros da diretiva. Uma diretiva pode requerer o uso de zero (nenhum) ou mais operandos, que devem ser separados por um delimitador (caractere //space// ou vírgula). A quantidade de operandos assim como a sua obrigatoriedade depende de cada diretiva. Conforme descrito anteriormente, os **__comentários__** seguem as mesmas regras já descritas: iniciam com ";" (ponto-e-vírgula) e extende-se até o final da linha. O uso de comentários é opcional. ===== Ferramentas ===== === Montadores === * Última versão * {{Daedalus.1.0.6.1.exe.zip|Montador DAEDALUS - Vers. 1.0.6.1 - setembro/2017}} * O montador reconhece símbolos como parâmetro da diretiva ORG * Versões anteriores * {{Daedalus.1.0.6.0.exe.zip|Montador DAEDALUS - Vers. 1.0.6.0 - maio/2017}} * {{Daedalus.1.0.5.6.exe.zip|Montador DAEDALUS - Vers. 1.0.5.6 - outubro/2016}} * {{Daedalus.1.0.5.exe.zip|Montador DAEDALUS - Vers. 1.0.5 - julho/2016}} * {{daedalus.zip|Montador DAEDALUS - Vers. 1.04 - set/2015}} === Documentação do Montador=== * {{daedalus.pdf|Documentação do montador DAEDALUS}}