Skip to content

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

Notifications You must be signed in to change notification settings

paulcodeman/x86js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

Виртуальная машина 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 установлен.

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published