Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка.doc
Скачиваний:
20
Добавлен:
08.11.2018
Размер:
1.15 Mб
Скачать

Теоретичні зведення до виконання лабораторної роботи №5 Пересилка даних

Команда процесора Intel 8086 MOV (переслати) використовується для пересилки даних завдовжки 1 байт або 2 байти

а) з регістра в регістр;

б) з регістра в пам'ять;

в) з пам'яті в регістр.

і для пересилки даних безпосередньо заданих в команді ( безпосередньо задані операнди - літерали) в регістр або за заданою адресою в пам'ять.

Приклади:

1) MOV AL,BL ; переслати вміст регістра BL в регістр AL

2) MOV DS,AX ; переслати вміст регістра AX в регістр DS

3) MOV AH,3 ; переслати число 3 в регістр AH (3 - літерал)

4) MOV CX,256 ; переслати число 256 в регістр CX (256 - літерал)

Пересилка проводиться справа наліво:

MOV приймач, джерело

При цьому можуть використовуватися наступні режими адресації (способи завдання операндів):

1) Регістровий режим. У якості операндів використовується вміст регістрів.

Наприклад: MOV BX,DX

2) Безпосередній режим. У команді міститься не адреса операнда, а безпосередньо сам операнд.

Наприклад: MOV AX,0002

3) Пряма адресація. Пряма адреса - змінна, що є адресою в основній пам'яті.

Вказівка прямої адреси у вигляді числа не допускається.

Приклад: MOV BH,X ; переслати вміст адреси X в регістр BH

MOV Y,ES ; переслати вміст регістра ES за адресою Y

X і Y - прямі адреси

4) Непряма адресація. У команді вказується адреса елементу пам'яті, в якому знаходиться операнд.

Приклад: MOV SI,1234 ; переслати 1234 в регістр SI

MOV [SI],256 ; переслати 256 в елемент з адресою, що вказана в

регістрі SI, тобто з адресою DS:1234

MOV BX,2345

MOV AL, [BX+SI]; переслати вміст елементу з адресою DS: 3579

(2345+1234=3579) в регістр AL

MOV CX,[BX+SI+21] ; переслати 2 байти, починаючи з адреси

DS:3600 (2345+1234+21=3600) в регістр CX

MOV BP,3456

MOV [BP+SI+1026],DX ; переслати вміст регістра DX в перші 2 байти

пам'яті, починаючи з адреси SS:5716 (3456+1234+1026=5716)

При цьому виконавча адреса формується з використанням окрім вказаного в квадратних дужках зсуву також і сегменту.

[BX] використовує сегментний регістр DS

[BP] використовує сегментний регістр SS

[DI] використовує сегментний регістр DS

[SI] використовує сегментний регістр DS

Загальні правила формування команд MOV:

1) Довжина даних, які можуть пересилатися, складає 1 байт або 2 байти. Якщо регістри розділені на пари AH,AL,BH,BL,CH,CL,DH,DL, то довжина даних складає 1 байт.

2) Пересилка даних можлива між будь-якими регістрами.

3) Безпосередні дані можна формувати тільки в регістрах AX,CX,DX, регістрах бази BX,BP і індексних регістрах SI,DI. Формування літералів в регістрах CS,DS,ES,SS неможливо.

4) Можлива адресація до пам'яті, при якій в регістрі бази або індексному регістрі заздалегідь встановлюють адресу елементу пам'яті, де зберігаються дані. Ці регістри побічно беруть участь в обміні даними і такий режим називається непрямою адресацією.