1. 16 字节程序发布2026 年 5 月在荷兰奥门Ommen的 Outline Demoparty 上发布了对 16 字节 x86 汇编代码中算法密度的探索程序“唤醒16 字节”。2. 创作背景与过程创作者 30 多年前在老 IBM PC 上学习编程过去 15 年创作超 100 个微型演示程序。近期受 Plex 的“Rainbow Surf”激励重新投入工作。创作过程充满尝试用元胞自动机生成图形和声音探索代码压缩技巧如多态汇编指令、跳转到指令中间节省字节等该程序因独特音效脱颖而出。3. 代码精简后的困惑将代码展开去掉“多余部分”后创作者难以理解发生了什么没想到几个字节背后解释如此深奥。4. 音效与副标题创作者 2014 年创作的“M8trix”能随机显示字母一直想让其“音效更好”“唤醒”程序音效最先实现“16 字节将谢尔宾斯基音效转化为矩阵雨”是不错的副标题。5. 程序运行效果每一个时间步有新的谢尔宾斯基三角形线条通过扬声器播放并以 56 字节步长绘制到屏幕上。画面难看清因画面宽 8192“像素”一行字符 80 字节屏幕足够大或不“跳过像素”可看到完整三角形。6. 16 字节代码展示x86 实模式 DOS 汇编的 16 字节代码运行时利用视频内存计算绘制谢尔宾斯基分形图案并驱动扬声器发声。代码如下int 10h ; 2 字节mov bh, 0xb8 ; 2 字节mov ds, bx ; 2 字节L:lodsb ; 1 字节sub si, byte 57 ; 3 字节xor [si], al ; 2 字节out 61h, al ; 2 字节jmp short L ; 2 字节7. 画布预先准备好的空白代码以 BIOS 中断 int 10h 开始设置视频模式为 0得到 40x25 文本模式网格将数据段寄存器 ds 指向 0xb800VGA/CGA 文本缓冲区内存地址。BIOS 清屏时内存未全置零每个字符空间占两字节屏幕看似空但内存有统一图案。该程序音效突出“清屏”内存初始化方式及可见内存“前后”情况特别音效微妙差异使其更出色。8. 引擎累加前缀和程序的交织和通感效果超其他微型演示程序揭示更多数学秘密和关系。简化成数学问题假设初始状态为零用 add 代替 xor每次前进 16 字节累加器 al 初始值为 2。DOS 段 65536 字节每次移动 16 字节需 4096 步遍历si 回到 0x0000。单元格值相加产生部分和4096 是 256 倍数段循环时进位对齐al 重置为 2值遵循二项式序列。9. 结晶异或与谢尔宾斯基移位进行模 2 运算时谢尔宾斯基三角形出现特定位发送到扬声器。使用 xor 分离位平面代码从 2 开始只有第 1 位在 0x00 和 0x02 之间切换对应初等元胞自动机规则 60卢卡斯定理保证与加法表第 1 位匹配。10. 机器之声将数据转化为音频通过 out 61h, al 与 PC 扬声器交互第 1 位控制扬声器锥体伸缩。代码异或计算分形图案写入内存将字节发送到扬声器端口分形图案产生方波按行播放有自相似、与节奏无关的字节节拍64KB 段剩余字节参与产生独特音效。11. 56 字节步长八度移位与对角剪切为重现 M8trix 效果代码每次迭代向后移动 56 字节。音频方面56 不能整除 65536代码访问 8 的倍数偏移地址需 8192 步循环 7 次重置使循环长度加倍基频减半音效降一个八度。视觉方面在 80 字节宽屏幕上向后移 56 字节相当于前移 24 字节只访问 10 个不同列分形图案斜向剪切为 10 列字符向上移动。12. 真实硬件与最终思考场景创作者 _miragept_ 录制程序将地址从 0xB800 改成 0xB000用 286 计算机和 MDA 显示器运行。创作者回复感谢惊讶谢尔宾斯基结构在 _miragept_ 版本中更明显。模拟器和不同 BIOS 版本使内存痕迹不同代码对环境敏感清空内存可使输出一致但耗字节接受硬件自然状态是代码压缩魅力所在。