Skip to content

igorroc/p-code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

P-Code Machine básica

Instruções principais:

O funcionamento de uma instrução depende de 2 valores, o nível da função e o parametro que será usado (pode ser o endereço de memória, o)

  1. LIT

Coloca no topo o valor especificado.

  • Exemplo:

    LIT 0 5
    
  • Resultado:

    • Antes da instrução:

      [0][0][0]
             ↑
           (topo)
      
    • Depois da instrução:

      [0][0][0][5]
                ↑
              (topo)
      

  1. OPR

Executa a operação escolhida, de uma lista de 13

  1. Return
  2. Inversor
  3. Soma
  4. Subtração
  5. Multiplicação
  6. Divisão
  7. Resto por 2
  8. Igualdade
  9. Diferença
  10. Menor que
  11. Menor igual
  12. Maior que
  13. Maior igual
  • Exemplo:

    OPR 0 7
    
  • Resultado:

    • Antes da instrução:

      [0][0][0][2][2]
                   ↑
                 (topo)
      
    • Depois da instrução:

      [0][0][0][1]
                ↑
              (topo)
      

  1. LOD

Carrega uma variável do endereço especificado para o topo

  • Exemplo:

    LOD 0 3
    
  • Resultado:

    • Antes da instrução:

      [0][0][0][5][2]
       0  1  2  3  4
                   ↑
                 (topo)
      
    • Depois da instrução:

      [0][0][0][5][2][5]
       0  1  2  3  4  ↑
                    (topo)
      

  1. STO

Salva no endereço especificado o valor que está no topo

  • Exemplo:

    STO 0 3
    
  • Resultado:

    • Antes da instrução:

      [0][0][0][0][0][5]
       0  1  2  3  4  ↑
                    (topo)
      
    • Depois da instrução:

      [0][0][0][5][0]
       0  1  2  3  ↑
                 (topo)
      

  1. CAL

Pula para a instrução especificada, configurando corretamente a chamada da função

  • Exemplo:

    CAL 0 7
    

  1. INT

"Aloca" a quantidade especificada de memória

  • Exemplo:

    INT 0 5
    
  • Resultado:

    • Antes da instrução:

      [0][0][0][2]
                ↑
              (topo)
      
    • Depois da instrução:

      [0][0][0][2][0][0][0][0][0]
                               ↑
                             (topo)
      

  1. JMP

Pula para a instrução especificada

  • Exemplo:

    JMP 0 8
    

  1. JPC

Pula para a instrução especificada, caso o valor do topo seja 0

  • Exemplo:

    JPC 0 8
    

Exemplos:

About

Exemplificação de funcionamento de uma P-Code Machine em C.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages