SkillAgentSearch skills...

Cvm

Stack-based virtual machine written in C

Install / Use

/learn @number571/Cvm
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

VirtualMachine

Stack-based virtual machine. Version 1.0.10

Pseudo instructions

Code | Instruction :---: | :---: | 0x11 | ";" (comment) 0x22 | "labl" (label)

Null instructions

Code | Instruction :---: | :---: | 0xAA | (void string) 0xBB | (undefined code)

Main instructions

Bytecode | Stack | Args | Instruction :---: | :---: | :---: | :---: | 0x0A | 0 | 1 | push 0x0B | 1 | 0 | pop 0x0C | 1 | 0 | inc 0x0D | 1 | 0 | dec 0x0E | 1 | 0 | jmp 0x0F | 3 | 0 | jg 0x1A | 2 | 0 | stor 0x1B | 1 | 0 | load 0x1C | 1 | 0 | call 0x1D | 0 | 0 | hlt

Interface functions

extern int cvm_compile(FILE *output, FILE *input);
extern int cvm_load(uint8_t *memory, int32_t msize);
extern int cvm_run(int32_t **output, int32_t *input);

Additional instructions

Bytecode | Stack | Args | Instruction :---: | :---: | :---: | :---: | 0xA0 | 2 | 0 | add 0xB0 | 2 | 0 | sub 0xC0 | 2 | 0 | mul 0xD0 | 2 | 0 | div 0xE0 | 2 | 0 | mod 0xF0 | 2 | 0 | shr 0xA1 | 2 | 0 | shl 0xB1 | 2 | 0 | xor 0xC1 | 2 | 0 | and 0xD1 | 2 | 0 | or 0xE1 | 1 | 0 | not 0xF1 | 3 | 0 | je 0xA2 | 3 | 0 | jl 0xB2 | 3 | 0 | jne 0xC2 | 3 | 0 | jle 0xD2 | 3 | 0 | jge 0xE2 | 1 | 0 | allc

Compile and run

$ cp examples/fact10.asm main.asm
$ make
{
	"result": [3628800],
	"return": 0
}
$ hexdump --format '16/1 "%02X " "\n"' main.bcd
0A 00 00 00 0A 0A 00 00 00 0C 1C 1D 0A FF FF FF
FE 1B 0A 00 00 00 02 0A FF FF FF FE 1B 0A 00 00
00 55 0F 0A FF FF FF FF 1B 0D 0A FF FF FF FF 0A
FF FF FF FE 1A 0B 0A FF FF FF FD 1B 0A FF FF FF
FE 1B C0 0A FF FF FF FF 0A FF FF FF FC 1A 0B 0A
00 00 00 12 0E 0B 0E

Related Skills

View on GitHub
GitHub Stars24
CategoryDevelopment
Updated1mo ago
Forks4

Languages

C

Security Score

95/100

Audited on Feb 14, 2026

No findings