課題で助けが必要です。プレーン テキスト ファイルを 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 です...メモ帳に ASCII ではなく ANSI として保存するように具体的に指示しているので、これは奇妙です...