|
Junior Member
Регистрация: 23.12.2003
Адрес: Киев
Сообщения: 118
|
Лаба вот, но правильную таблицу перекодировки сделаешь сама
.model tiny
.code
org 100h
start: mov dx, offset welcome
mov ah, 9
int 21h
mov ah, 0Ah
mov DX, offset buffer
int 21h
mov BL, 80-4
sub BL, blen
shr BL, 1
xor BH, BH
mov word ptr [space+BX],3C3Ch
mov byte ptr [space+BX+2],'$'
mov ah, 9
mov DX, offset space
int 21h
mov BL, blen
xor BH, BH
mov word ptr [bcontent+BX],3E3Eh
mov byte ptr [space+BX+2],'$'
mov AX, offset bcontent
mov CL, blen
call CP866_1251
mov ah, 09h
mov DX, offset bcontent
int 21h
ret
welcome db 'Введите строку в кодировке CP-866',0Dh,0Ah,'$'
buffer db 80-4
blen db ?
bcontent db 81-4 dup (?)
space db 80 dup(' '),'$'
CP866_1251:
Mov DI, AX
Add DI, BX
Mov BX, offset CTable
Cycle:
Dec CL
JL Break
Mov AL, byte ptr [DI]
XLatb
Mov byte ptr [DI], AL
Dec DI
Jmp Cycle
Break:
ret
CTable db 00h,01h,02h,03h,04h,05h,06h,07h,08h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh
db 10h,011h,012h,013h,014h,015h,016h,017h,018h,019h,01Ah,01Bh,01Ch,01Dh,0 1Eh,01Fh
db 20h,021h,022h,023h,024h,025h,026h,027h,028h,029h,02Ah,02Bh,02Ch,02Dh,0 2Eh,02Fh
db 30h,031h,032h,033h,034h,035h,036h,037h,038h,039h,03Ah,03Bh,03Ch,03Dh,0 3Eh,03Fh
db 40h,041h,042h,043h,044h,045h,046h,047h,048h,049h,04Ah,04Bh,04Ch,04Dh,0 4Eh,04Fh
db 50h,051h,052h,053h,054h,055h,056h,057h,058h,059h,05Ah,05Bh,05Ch,05Dh,0 5Eh,05Fh
db 60h,061h,062h,063h,064h,065h,066h,067h,068h,069h,06Ah,06Bh,06Ch,06Dh,0 6Eh,06Fh
db 70h,071h,072h,073h,074h,075h,076h,077h,078h,079h,07Ah,07Bh,07Ch,07Dh,0 7Eh,07Fh
db 3Fh,03Fh,027h,03Fh,022h,03Ah,0C5h,0D8h,03Fh,025h,03Fh,03Ch,03Fh,03Fh,0 3Fh,03Fh
db 3Fh,027h,027h,022h,022h,007h,02Dh,02Dh,03Fh,054h,03Fh,03Eh,03Fh,03Fh,0 3Fh,03Fh
db 0FFh,0F6h,0F7h,03Fh,0FDh,03Fh,0B3h,015h,0F0h,063h,0F2h,03Ch,0BFh,02Dh, 052h,0F4h
db 0F8h,02Bh,049h,069h,03Fh,0E7h,014h,0FAh,0F1h,0FCh,0F3h,03Eh,03Fh,03Fh, 03Fh,0F5h
db 80h,081h,082h,083h,084h,085h,086h,087h,088h,089h,08Ah,08Bh,08Ch,08Dh,0 8Eh,08Fh
db 90h,091h,092h,093h,094h,095h,096h,097h,098h,099h,09Ah,09Bh,09Ch,09Dh,0 9Eh,09Fh
db 0A0h,0A1h,0A2h,0A3h,0A4h,0A5h,0A6h,0A7h,0A8h,0A9h,0AAh,0ABh,0ACh,0ADh, 0AEh,0AFh
db 0E0h,0E1h,0E2h,0E3h,0E4h,0E5h,0E6h,0E7h,0E8h,0E9h,0EAh,0EBh,0ECh,0EDh, 0EEh,0EFh
end start
P.S. Спасибо на хлеб не намажешь
|