我需要一些帮助来完成一项任务。我需要处理 ASCII 格式的纯文本文件,并返回每个代码存在多少个字符(有多少个 a,多少个 b,等等)。它现在几乎可以完美运行。
我现在遇到的问题是,如果文件上有扩展的 ASCII 字符,当我使用 3fh 服务中断时,它不能很好地读取它们。
例如,如果文件有一个 é(ascii 代码 130),它会读取一个 ß(ascii 代码 225)。恐怕我用错了中断,但我不知道该怎么做,所以在这里提供一点帮助将不胜感激。调试也无济于事,因为中断执行得很好,没有错误,它只是返回缓冲区中的错误值。
这是我用来读取文件的确切代码。我有上一个中断的句柄。
xor ax,ax
lea dx, buffer
mov ah,3fh
mov bx,handle
mov cx,4096
int 21h
谢谢!
编辑
我发现了问题,但不知道如何解决。原来,读作 225 的字符不是 é,而是 á。根据我发现的每个 ASCII 表,á 的代码应该是 160……但在 Unicode 中是 225……这很奇怪,因为我特意告诉记事本将其保存为 ANSI,而不是 ASCII……