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

最近有点瓶颈,甚至有点儿脑残的感觉,所以花了数个小时做一点好玩的事情,转换一下脑残的状态,叫这个名字是故意的-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 Comments

  1. Posted 2012/03/06 at 11:31 | Permalink

    totally 看不懂

  2. Rachel
    Posted 2012/03/08 at 23:33 | Permalink

    …….原來你腦殘的時候是做這個…..
    我腦殘的時候可否來你這裡吐槽呀……

  3. Rachel
    Posted 2012/03/11 at 23:20 | Permalink

    補一句,加油哦。

  4. Posted 2012/03/14 at 09:35 | Permalink

    @Sam 我本来想写得比较生动活泼一点。果然更加晕了orz
    @Rachel 谢谢。我这里没什么人来。连我自己都不怎么来orz

  5. skip
    Posted 2012/09/12 at 09:45 | Permalink

    牛掰。看不明白!

  6. Posted 2012/09/17 at 18:21 | Permalink

    过来冒个泡,
    –sam的同事。

  7. 小池
    Posted 2012/09/27 at 13:21 | Permalink

    你脑残的时候才做这个……那活到现在为止,连个脑残都赶不上

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>