User Tools

Site Tools


daedalus

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
daedalus [2016/04/08 13:17]
cechin
daedalus [2017/11/09 11:43] (current)
cechin [Ferramentas]
Line 1: Line 1:
 ====== Montador DAEDALUS ====== ====== Montador DAEDALUS ======
  
-==== Descrição ​Geral ====+===== 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.1460132277.txt.gz · Last modified: 2016/08/08 16:30 (external edit)