8086汇编整数21h和扩展ASCII字符

问题描述 投票:3回答:2

我需要一些作业帮助。我需要用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 ...] >

我需要一些作业帮助。我需要用ASCII处理纯文本文件,并返回每个代码有多少个字符(多少个a,多少个b等)。现在几乎可以使用...

assembly ascii dos x86-16
2个回答
3
投票

您正在混淆代码页。

© www.soinside.com 2019 - 2024. All rights reserved.