- •Затверджено
- •Протокол №6 від 05.11.2013
- •Загальні положення
- •1 Програмування арифметичних дій та обробка одновимірних масивів
- •Мета роботи
- •1.2 Підготовка до роботи
- •1.3 Вказівки до виконання роботи
- •1.5 Самостійна робота
- •1.6 Контрольні запитання і завдання
- •2 Бітові операції та обробка матриць
- •2.1 Мета роботи
- •2.2 Підготовка до роботи
- •2.3 Вказівки до виконання роботи
- •2.4.1 Варіанти завдань до лабораторної роботи «бітові операції»
- •3 Команди обробки рядків. Макрозасоби мови асемблер
- •3.3 Вказівки до виконання роботи
- •3.4 Варіанти завдань до лабораторної роботи
- •Самостійна робота
- •Контрольні запитання і завдання
- •4 Організація міжмодульного інтерфейсу між програмами мовами високого рівня та мовою асемблер
- •4.1 Мета роботи
- •4.2 Підготовка до роботи
- •4.3 Вказівки до виконання роботи
- •4.4 Варіанти завдань до лабораторної роботи
- •4.5 Самостійна робота
- •4.6 Контрольні завдання
- •5.4. Задание на лабораторную работу
- •5.5. Контрольные вопросы и задания
- •6 Средства ввода информации
- •6.1. Цель работы
- •6.2. Указания по подготовке к выполнению лабораторной работы
- •6.3. Обзор темы работы
- •6.4. Задание на лабораторную работу
- •6.5. Контрольные вопросы и задания
- •7. Многооконный интерфейс
- •7.1. Цель работы
- •7.2. Указания по подготовке к выполнению лабораторной работы
- •7.3. Обзор темы работы
- •7.4. Задание на лабораторную работу
- •7.5. Контрольные вопросы и задания
- •Перелік посилань
1.5 Самостійна робота
Під час підготовки до роботи потрібно повторити і вивчити такі теми самостійно:
шістнадцяткову і двійкову системи числення, вміти переводити значення з однієї системи числення в іншу;
команди порівняння і умовного переходу;
непряма адресація операндів в пам'яті.
1.6 Контрольні запитання і завдання
Регістри мікропроцесора Intel 80486 та їх призначення.
Які особливості роботи команд множення та ділення?
Назвіть команди додавання та їх особливості (теж саме для команд віднімання).
Директиви для роботи з 48-бітними операндами.
Структура програми. Особливості різних моделей.
Які особливості зберігання багатобайтових змінних?
Поняття масиву і його індексація.
Пряма і непряма адресації.
Які регістри використовуються для непрямої адресації?
Назвіть команди та директиви завантаження адреси масиву
2 Бітові операції та обробка матриць
2.1 Мета роботи
Ознайомлення з практичними прийомами використання бітових операцій.
2.2 Підготовка до роботи
Під час підготовки до роботи зверніть увагу на особливості команд, що дають можливість маніпуляцій з окремими бітами операндів: це логічні команди, команди зсуву та циклічного зсуву.
2.3 Вказівки до виконання роботи
Порядок виконання роботи відповідає підрозділу 1.3.
Приклад 1. Знайти добуток елементів масиву, які розташовані на парних місцях та мають непарне число біт в розрядах з 1 по 5.
.model small
.stack 100h
extrn displ:near, crlf:near, msg:near
.data
mas db 1,26,3,4,5,6,7,2
num dw 4
com db 13,10,'Result--$'
.code
mov ax,@data
mov ds,ax
lea si, mas
mov cx,num
mov ax,1
xor bh,bh
beg:
push cx
inc si
mov bl,[si]
push bx dx
shr bl,1
xor dx,dx
mov cx,5
beg1:
shr bl,1
adc dx,0
loop beg1
mov cx,dx
pop dx bx
shr cx,1
jnc beg2
mul bx
beg2:
inc si
pop cx
loop beg
lea dx,com
call msg
call btd
mov ah, 4ch
int 21h
btd proc
push bx
mov bx,10000
call show
mov bx,1000
call show
mov bx,100
call show
mov bx,10
call show
add al,'0'
mov dl,al
call displ
call crlf
pop bx
ret
btd endp
show proc
mov dx,0
div bx
mov di,dx
add al,'0'
mov dl,al
call displ
mov ax,di
ret
show endp
end
Приклад 2. У матриці 5*5 елементів поміняти місцямі 2 стовпець і 2 рядок.
…
matr dw 1,2,3,4,5
dw 6,7,8,9,1
dw 2,3,4,5,6
dw 7,8,9,1,2
dw 3,4,5,6,7
IshM db 'Початкова матриця:',10,13,'$'
PrM db 'Перетворювана матриця:',10,13,'$'
begin:
mov dx,offset IshM
mov ah,09h
int 21h
call WriteMatr
mov bx,offset matr
add bx,2
mov si,10
mov cx,5
m1:
mov ax,word ptr [bx]
mov dx,word ptr matr[si]
xchg ax,dx
mov word ptr [bx],ax
mov word ptr matr[si],dx
add bx,10
add si,2
loop m1
mov dx,offset PrM
call near ptr Crlf
mov ah,09h
int 21h
call WriteMatr
mov ah,4Ch
int 21h
WriteMatr proc near
push cx dx bx
mov bx,offset Matr
mov cx,25
i:
mov dx,cs:[bx]
add bx,2
push bx dx
xor dx,dx
mov ax,cx
mov bx,5
div bx
cmp dx,0
jnz n
call near ptr crlf
n:
pop dx bx
call hexw
loop i
pop bx dx cx
ret
WriteMatr endp
end f111
