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

1.5 Самостійна робота

Під час підготовки до роботи потрібно повторити і вивчити такі теми самостійно:

  • шістнадцяткову і двійкову системи числення, вміти переводити значення з однієї системи числення в іншу;

  • команди порівняння і умовного переходу;

  • непряма адресація операндів в пам'яті.

1.6 Контрольні запитання і завдання

  1. Регістри мікропроцесора Intel 80486 та їх призначення.

  2. Які особливості роботи команд множення та ділення?

  3. Назвіть команди додавання та їх особливості (теж саме для команд віднімання).

  4. Директиви для роботи з 48-бітними операндами.

  5. Структура програми. Особливості різних моделей.

  6. Які особливості зберігання багатобайтових змінних?

  7. Поняття масиву і його індексація.

  8. Пряма і непряма адресації.

  9. Які регістри використовуються для непрямої адресації?

  10. Назвіть команди та директиви завантаження адреси масиву

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