ATPS Compiladores - Etapa 1 e 2l

540 palavras 3 páginas
Etapa 1

Passo 1
Desenvolver um programa simples para aplicar 10 miligramas de solda em uma peça:
Instrução
Comentário
RBR(45);
Move 45 graus a direita
RJU(138);
Move 1,38 cm para cima
GHG(PESO_ATUAL);
Atribui 100 PESO_ATUAL
MOV(PESO_ATUAL,PESO_DESEJADO);
Atribui valor de PESO_ATUAL para PESO_DESEJADO
ADD(10,PESO_DESEJADO);
PESO_DESEJADO + 10
GTM(TEMPO);
Timestamp
IFZ(SUB(PESO_DESEJADO,PESO_ATUAL),46);
Verifica se há a necessidade de aplicar solda (levando em consideração peso atual e peso desejado)
WEL(1);
Aplica solda
GHG(PESO_ATUAL);
Recebe novamente o peso atual
IFN(SUB(PESO_DESEJADO,PESO_ATUAL),42);
Verifica se não ultrapassou o peso necessário
RST();
Finaliza a operação, voltando o braço na sua origem

Passo 2 e 3.
Linguagem de baixo nível.
Função
Chamada
Resulta
RBR
RBR()
Rotaciona a base para a direita graus
RBL
RBL()
Rotaciona a base para a esquerda graus
RJU
RJU()
Rotaciona a junção do cotovelo para cima milímetros
RJD
RJD()
Rotaciona a junção do cotovelo para baixo milímetros
RST
RST()
Posiciona o soldador na posição inicial
WEL
WEL()
Aplica solda por milissegundos
GTM
GTM()
Coloca o atual no registrador
GHG
GHG()
Colocar o peso da peça atual no registrador
MOV
MOV(,registrador)
Associa valor ao
ADD
ADD(,registrador)
Adiciona valor ao valor do
SUB
SUB(,registrador)
Subtrai valor ao valor do
MUL
MUL(,registrador)
Multiplica valor ao valor do
DIV
DIV(,registrador)
Divide valor ao valor do
JMP
JMP()
Muda o fluxo de execução para a instrução
IFZ
IFZ(,)
Salta para se o valor da for 0
IFP
IFP(,)
Salta para se o valor da for positivo
IFN
IFN(,)
Salta para se o valor da for negativo

Linguagem de alto nível, definidos pelo padrão “BackusNaurForm” (BNF).
Na primeira tabela temos a definição dos tipos básicos da linguagem, tais como operadores lógicos, operadores aritméticos, e padrão para númerosreconhecidos pela linguagem:
Token
Regra digito =

Relacionados

  • java
    1460 palavras | 6 páginas