Compression 汇编中的文件压缩程序

Compression 汇编中的文件压缩程序,compression,x86,Compression,X86,为了更好地进行汇编编程,作为一项学术练习,我想用x86汇编语言编写一个非常重要的程序。由于我一直对文件压缩感兴趣,所以我想在汇编中编写类似于zip实用程序的东西 我并不是完全不懂我的本领,我已经用汇编语言编写了一个简单的web服务器,并为嵌入式设备编写了代码,我已经阅读了一些关于zlib(以及其他)的资料,并使用了它的C实现 我的问题是找到一个简单到可以移植到汇编的例程。到目前为止,我检查过的许多实用程序都充满了#define和其他包含的代码。因为这真的只是供我玩的,所以我对超棒的压缩比或诸如此

为了更好地进行汇编编程,作为一项学术练习,我想用x86汇编语言编写一个非常重要的程序。由于我一直对文件压缩感兴趣,所以我想在汇编中编写类似于
zip
实用程序的东西

我并不是完全不懂我的本领,我已经用汇编语言编写了一个简单的web服务器,并为嵌入式设备编写了代码,我已经阅读了一些关于zlib(以及其他)的资料,并使用了它的C实现

我的问题是找到一个简单到可以移植到汇编的例程。到目前为止,我检查过的许多实用程序都充满了
#define
和其他包含的代码。因为这真的只是供我玩的,所以我对超棒的压缩比或诸如此类的东西不感兴趣。我基本上只是在寻找压缩算法的RC4


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

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

我记得计算科学二年级的一个项目与此类似(在C语言中)

基本上,压缩涉及到用
@\005x
替换字符串
xxxxx
(at符号,一个值为5的字节,后跟一个重复的字节)。该算法非常简单。它对英文文本效果不太好,但对位图图像效果出奇地好


编辑:我描述的是。

这里有一个更复杂的算法,应该不太难实现:或者。

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

美味。这太棒了,最终我完成了。非常感谢!Current最先进的技术是zstd,用于在速度与压缩比之间进行良好的通用权衡。()。比gzip/deflate快,并且通常压缩效果相当好或更好。谢谢,虽然我没有选择此方法,但背景阅读非常有用。谢谢你的建议。经过大量优化的代码正是我试图避免阅读的内容,但RFC相对来说比较容易遵循。作为记录“压缩算法的RC4”(代码短,易于实现)可能是LZ4()@mihi我们对“易于实现”有非常不同的定义“.RC4实际上是一对循环。在不到2分钟的时间里,我一直在看LZ4实现you链接,但它并没有立即告诉我如何实现它。由于谷歌代码的消亡,该链接不再包含与2013年相同的文本。:(“最相似的”我在LZ4的简短介绍中找到的页面是-但我只是浏览了一下,不确定这是否足够简单,但无论如何,我不知道有哪种压缩算法更容易实现(用于解压缩):一个循环内有两个循环,在我的x86 asm实现中总共有8个分支标签