Skip to content

Latest commit

 

History

History
42 lines (25 loc) · 1.92 KB

README.md

File metadata and controls

42 lines (25 loc) · 1.92 KB

Виртуальная машина x86 на JavaScript

Этот проект содержит код простой виртуальной машины x86, написанной на JavaScript. Эта виртуальная машина может выполнять некоторые команды, такие как перемещение значений в регистры, сложение и вычитание.

Использование

Для запуска виртуальной машины, откройте файл index.js и добавьте в него код, который вы хотите выполнить. Например:

const cpu = new CPU(); 
cpu.registers[0] = 0; // eax 
cpu.registers[3] = 50; // esi 
cpu.memory[0] = 0xeb; // jmp loop 
cpu.memory[1] = 0xf9; // offset from current address (-7) 
cpu.run(); 
console.log(cpu.registers[0]); // should output 55

Затем запустите этот файл в Node.js:

node index.js

Документация

Виртуальная машина поддерживает следующие команды:

  • mov(src, dest): перемещает значение src в регистр или ячейку памяти dest.
  • add(a, b): складывает значения a и b и сохраняет результат в регистре или ячейке памяти b.
  • sub(a, b): вычитает значение b из a и сохраняет результат в регистре или ячейке памяти b.
  • jmp(address): переходит к указанному адресу в памяти.
  • cmp(a, b): сравнивает значения a и b и устанавливает флаги carry, zero и negative.
  • je(address): переходит к указанному адресу в памяти, если флаг zero установлен.