Hacker News 中文摘要

RSS订阅

技术分享:16字节x86代码实现矩阵雨转音频效果 -- WriteUp: 16 Bytes of x86 that turn Matrix rain into sound

文章摘要

这篇文章介绍了一段仅16字节的x86实模式DOS汇编代码,它在极简条件下实现了双重功能:通过操作视频内存绘制无限谢尔宾斯基分形,同时将该几何图形转化为音频数据输出,展现了算法密度在演示场景中的精妙运用。

文章总结

《16字节唤醒:x86汇编中的分形艺术与声音编程》

一、作品概览 在2026年5月荷兰奥门的Outline Demoparty上,一段仅16字节的x86实模式DOS汇编代码展现了算法密度艺术的巅峰。这段微型程序通过视频内存计算空间,同步生成谢尔宾斯基分形图形并将其转化为音频信号。

二、核心技术解析 1. 内存画布初始化 - 使用int 10h进入文本模式(40x25) - 视频缓冲区地址设为0xB800 - BIOS将2000字符单元初始化为:ASCII 0x20(空格)+ 属性0x07(灰底黑字)

  1. 分形生成算法 核心指令循环(16字节): assembly int 10h ; 视频中断 mov bh, 0xb8 ; 设置视频段 mov ds, bx ; L: lodsb ; 加载内存值 sub si, byte 57 ; 逆向步进56字节 xor [si], al ; 异或运算 out 61h, al ; 音频输出 jmp short L ; 循环

  2. 数学原理

  • 通过异或运算实现模2加法
  • 产生符合Wolfram规则60的细胞自动机
  • 内存遍历采用-56字节步长,形成对角线扫描效果

三、视听效果实现 1. 视觉呈现 - 在文本模式下生成谢尔宾斯基三角形 - 每12列形成一组垂直分形柱 - 字符属性变化产生动态闪烁效果

  1. 音频生成
  • 通过PC扬声器端口(61h)输出
  • 分形结构的比特1直接驱动扬声器锥体
  • 运算速度决定采样率,产生方波音效
  • 56字节步长使音频降八度

四、技术细节对比表

| 特性 | 16字节步长模型 | 实际56字节实现 | |------------|---------------|---------------| | 内存遍历周期 | 4,096次循环 | 8,192次循环 | | 音频频率 | 基准频率 | 低八度 | | 屏幕覆盖 | 完整覆盖 | 10列对角线扫描| | 分形完整性 | 完美对称 | 剪切变形效果 |

五、环境依赖性说明 1. 初始内存状态影响输出效果 2. 不同硬件/模拟器可能产生差异 3. 理论模型假设全零初始化,实际存在BIOS残留数据

六、创作哲学 这段代码体现了demoscene文化的核心精神: - 在极端限制下探索可能性 - 硬件特性的创造性运用 - 数学之美与计算机本质的融合 - 接受系统不确定性作为艺术元素

注:完整技术细节涉及模运算、组合数学等深层计算机科学原理,本文作了适度简化以保持可读性。

评论总结

评论总结:

  1. 技术惊叹(主要观点)
  • 对16字节实现分形图形和音频的惊叹:"It must be magic. I don't believe it's possible in such short snippet of code"(mati365)
  • "Quite incredible. This comment is larger"(simonjgreen)
  1. 技术原理分析
  • 详细解释了视频内存计算谢尔宾斯基分形和音频生成的机制:"The 16-Byte Code..."(HellMood)
  • 指出硬件特性对输出的影响:"Because it relies entirely on raw RAM states..."(HellMood)
  1. 音频效果评价
  • 对音频质量的惊讶:"Was super surprised the sound actually sounded coherent"(wanoir)
  • "And it is almost like a decent track, music is going round in my head now"(dnnddidiej)
  1. 相关作品推荐
  • 推荐作者其他作品:"The same author wrote a long writeup..."(blackle)
  • 推荐类似作品:"For a more laid-back chill 'rain' demo..."(briansm)
  1. 比较与联想
  • 与其他平台作品对比:"Seems like this does the reverse of the C64 demo..."(gsliepen)
  • 与其他微型作品对比:"There are several tiny demos on pouet.net..."(amenghra)
  1. 疑问与讨论
  • 关于分形与雨效关系的疑问:"How does the sierpinski fractal relate to the rain effect?"(Retr0id)
  • 关于程序性质的疑问:"Is this a program or a secret key that unlocks a beast?"(dnnddidiej)