Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕТОДИЧНІ ВКАЗІВКИ.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
409 Кб
Скачать
☆
  1. Приклад програми використання логічних операцій

title RS232

_DATA segment para public

Buf_Size equ 1024 ; розмір буфера

Source db Buf_Size+2 dup (0) ; буфер прийому символів

Src_ptr dw Source ; вказівник позиції в буфері

Count dw 0 ; кількість символів в буфері

Ser_ip dw 0 ; стара адреса Int 0Ch

Ser_cs dw 0

Save_ds dw 0 ; службові змінні

Int_sts db 0

Overrun db 0

_DATA ends

TEXT segment para public

assume cs:_TEXT, ds:_DATA

public Ser_Ini:near, Ser_Rst:near

public Get_Chr:near, Out_Chr:near

;г=================================================¬

;¦ Підпрограма іниціалізації COM1. ¦

;L=================================================-

Ser_Ini proc near

push ax ; зберегти регістри

push dx

push bx

push es

in al,21h ; IMR 1-го контролера пререривань

or al,10h ; заборонити IRQ4 COM1

out 21h,al

mov al,0Ch

mov ah,35h

int 21h ; взяти вектор Int 0Ch в es:bx

mov Ser_ip,bx ; і зберегти його

mov Ser_cs,es

mov al,0Ch

mov dx,offset Ser_int

push ds

mov bx,cs

mov ds,bx

mov ah,25h

int 21h ; встановити Int 0Ch = ds:dx

pop ds

pop es

pop bx

cli ; заборонити переривання

in al,21h ; IMR 1-го контролера переривань

and al,not 10h

out 21h,al ; дозволити переривання COM1

mov dx,3FBh ; регістр керування линією

in al,dx

or al,80h ; встановити біт DLAB

out dx,al

mov dx,3F8h

mov al,60h

out dx,al ; молодший байт для швидкості 1200 бод

inc dx

mov al,0

out dx,al ; старший байт швидкості

mov dx,3FBh ; регістр керування линією

mov al,00000011b ; 8 бит, 2 стоп-біта, без парності

out dx,al

mov dx,3F9h ; регистр дозволу переривань

mov al,1 ; дозволити переривання по прийому

out dx,al

nop ; почекати

nop

mov dx,3FCh ; регістр керування модемом

mov al,00001011b ; встановити DTR, RTS и OUT2

out dx,al

sti ; дозволити переривання

mov dx,3F8h ; регістр даних

in al,dx

pop dx

pop ax

ret

Ser_Ini endp

  1. Варіанти завдань до виконання лабораторної роботи №3

  1. Написати програму на мові Assembler, яка підраховує кількість одиничних бітів у введеному з клавіатури байті.

  2. Написати програму на мові Assembler, яка підраховує кількість одиничних бітів у введеному з клавіатури слові.

  3. Написати програму на мові Assembler, яка переводить введене з клавіатури число в шіснадцядкову систему.

  4. Написати програму на мові Assembler, яка при запуску її парного числа виводить на дисплей біжучу дату та значення простих дільників біжучого року, а при запуску непарного числа виводить на дисплей біжучу дату та кількість днів, що залишилась до Нового року.

  5. Написати програму на мові Assembler, яка при запуску її 15 та 24 числа виводить на дисплей повідомлення ‘ Access denied ’, забороняє переривання і пропонує ввести пароль для продовження роботи.

  6. Написати програму на мові Assembler, яка при запуску виводить на дисплей кількість запусків програми на цьому комп’ютері .

  7. Написати програму на мові Assembler, яка визначає, чи кількість днів,що залишилась до наступного вівторка є більшою 3.

  8. Написати програму на мові Assembler, яка встановлює атрибут RDONLY для файла,ім’я якого прийняте з клавіатури.

  9. Написати програму на мові Assembler, яка встановлює атрибут HIDDEN для файла,ім’я якого прийняте з клавіатури.

  10. Написати програму на мові Assembler, яка змінює колір фону в текстовому режимі на червоний.

  11. Написати програму на мові Assembler, яка в біжучій відеосторінці робить текст мигаючим.

  12. Написати на мові Assembler програму SOUND, яка послідовно грає ноти другої октави на динаміку комп’ютера.