# racaVM **Repository Path**: zzjcarrot/raca-vm ## Basic Information - **Project Name**: racaVM - **Description**: 虚拟机 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-04-01 - **Last Updated**: 2023-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # racaVM ## 简介 这是raca-dev中的一个开源组件 使用xmake进行编译 一款64bit虚拟机 ## 编译 先安装xmake 然后执行xmake build ## 测试 bios是一个可以直接运行的文件 ## 指令集 使用不定长指令集(自己做的) 共有14条指令 20个寄存器 寄存器编码由0x00~0x15对应 - mov 指令码:0x00 \ 是否有type:是 \ 接受参数个数:2 \ type 0: i->r \ 0:1字节 指定寄存器 \ 1:8字节 写入的值 \ type 1: r->r \ 0:1字节 指定寄存器(写) \ 1:1字节 指定寄存器(读) \ type 2: m->r \ 0:8字节 指定内存地址 \ 1:1字节 指定寄存器(写) \ type 3: r->m \ 0:1字节 指定寄存器(读) \ 1:8字节 指定内存地址 - add 指令码:0x01 \ 是否有type:否 \ 接受参数个数:2 \ 0:1字节 指定寄存器 \ 1:8字节 加数 - sub 指令码:0x02 \ 是否有type:否 \ 接受参数个数:2 \ 0:1字节 指定寄存器 \ 1:8字节 减数 - mul 指令码:0x03 \ 是否有type:否 \ 接受参数个数:2 \ 0:1字节 指定寄存器 \ 1:8字节 乘数 - div 指令码:0x04 \ 是否有type:否 \ 接受参数个数:2 \ 0:1字节 指定寄存器 \ 1:8字节 除数 - in 指令码:0x05 \ 是否有type:否 \ 接受参数个数:2 \ 0:1字节 指定寄存器 储存IO地址 \ 1:1字节 指定寄存器 储存IO输入寄存器 - out 指令码:0x06 \ 是否有type:否 \ 接受参数个数:2 \ 0:1字节 指定寄存器 储存IO地址 \ 1:1字节 指定寄存器 储存IO输出寄存器 - and 指令码:0x07 \ 是否有type:否 \ 接受参数个数:2 \ 0:1字节 AND操作寄存器(写) \ 1:8字节 AND操作寄存器 - or 指令码:0x08 \ 是否有type:否 \ 接受参数个数:2 \ 0:1字节 OR操作寄存器(写) \ 1:8字节 OR操作寄存器 - put 指令码:0x09 \ 是否有type:否 \ 接受参数个数:1 \ 0:1字节 指定寄存器 \ 输出该寄存器的值 - close 指令码:0x0a \ 是否有type:否 \ 接受参数个数:0 \ 通过异常关机 - not 指令码:0x0b \ 是否有type:否 \ 接受参数个数:1 \ 0:1字节 NOT操作寄存器(写) \ - jmp 指令码:0x0c \ 是否有type:否 \ 接受参数个数:1 \ 0:8字节 指定跳转地址 \ - xor 指令码:0x0d \ 是否有type:否 \ 接受参数个数:2 \ 0:1字节 XOR操作寄存器(写) \ 1:8字节 XOR操作寄存器