车了个脑残的汇编虚拟机:脑残星球 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
aligo
V2EX    随想

车了个脑残的汇编虚拟机:脑残星球

  •  
  •   aligo 2012-03-06 11:29:28 +08:00 4586 次点击
    这是一个创建于 5027 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近有点瓶颈,甚至有点儿脑残的感觉,所以花了数个小时做一点好玩的事情,转换一下脑残的状态,叫这个名字是故意的-v-

    脑残星球(又称BB星球或2B星球)
    主要位于一维空间之中(未来可能拓展出新的维度),脑残星的一大特点是在高一级维度看来成圆环状首尾相接。
    Birus
    脑残星球上的主要生命形式,其最大的特点是没有脑子,或者说和其他Birus共享脑子。Birus的遗传信息由BBCode(脑残码)表示。
    Broken
    活体Birus在其生命活动中可以在空间中分裂出Broken,Broken被视做活体的一部分继续活动。一个活着的Birus至少为一个Broken。(用你们人类的说法是Thread)
    Brain
    所有Birus都连接至唯一的一个大脑,由大脑负责调度Birus的行动。大脑在多个Birus的多个Broken之间共享。(用你们人类的说法是CPU)
    SG
    脑残空间中的最基本单位,也是活体Birus的最基本单位。大脑每次会按顺序依次执行每个Broken的一个个SG。
    Birus的邪恶目标
    停止空间中其他Birus的活动,或者覆盖空间中的所有SG。

    前几天看了 @chone 同学写的那个有意思的东西。于是自己也想试试,不过Javascript对于随机生成来说命中率太低了。所以用比较符合机器识别,语法简单的汇编语言会更合适一点。
    基本目标就是写一个可以运行某种汇编语言的虚拟机,然后让随机生成的代码在里面运行,然后在此基础上进行优胜劣汰和算法变异。
    于是就先造了这个CoreWar的RedCode相似的汇编语言,目前为止已经完成的部分是和RedCode一样的。不过为了方便,未来可能会和RedCode有所区别。
    这就是第一部分的东西了。

    BBCode
    目前可将BBCode视为一种残缺的RedCode方言。每行表示一个SG(在CoreWar中叫做Core):
    操作码(.操作模式)? (A模式)?A值/地址 (B模式)?B值/地址

    目前只有一个很简陋的虚拟机demo,不断更新中:
    http://labs.aligo.me/bb/

    陆续可能会有更多调整,目前限制了脑残星球只有32个SG,虽然可以更改这个限制,不过还是建议不要试着用这东西写操作系统,除非你想体验一夜回到解放前的感觉XD
    欢迎各种建议意见-v-
    7 条回复    1970-01-01 08:00:00 +08:00
    GordianZ
        1
    GordianZ  
       2012-03-06 12:26:25 +08:00
    页面载入的时候自动reset一下吧,之前点了半天step 20没反应……
    一直对corewar挺有兴趣的,还没仔细研究过。明天仔细研究,现在睡觉。
    aligo
        2
    aligo  
    OP
       2012-03-06 18:25:18 +08:00
    @GordianZ 恩。今天都在忙别的东西。先小改了一下界面
    功能上基本没变,不过可以创建任意大小的空间和任意数量的Birus了
    aligo
        3
    aligo  
    OP
       2012-03-07 09:28:59 +08:00
    昨天晚上加上了SPL操作,工作方式类似于GNU Pth,共享同样的空间,每个Broken依次单步执行
    晚点有空我再慢慢把减乘除余和逻辑跳转加上=v=
    kojp
        4
    kojp  
       2012-03-07 13:01:51 +08:00
    LZ好先进,呃,如果不点开链接,我完全不知道你在说的是什么。
    kojp
        5
    kojp  
       2012-03-07 13:03:29 +08:00
    PS:

    BLOG 好漂亮,果断收藏了!
    cutehalo
        6
    cutehalo  
       2012-03-07 13:04:15 +08:00
    好厉害啊。。。可是已经把汇编忘光光了。。。
    aligo
        7
    aligo  
    OP
       2012-04-11 11:14:30 +08:00
    早知道一个月前我应该想把这东西完整地做出来

    现在看到有了个0x10c,不知道怎么就不想继续做了

    啊啊啊= =

    每次挖完坑都没有办法坚持做下去,然后突然发现有人在和你做一样的东西了。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     964 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 19:34 PVG 03:34 LAX 11:34 JFK 14:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86