Simulator för programräknare

PC-spårning

Använd etiketter som loop:, sekventiella instruktioner som LOAD eller ADD, förgreningar som BR label eller BR +8, plus JMP, CALL, RET och HALT.

Den här undervisningssimulatorn tilldelar en adress till varje icke-tom instruktionsrad och följer en förenklad programräknare (PC). Den räknar inte kodrader, satser eller tokens och kompilerar eller kör inget programmeringsspråk.

Så följer du en lista

  1. 1

    Ange en kort lista

    Använd en instruktion med fast bredd per rad och valfria ASCII-etiketter som loop:.

  2. 2

    Välj adressmodell

    Ange startadress, storlek 1, 2, 4 eller 8 byte, bredd 16/24/32 bitar och visningsformat.

  3. 3

    Ställ in spårningen

    Behandla globalt alla kända grenar som tagna eller inte tagna, välj 1–80 steg och granska övergångarna.

Modellen som stöds

Listpost Beteende
Annan opcode, som LOAD eller ADD Gå vidare med vald fast instruktionsstorlek
BR, BRA, BRANCH, BEQ, BNE, BGT, BGE, BLT, BLE, BZ, BNZ, JZ, JNZ Använd det globala valet tagen/inte tagen
JMP, JUMP, GOTO Hoppa till etikett eller numeriskt mål
CALL, JSR, BL / RET, RETURN Lägg till / ta bort en simulerad returadress
HALT, HLT, STOP Stanna på aktuell PC

Mål kan vara ASCII-etiketter, decimaladresser eller hexadresser med 0x. Ett teckenförsett mål som +8 är relativt nästa sekventiella PC; ett tal utan tecken är absolut. Adresser rullar runt inom vald bitbredd. // och ; inleder kommentarer. Operander visas bara.

Gränser och integritet

  • Inmatningen kapas vid 1 800 tecken och parsningen slutar efter 200 instruktioner.
  • Spåret omfattar 1–80 steg; alla villkorliga grenar delar ett globalt val.
  • Register, minne, flaggor, pipelines, delay slots, kodning och variabla instruktionslängder emuleras inte.
  • Standardläget skickar listan till webbplatsen via servern; stegläget lägger den även i URL:en. Klistra inte in konfidentiell kod.

Vanliga frågor

Nej. Det adresserar instruktionsrader och följer PC; källrader, satser och tokens räknas inte.

Nej. Det känner igen en liten generell uppsättning styr-opcodes. Övriga går bara vidare och operander körs inte.

Offseten läggs till nästa sekventiella PC. Från 0x1000 med 4-byte-instruktioner blir målet 0x100C.

Den skickas till webbplatsen för server-rendering och hamnar i URL:en i stegläget. Inget externt analys-API används, men undvik konfidentiell kod.

Relaterade verktyg

Verktyget finns på andra språk