Simulador de contador de programa

Rastreamento de PC

Use rótulos como loop:, instruções sequenciais como LOAD ou ADD, desvios condicionais como BR label ou BR +8, além de JMP, CALL, RET e HALT.

Este simulador didático atribui um endereço a cada linha de instrução não vazia e traça um contador de programa (PC) simplificado. Ele não conta linhas de código, comandos ou tokens e não compila nem executa uma linguagem.

Como traçar uma listagem

  1. 1

    Insira uma listagem curta

    Use uma instrução de tamanho fixo por linha e rótulos ASCII opcionais como loop:.

  2. 2

    Escolha o modelo de endereços

    Defina endereço inicial, tamanho de 1, 2, 4 ou 8 bytes, largura de 16/24/32 bits e formato.

  3. 3

    Configure o rastreamento

    Trate globalmente todos os desvios reconhecidos como tomados ou não, escolha 1–80 passos e examine as transições.

Modelo aceito

Item Comportamento
Outro opcode, como LOAD ou ADD Avança pelo tamanho fixo escolhido
BR, BRA, BRANCH, BEQ, BNE, BGT, BGE, BLT, BLE, BZ, BNZ, JZ, JNZ Aplica a opção global tomado/não tomado
JMP, JUMP, GOTO Salta para rótulo ou endereço numérico
CALL, JSR, BL / RET, RETURN Empilha / desempilha endereço de retorno simulado
HALT, HLT, STOP Para no PC atual

Os destinos podem ser rótulos ASCII, endereços decimais ou hexadecimais com 0x. Um destino com sinal, como +8, é relativo ao próximo PC sequencial; um número sem sinal é absoluto. Os endereços dão a volta dentro da largura escolhida. // e ; iniciam comentários. Os operandos só são exibidos.

Limites e privacidade

  • A entrada é cortada em 1.800 caracteres e a análise para após 200 instruções.
  • O rastreamento aceita 1–80 passos; todos os desvios condicionais compartilham uma única opção global.
  • Não emula registradores, memória, flags, pipeline, delay slots, codificação nem instruções de tamanho variável.
  • O modo normal envia a listagem a este site via Livewire; o funil também a inclui na URL. Não cole código confidencial.

Perguntas frequentes

Não. Ela atribui endereços às linhas de instrução e traça o PC; não conta linhas-fonte, comandos ou tokens.

Não. Reconhece um conjunto genérico pequeno de opcodes de controle. Os demais apenas avançam o PC e os operandos não são executados.

O deslocamento é somado ao próximo PC sequencial. Em 0x1000 com instruções de 4 bytes, o destino é 0x100C.

Ela vai para este site para renderização Livewire e, no funil, entra na URL. Nenhuma API externa analisa o código, mas evite conteúdo confidencial.

Ferramentas relacionadas