Порядок выполнения работы. 1). Компилировать исходный текст программы и наблюдать работу драйвера манипулятора «мышь» при нажатии на левую и правую кнопки
1). Компилировать исходный текст программы и наблюдать работу драйвера манипулятора «мышь» при нажатии на левую и правую кнопки. 2). Получить загрузочные модули программ в соответствии с заданиями 1–7. Наблюдать на экране монитора изменение режимов работы манипулятора «мышь». 3). Занести в отчет по лабораторной работе тексты модифицированных программ и результаты тестирования этих программ. Исходный текст программы, используемой для выполнения лабораторной работы: .modelsmall.stack 256.datastat db? coldw? rowdw? color db 1flag db 0rezult db '000$'mult10 db 10mes_er db 'мышь не установлена', 13, 10, '$'mesdb 'пpогpамма завеpшена', 13, 10, '$'mask_m dw 16 dup(0ffffh) dw 8000h, 0c000h, 0a000h, 9000h dw 0a800h, 0b400h, 0ba00h, 0bd00h dw 0be80h, 0bf40h, 0bfa0h, 0bfd0h dw 0bfe0h, 0ae00h, 0a300h, 0e300h.codecursor_on proc nearmov ax, 01int 33hretcursor_on endpcursor_off proc nearmov ax, 2int 33hretcursor_off endpmouse_stat proc nearmov ax, 3int 33hretmouse_stat endppixel proc near call cursor_off mov ah, 0Ch mov al, color mov bh, 0 int 10h call cursor_on retpixel endpspeed proc near mov ax, 000fh mov cx, 64 mov dx, 64 int 33h mov ax, 0013h mov dx, 64 int 33h retspeed endptext_curc proc near mov ax, 000AH mov bx, 01 int 33h rettext_curc endp write proc near mov bx, 3cicle: idiv mult10 add ah, 30h mov [si+bx-1], ah mov ah, 0 dec bx jnz cicle mov ah, 09 mov dx, offset rezult int 21h retwrite endpgo: mov ax, @data mov ds, ax mov ax, 0 int 33h cmp ax, 0 jne ner jmp erner: mov ax, 10h int 10h mov ax, 9 xor bx, bx xor cx, cx push ds pop es lea dx, mask_m int 33h call speed call cursor_on call mouse_stat mov col, cx mov row, dxnext: mov ah, 02 mov bh, 00 mov dx, 00 int 10h mov ax, col lea si, rezult call write mov ah, 02 mov bh, 0 mov dx, 0005h int 10h mov ax, row call write mov dx, row mov cx, col mov ah, 1 int 16h jz nosym mov ah, 0 int 16h cmp al, 27 je exnosym: mov flag, 0 call mouse_stat mov stat, bl cmp col, cx jerov_lab mov col, cx mov flag, 1rov_lab: cmp row, dx je pixmov row, dxmov flag, 1pix: mov bl, statand bl, 2cmp bl, 2je nextc mov bl, stat and bl, 1 cmp bl, 1 jne next cmp flag, 0 je next call pixel jmp nextex: call cursor_offlea dx, mes jmp exitnextc: inc color jmp nexter: lea dx, mes_erexit: mov ax, 3int 10hmov ah, 9int 21hmov ax, 4c00h int 21hEndgo ВОПРОСЫ ВЫХОДНОГО КОНТРОЛЯ: 1. Как формируется ввод информации при перемещении манипулятора «мышь»? 2. Как формируется ввод информации при перемещении оптического манипулятора «мышь»? 3. Что подразумевается под инициализацией драйвера «мыши»? 5. В чем измеряется скорость и точность перемещения манипулятора «мышь»? 6. Каким образом при использовании прерывания int 33h определяется состояние «мыши»? 7. Какие процедуры использованы в программе для вычерчивания траекторий перемещения курсора «мыши»?
КРИТЕРИЙ ЗАЩИТЫ ЛАБОРАТОРНОЙ РАБОТЫ Зачет по результатам выполнения лабораторной работы по дисциплине «Системное программирование» выставляется при воспроизведении более 50%учебного материала: 1. описание с элементами объяснения: ― принципа работы трансляторов, отладчиков, компоновщиков; ― основы структурного проектирования программ; ― структуру программы; ― основные элементы языка программирования; ― операторы, функции и операции; ― структуры данных, файлы, классы памяти; 2. применение знаний в знакомой ситуации по образцу; ― методы разработки программ, управляющие структуры; ― программирования на языке ассемблер в среде TASM.; ― разработать алгоритм и коды; 3. наличие единичных существенных ошибок.
|