![]() |
ПЛЗ, Помогите лабу на ассемблере написать!!!
народ, плз, очень нужна ваша помощь, сессия горит, помогите написать
Задание: Строку перекодировать из кодировки DOS в кодировку Windows. Результат вывести по центру следующей строки в скобках << … >> |
Лаба вот, но правильную таблицу перекодировки сделаешь сама
.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. Спасибо на хлеб не намажешь |
премного благодарен, просто огромное тебе спасибо, если бы ты жил в Курске обязательно бы тебе купил многа пива
|
| Часовой пояс GMT +4, время: 22:35. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.