Входные данные: esi = указывает на строку, ecx = количество символов. Думаю функция будет полезной. Например, было бы неплохо прикрутить ее к ТиниПаду.
Code: Select all
Win2Dos1:
jcxz .no_chars
push esi
push edi
push ecx
mov edi, esi
.next_char:
lodsb
cmp al, 0xC0
jae .rus
cmp al, 0xA8
jnz @f
mov al, 0xF0
@@:
cmp al, 0xB8
jnz @f
mov al, 0xF1
@@:
jmp .char_ready
.rus:
cmp al, 0xF0
jae @f
sub al, 48
@@:
sub al, 16
.char_ready:
stosb
dec ecx
jnz .next_char
pop ecx
pop edi
pop esi
.no_chars:
ret