Файл: Изучение команд пересылки данных.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 07.11.2023

Просмотров: 26

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Лабораторное задание 1

Тема : Изучение команд пересылки данных

Вариант 6

Задание 1

Содержимое регистра флагов поместите в переменную x:integer

Program hh; //23.pas

// Лабораторное задание 1

// изучение команд пересылки

{ $ ASMMODE Intel} // подключение ассемблера

var x:integer;// целочисленная переменная х

begin

asm // указано ключевое слово определяющее блок команд ассемблера

xor bx,bx // обнуляем значение регистра bx

xor ax,ax // обнуляем значение регистра ax

mov al,2// ax=0002

mov bl,1// bx=0001

add al,bl//ax=0003

pushf // al=0002

pop x //извлечь из стека в переменную х

end;

writeln (‘x=’,x);

end.

P=1 флаг четности, он устанавливается если младший байт результата имеет четное число ненулевых разрядов. ( в данном случае 2 )

В данном случае p=1.



Пример операции сложения двух чисел



Сложение двух чисел 01111111(127)

00000001

10000000 (-128)

7 разрядов переполнились и был задействован знаковый разряд

Sf (знака)- s=1, когда старший бит результата равен 1. Иными словами S=0 для положительных чисел, и S=1 для отрицательных чисел.



Команды пересылки данных

Команды пересылки данных осуществляют обмен данными или адресами между регистрами МП и ячейками памяти или портами ввода/вывода. Их можно разделить на следующие подгруппы:

1) команды пересылки общего назначения;

2) команды загрузки адресных значений;

3) команды обращения к стеку;

4) команды пересылки флагов;

5) команды ввода/вывода.

Команды пересылки общего назначения

К этой подгруппе относятся команды MOV, XCHG и XLAT.

Команда MOV является основной командой пересылки общего назначения. Она имеет следующий формат:

MOV приемник, источник

и осуществляет пересылку байта или слова данных из источника в приемник. В качестве приемника и источника данных могут использоваться регистры МП или ячейки памяти. Кроме того, источник может быть и непосредственным значением.


В команде MOV допустимо большинство из возможных сочетаний операндов.

Пример 3.43:

MOV AX, Table ; Пересылка из памяти в регистр

MOV Table, AX ; и наоборот

MOV ES:[BX],DX ; Пересылка из регистра в память

MOV DS,AX ; Пересылка между 16-битными

MOV BL,AL ; или 8-битными регистрами

MOV CL,30 ; Пересылка константы в регистр

MOV [BX+SI],25h ; или в память

Некоторые из сочетаний операндов в команде MOV недопустимы.

1. Нельзя переслать данные из одной ячейки памяти в другую. При необходимости они пересылаются через промежуточный регистр.

Пример 3.44:

MOV Alpha,[BX] ; Ошибка - обращение типа

; "память" - "память"

MOV AX,[BX] ; Пересылка данных из ячейки,

MOV Alpha,AX ; адресуемой BX, в ячейку Alpha

2. Нельзя загрузить непосредственный операнд в сегментный регистр. При необходимости эта загрузка осуществляется через промежуточный регистр.

Пример 3.45:

MOV DS,0ABCDh ; Ошибка - загрузка константы

; в регистр DS

MOV AX,0ABCDh ; Загрузка константы

MOV DS,AX ; в регистр DS

3. Нельзя переслать данные между сегментными регистрами. При необходимости такая пересылка осуществляется через промежуточный регистр.

Пример 3.46:

MOV ES,DS ; Ошибка - пересылка между

; сегментными регистрами

MOV AX,ES ; Пересылка между сегментными

MOV DS,AX ; регистрами (из ES в DS)

4. В качестве приемника данных не может использоваться регистр CS, так как его изменение эквивалентно передаче управления, что не является пересылкой данных.

Команда обмена XCHG имеет формат:

Xchg приемник, источник

и осуществляет обмен байтами или словами данных между источником и приемником. В качестве источника и приемника данных могут использоваться регистры МП, либо регистр и ячейка памяти.