User Tools

Site Tools


daedalus

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
daedalus [2016/04/08 13:17]
cechin created
daedalus [2017/11/09 11:43] (current)
cechin [Ferramentas]
Line 1: Line 1:
 ====== Montador DAEDALUS ====== ====== Montador DAEDALUS ======
  
-==== Descrição ====+===== Descrição ​=====
  
-Montador para os computadores AHMES, RAMSES e CESAR.+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: As linhas que formam um arquivo fonte para ser montado através do DAEDALUS tem a seguinte forma geral:
Line 9: Line 14:
 ^ Rótulo ^ Mnemônico ^ Operandos ^ Comentários ^ ^ 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. ​definição ​dos rótulos devem obedecer ​as seguintes regras:+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);   * não podem ser redefinidos (só podem ser definidos uma única vez);
-  * devem começar na primeira posição da linha (coluna 1) +  * 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+  * 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}}
  
-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. 
  
-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).+=== Documentação do Montador=== 
 +  ​{{daedalus.pdf|Documentação do montador DAEDALUS}}
  
-Finalmente, os **__comentários__** devem iniciar com ";"​ (ponto-e-vírgula) e se extende até o final da linha. 
  
  
daedalus.1460132257.txt.gz · Last modified: 2016/08/08 16:30 (external edit)