- •Методичні вказівки
- •"Системне програмування та операційні системи”
- •Лабораторна робота №1
- •Загальні відомості
- •Компілятор Turbo Assembler
- •Компонування програми
- •Складові частини програми
- •Лабораторна робота №2
- •Програмна модель пристрою fpu
- •Приклад побудови програми
- •Завдання до лабораторної роботи №1
- •Варіанти завдань до лабораторної роботи №2
- •Лабораторна робота №3
- •Опис логічних операцій мови програмування асемблер
- •Приклад програми використання логічних операцій
- •Варіанти завдань до виконання лабораторної роботи №3
- •Лабораторна робота №4
- •Команди для роботи з масивами
- •Приклад програми для роботи з масивами
- •Варіанти завдань до виконання лабораторної роботи №6
- •Лабораторна робота №5
- •Команди для роботи зі стрічками
- •Приклад програми для роботи із стрічками
- •Варіанти завдань до виконання лабораторної роботи №5
- •Контрольні запитання
- •Порядок оформлення звітів до виконання лабораторних робіт
- •Література
- •Навчальне видання
- •« Системне програмування та операційні системи »
Приклад програми використання логічних операцій
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
Варіанти завдань до виконання лабораторної роботи №3
Написати програму на мові Assembler, яка підраховує кількість одиничних бітів у введеному з клавіатури байті.
Написати програму на мові Assembler, яка підраховує кількість одиничних бітів у введеному з клавіатури слові.
Написати програму на мові Assembler, яка переводить введене з клавіатури число в шіснадцядкову систему.
Написати програму на мові Assembler, яка при запуску її парного числа виводить на дисплей біжучу дату та значення простих дільників біжучого року, а при запуску непарного числа виводить на дисплей біжучу дату та кількість днів, що залишилась до Нового року.
Написати програму на мові Assembler, яка при запуску її 15 та 24 числа виводить на дисплей повідомлення ‘ Access denied ’, забороняє переривання і пропонує ввести пароль для продовження роботи.
Написати програму на мові Assembler, яка при запуску виводить на дисплей кількість запусків програми на цьому комп’ютері .
Написати програму на мові Assembler, яка визначає, чи кількість днів,що залишилась до наступного вівторка є більшою 3.
Написати програму на мові Assembler, яка встановлює атрибут RDONLY для файла,ім’я якого прийняте з клавіатури.
Написати програму на мові Assembler, яка встановлює атрибут HIDDEN для файла,ім’я якого прийняте з клавіатури.
Написати програму на мові Assembler, яка змінює колір фону в текстовому режимі на червоний.
Написати програму на мові Assembler, яка в біжучій відеосторінці робить текст мигаючим.
Написати на мові Assembler програму SOUND, яка послідовно грає ноти другої октави на динаміку комп’ютера.
