【问题标题】:8086 Write file without overwriting8086 写入文件而不覆盖
【发布时间】:2023-03-28 15:28:02
【问题描述】:

我有一个关于 8086 汇编的作业(这是家庭作业),我需要在屏幕上显示 BMP 图像并从 BMP 创建一个 ASCII 文本文件(就像那些 ASCII 艺术软件一样)。

我已经介绍了显示部分,并且我完成了将 BMP“翻译”为 ASCII 的工作。但是,如您所知,BMP 文件的像素行信息是颠倒的,即最上面的行最后写入文件。

所以我想,为了创建 .txt 文件,我可以简单地写一行,返回指向文件开头的指针,然后再写另一行,依此类推。但是,现在对我来说很明显这样做只会覆盖前一行,并且我最终会得到一个只有一行的文本文件。

所以,最后,我的问题是:有没有人对如何处理这种情况有任何建议?我将非常感谢任何帮助。提前致谢!

PD:我不是要求直接的解决方案,只是可能有一些我不知道的东西或工具可以帮助我解决这个问题。

【问题讨论】:

  • 在机器上解析 BMP 的方法是不是更容易,然后您可以将其写入为连续流?如果你能做出古怪的写作技巧,你肯定可以通过更好的阅读来避免它吗?

标签: text assembly ascii x86-16 output


【解决方案1】:

您无法轻松插入文本文件。

但是,由于您知道要写入多少行文本以及每行的长度(包括换行符),您可以找到文件的正确部分并从那里开始写入。

首先写出完整的空格(和换行符)。然后对每一行文本,寻找到合适的位置,输出一行文本。

或者,以相反的顺序读取位图扫描线。

【讨论】:

  • 哦!我明白你的意思......文件通常是320 * 200,所以我需要制作一个320 * 200 + 200数组(新行多200个),然后开始在它的位置上写每一行......是这就是你的建议?
  • 我以为你会缩小图像以适应,比如 80 宽的线条......但是,是的,这就是我的建议。作为替代方案,我还建议您以相反的顺序读取位图中的行,并从上到下写入文本文件。
猜你喜欢
  • 1970-01-01
  • 2011-05-08
  • 2012-06-18
  • 1970-01-01
  • 2012-04-15
  • 2015-01-19
  • 2014-02-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多