我需要一些幫助。我需要用ASCII處理純文本文件,並返回每個代碼的字符數(有多少個a,多少個b等等)。它現在幾乎完美地工作。8086裝配體Int 21h和擴展ASCII字符
我現在有一個問題,如果文件上有擴展的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 ...
您正在使用MS-DOS?哇,你從過去? –
127以上的任何內容都不是ASCII .... – dda
@ Michael-O是的,這是一個彙編課程。 – dhcarmona