Lvm, 在cpu指令集上,一个基于

分享于 

2分钟阅读

GitHub

  繁體
a virual machine
  • 源代码名称:Lvm
  • 源代码网址:http://www.github.com/Leviathan1995/Lvm
  • Lvm源代码文档
  • Lvm源代码下载
  • Git URL:
    git://www.github.com/Leviathan1995/Lvm.git
    Git Clone代码到本地:
    git clone http://www.github.com/Leviathan1995/Lvm
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/Leviathan1995/Lvm
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    Lvm

    一个基于cpu指令 set.Includes的简单虚拟机,一些DIY指令,它还在。

    插件生成和运行:

    Linux,*nix,Mac OSX:

    
     $ git clone https://github.com/Leviathan1995/lvm.git
    
    
     $ make
    
    
     $./lvm
    
    
    
    

    示例:

    冒泡排序:

    image

    命令行语法

    • 注释使用''#''
    • 格式:操作码操作数1操作数2
    • 优先级:寄存器需要在立即数或内存地址前面例如 OPADDB [10 ]

    支持指令:

    指令说明示例
    OPHALT停止OPHALT
    OPCLEARregister=0OPCLEAR
    OPINITid=registerOPINIT i
    OPINITLISTa= {1,2,3,4,5}OPINITLIST 1,2,3,4,
    OPASSIGNid=reg/numOPASSIGN 0
    OPBINADDid1=id2+id3OPBINADD id1 id2 id3
    OPBINSUBid1=id2-id3OPBINSUB id1 id2 id3
    OPBINMULid1=id2*id3OPBINMUL id1 id2 id3
    OPBINDIVid1=id2/id3OPBINDIV id1 id2 id3
    OPADDBal=al+ [10 ]OPADDB [10 ]
    OPADDVBal=al+1OPADDVB 1
    OPSUBBal=al- [10 ]OPSUBB [10 ]
    OPSUBVBal=al-1OPSUBVB 1
    OPLOADal=clOPLOAD CL
    OPLOADVBal=1OPLOADVB 1
    OPSTOREB[10] =alOPSTOREB 10 AL
    OPINCal=al+1OPINC
    OPDECal=al-1OPDEC
    OPCMPVBcl cmp 5OPCMPVB CL 5
    OPJG如果greatet跳转到标签OPJG cmp1 cmp2标签
    OPJNG如果不是更大的跳转到标签OPJNG cmp1 cmp2标签
    OPPRINTR输出到终端OPPRINTR
    OPPRINTRLIST输出列表到终端OPPRINTRLIST列表
    OPEND块结束OPEND block1
    OPPAUSE使用调试OPPAUSE

    Lincense:

    MIT

    BASE  mac  SET  MACH  Virtual  tiny  
    相关文章