Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab6.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
79 Кб
Скачать
☆

3. Тестування програми. Аналіз результатів.

Після написання програми її обов’язково треба перевірити за допомогою дебагера. Ми повинні з’ясувати, чи вірно працює наша програма, чи не шкодить вона зайвих файлів, чи правильно перекодує символи, чи не виникає нескінченних циклів або інших помилок при роботі нашої програми.

По закінченню тестування ми повинні отримати дієздатну програму, що буде перекодовувати текстовий файл з однієї кодової таблиці в іншу.

4. Висновки.

В цій лабораторній роботі ми вперше ознайомились з функціями роботи з файлами. Ми навчилися відкривати та створювати файли, зчитувати з файлів інформацію та записувати данні в файл, ми навчилися закривати файли при завершенні роботи з ними.

Також ми познайомилися з різними кодовими таблицями та навчились перекодовувати символи з однієї кодової таблиці в іншу. Такі навички стануть важливим і необхідним інструментом в нашій подальшій роботі та професійній діяльності.

5. Контрольні запитання.

1). Які ви знаєте функції для створення та відкриття файлу?

2). Які ви знаєте функції для зчитування та запису в файл?

3). Яку ви знаєте функцію для закриття файлу.

4). Які кодові таблиці вам відомі?

5). Як працює команда XLAT?

Код програми:

SEGM segment assume CS:SEGM, DS:SEGM, ES:SEGM, SS:SEGM org 100h Begin: ;open file mov ah,3dh ; Ф-ція для відкриття фалу mov al,0 ;режим відкриття (0-для зчитування, 1- для записи, 2- для зчитування і запису ) lea dx,file ;адрес строки з іменем файла int 21h jc f_n_f ;cf=1 ; якщо файл не знайдений, який ми хочемо відкрити, то CF встановиться в 1 (помилка, вихід) mov bx,ax mov handle,bx ;"описатель" файла, можна так сказати, "указатель" на файл ;create file mov ah,3ch ; Ф-ція для створення файлу lea dx,sec_file ;адрес строки з іменем файла xor cx,cx ;обнулення регістру cx int 21h jc cnt_create ; CF встановиться в 1, якщо файл не можливо створити mov bx,ax mov handle_two,bx ;"описатель" файла, можна так сказати, "указатель" на файл ;;;; ;reading in bufer next_char: ; будемо вибирати по одній букві із файлу. і обробляти їх відповідно mov ah,3fh ;Ф-ція, за допомогою якою модна читати із файлу через "описатель" mov cx,1 ; кількість байт, які ми хочемо прочитати lea dx,bufer ; адрес буфера для зчитування mov bx,handle ; "описатель" файла, можна так сказати, "указатель" на файл int 21h jc close_file ; якщо неможливо зчитати із файла, то CF встановиться в 1 cmp cx,ax ; ах - кількість прочитаних байт, якщо рівно 1, значить є чимвол ідемо на обробку..., якщо немає кінець файлу je is_char ; == ;not char mov end_file,1 ;тимчасова змінна, в якій ми зберігаємо наявність кінця файлу.. mov cx,ax ;skilki zapisalo byte is_char: ;;;;;;;;;;;;;;;;;;; ;Детальніша робота ф-ції "xlat" - описана в лаб. роб. № 5 ;;;;;;;;;;;;;;;;;;;;; mov ah,bufer ; поміщуємо символ із буфера, який ми хочемо обробити.... lea bx,my_table ; встановлюємо ефективний адрес з нашою таблицею символів mov al,ah xlat mov bufer,al ; заносимо в буфер оброблений символ mov ah,40h ;Ф-ція, для запису у файл через "описатель" mov bx,handle_two ;"описатель" файла, можна так сказати, "указатель" на файл lea dx,bufer ; встановлюємо ефективний адрес з буфером... int 21h ;;;;;;;;;;;;;; cmp end_file,1 ;порівнюємо чи ще немає кінця файлу je close_file ; якщо кінець, то перейти на закриття файлу jmp next_char ;--------- ;close my file close_file: ; Ф-ції, для закриття файлів, щоб все було коректно... mov ah,3eh mov bx,handle_two int 21h mov ah,3eh mov bx,handle int 21h jmp exit f_n_f: mov ah,09h lea dx,file_not_found int 21h cnt_create: mov ah,09h lea dx,not_create_file int 21h exit: mov ax,4c00h int 21h ;data file db 'first.txt',0 sec_file db 'second.txt',0 file_not_found db 'Error: File ',34,'first.txt',34,' not found$' not_create_file db 'Error: Can not create file$' handle dw ? handle_two dw ? bufer db 200 dup(?) end_file db 0 my_table db 'QWERTYUIOPASDFGHJKLZXCVBNMqwertyuNopasdasduioqwen1234567890qwejkl-xcvbnmsdfbaAsdlfkMXvXsjkdlfnqk2-l45738euhfasAhdfa87w9heMjaskdnfau0wuftwefsdfSWFHAS' SEGM ends end Begin

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]