Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум КТіООР.doc
Скачиваний:
3
Добавлен:
09.11.2019
Размер:
4.21 Mб
Скачать

2.5.1 Основні теоретичні відомості

МОV-пересилання

(1-й Операнд)  (2-й Операнд)

Другий операнд при виконанні команди MOV займає місце зберігання першого операнда. При цьому перший операнд втрачається.

Перший операнд може бути заданий в регістрі загального призначення, регістрі сегменту (окрім регістра CS) або комірці пам'яті. Другий операнд, крім того, може бути ще і безпосереднім операндом. Команда MOV працює як з однобайтовими, так і з двобайтовими словами.

Приклад. Нехай регістр СХ містить слово 04С5Н, а регістр ВР – слово 2312Н. Після виконання команди MOV CX,BP вмістом регістра СХ буде слово 2312Н, а вміст регістра ВР не зміниться.

Приклади запису на мові асемблера

MOV [BX], DL

MOV DL, CH

MOV [SI+12H], AX

MOV CX, SP

MOV BL,TEST_BYTE

MOV SI, [DI]

MOV DS, AX

MOV ES, NEV

MOV AX, CS

MOV OLDSEG, DS

MOV AL, TESTB

Movs-пересилка рядка

(Операнд за адресою в регістрі DI)  (Операнд за адресою в регістрі SI)

Якщо (DF) = 0, то (SI)  (SI) + 1 (байт)

(DI)  (DI) + 1 (байт)

або

(S1)  (SI) + 2 (слово)

(DI)  (DI) + 2 (слово)

Якщо (DF) = 1, то (SI)  (SI) – 1 (байт)

(DI)  (DI) – 1 (байт) ;або

(SI)  (SI) – 2 (слово)

(DI)  (DI) – 2 (слово)

Залежно від оброблюваних даних (однобайтових або двобайтових) при виконанні команди MOVS вміст комірок пам'яті, що адресуються регістром SI (щодо сегменту даних), передається в область пам'яті, що адресується регістром DI (щодо додаткового сегменту). Вміст області пам'яті, що адресується регістром SI, не змінюється. В мові асемблера команда MOVS записується як MOVSB для операцій з байтами і MOVSW – для операцій із словами. При скиненому в 0 прапорці DF вміст регістрів SI і DI збільшується на 1 або 2 при виконанні команд MOVSB і MOVSW відповідно, а при одиничному прапорці DF вміст цих регістрів зменшується автоматично на ту ж саму величину. Команда MOVS не має операндів і не впливає на прапори.

Приклад. Нехай регістр SI містить число 7F00H, за адресою пам'яті 7F00H записано число 0D0AH, регістр DI містить число В800Н, двобайтова комірка пам'яті з адресою В800Н – число 2020Н і виконується наступна послідовність команд:

CLD – скинути прапор напряму DF в 0,

MOVSW

Після виконання команди MOVSW в регістрах SI і DI буде записане 7F02H і В802Н відповідно. Двобайтовиа комірка пам'яті з адресою В800Н міститиме нове значення 0D0AH.

Нехай тепер SI містить число 2400Н, комірка пам'яті з адресою 2400Н – число 41Н, регістр DI – число В800Н, комірка пам'яті з адресою В800Н – число 00Н і виконується наступна послідовність команд:

STD - встановити прапор DF в 1.

MOVSB

Після виконання команди MOVSB в регістрах SI і DI знаходитимуться 23FFH і B7FFH відповідно, а в комірці пам'яті з адресою В800Н буде записано нове значення 41Н.

2.5.2. Варіанти завдань

1. MOV BX, 1010 MOV AH, BL

MOV CL, 7Fh MOV AX, CX

MOV SI, 1234 MOV BP, 010Fh

2. MOV DI, 1AFFh MOV BH, 15

MOV AL, BH MOV BX, 1A11h

MOV DX, CX MOV BP, 1DFAh

3. MOV CX, 1FFFh MOV DL, 1Dh

MOV BP, 1111 MOV BL, AL

MOV AX, 1AAAh MOV BX, CX

4. MOV DI, 11FFh MOV BH, 15

MOV AL, 1Ch MOV BX, 1A11h

MOV BX, CX MOV AH, BL

5. MOV CX, AX MOV DL, BL

MOV BP, 1111 MOV BX, 10

MOV SI, 1234 MOV BP, 010Fh

6. MOV DX, AX MOV DL, 1Dh

MOV AL, BL MOV BX, 1A11h

MOV BX, 1010 MOV AH, 12

7. MOV BX, 1010 MOV AH, 12

MOV CL, AH MOV AX, BX

MOV SI, 1234 MOV BP, 010Fh

8. MOV DI, 1AFFh MOV BH, AL

MOV AL, 1C MOV BX, 1A11h

MOV DX, CX MOV BP, 1DFAh

9. MOV CX, 1FFFh MOV DL, 1Dh

MOV BP, 1111 MOV BL, AH

MOV AX, BX MOV BX, 1Ah

10. MOV CX, AX MOV DL, 1Dh

MOV BP, 1111 MOV BL, DL

MOV SI, 1234 MOV BP, 010Fh

11. MOV DX, 1ACDh MOV DL, AH

MOV AL, 1Ch MOV BX, 1A11h

MOV BX, AX MOV AH, 12

12. MOV BX, 1010 MOV AH, 12

MOV CL, AH MOV AX, 0Ah

MOV SI, 1234 MOV BP, 010Fh

13. MOV BX, 1010 MOV AH, 12

MOV CL, DL MOV AX, DX

MOV SI, 1234 MOV BP, 010Fh

14. MOV DI, 1AFFh MOV BH, 15

MOV AL, BL MOV BX, AX

MOV DX, 1Fh MOV BP, 1DFAh

15. MOV BX, CX MOV AH, BL

MOV CX, AX MOV DL, BL

MOV BP, 1111 MOV BX, 10

16. MOV DX, CX MOV BP, 1DFAh

MOV CX, 1FFFh MOV DL, 1Dh

MOV BP, 1111 MOV BL, AL

Лабораторна робота №6

Тема роботи: Арифметичні та логічні операції.

Мета роботи: Навчитися застосовувати команди арифметичних та логічних операцій.