할당과 관련하여 도움이 필요합니다. 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 여야합니다 ...하지만 유니 코드에서는 225입니다 ... 특히 ASCII가 아닌 ANSI로 저장하도록 메모장에 말하고 있기 때문에 이상합니다.
MS-DOS를 사용하고 있습니까? 와우, 너 과거인가? –
127 이상은 ASCII가 아닙니다 .... – dda
@ Michael-O 네, 어셈블리 코스입니다. – dhcarmona