代码之家  ›  专栏  ›  技术社区  ›  mrduclaw

文件压缩程序在程序集中

  •  2
  • mrduclaw  · 技术社区  · 14 年前

    为了更好地编写程序集,作为一个学术练习,我想在x86程序集中编写一个非常重要的程序。由于文件压缩一直是我的一个兴趣,我想写一些像 zip 组装中的实用程序。

    我在这里并不是完全脱离我的元素,我编写了一个使用汇编和嵌入式设备编码的简单Web服务器,我已经阅读了zlib(和其他)的一些材料,并使用了它的C实现。

    我的问题是找到一个足够简单的程序来移植到组装。到目前为止,我检查过的许多公用设施都充满了 #define 和其他包含的代码。因为这只是我玩的,所以我对超级棒的压缩比或类似的东西不感兴趣。我基本上只是在寻找压缩算法的RC4。

    哈夫曼编码的路径我应该向下看,还是有人有其他建议?

    4 回复  |  直到 14 年前
        1
  •  1
  •   Turtle    14 年前
        2
  •  1
  •   bdonlan    14 年前

    一种选择是为 DEFLATE (zip和gzip后面的算法)。zlib的实现将被大量优化,但RFC为解码器提供了伪代码。学习了压缩格式之后,您可以继续基于它编写压缩器。

        3
  •  1
  •   Turtle    14 年前

    我记得第二年计算机科学的一个项目类似于这个(用C语言)。

    基本上,压缩涉及替换字符串 xxxxx (5 x) @\005x (at符号,值为5的字节,后跟重复的字节。这个算法很简单。对于英文文本来说,它没有那么好的效果,但是对于位图图像,它的效果却令人惊讶。

    编辑:我描述的是 run length encoding .

        4
  •  1
  •   Dennis Yurichev    14 年前

    看一看 UPX 可执行打包程序。它包含一些低级的解压代码,作为解压过程的一部分…