AttoChess, a complete, playable chess program for 16-bit x86 DOS in 278 bytes
4 hours ago
- #Optimization
- #Chess
- #Assembly
- AttoChess通过重新思考棋盘显示、走棋解码和搜索循环进行优化,节省了10字节。
- 棋盘显示直接使用int 29h中断绘制到控制台,移除了渲染缓冲区和DOS的09h功能。
- 启动过程去除BIOS模式设置,使用确定性假设和cld指令以缩小代码体积。
- 输入解码器将常量折叠到基地址中,利用16位指针运算和imul指令提高效率。
- 搜索循环通过比较指针释放CX寄存器,避免从栈中重新加载深度信息。
- 兵的行进方向通过异或操作与颜色位折叠,使两种颜色的处理共用同一路径。