Конспект лекций по предмету "Программирование"


Лекция 10.

1.Пересылка данных
Алгоритм, представляет собой формализованное описание логики работы программы. Способы такой формализации весьма разнятся: от текстового описания последовательности действий до алгоритма развитых case-систем. Последовательность действий, описываемых алгоритмом, может быть:
линейной – все действия выполняются поочередно, друг за другом;
нелинейной – в алгоритме есть точки ветвления, в которых должно приниматься решение о месте, с которого программа продолжит свое выполнение, причем решение может носить условный или безусловный характер.
Линейные участки алгоритма обычно содержат команды манипуляции данными, вычисления значений выражений, преобразования данных. В точках ветвления размещают команды сравнения, различных видов перехода, вызова подпрограмм и некоторые другие.
Еще раз обратимся к функциональной классификации целочисленных машинных команд процессора (см. рис. 9.1). Из всей совокупности этих команд на линейных участках работают следующие группы:
команды пересылки данных;
арифметические команды;
логические команды;
команды управления состоянием процессора.
В разделе Команды обмена данными мы рассмотрим только группу команд пересылки данных. Эти команды осуществляют пересылку данных из одного места в другое, запись и чтение информации из портов ввода-вывода, преобразование информации, манипуляции с адресами и указателями, обращение к стеку. Для некоторых из этих команд операция пересылки является только частью алгоритма. Другая его часть выполняет некоторые дополнительные операции над пересылаемой информацией. Поэтому для удобства практического применения и отражения их специфики данные команды будут рассмотрены в соответствии с их функциональным назначением, согласно которому они делятся на команды:
собственно пересылки данных;
ввода из порта и вывода в порт;
работы с адресами и указателями;
преобразования данных;
работы со стеком.
К группе команд пересылки данных относятся следующие команды:
mov <операнд назначения>,<операнд-источник>
xchg <операнд1>,<операнд2>
MOV – это основная команда пересылки данных. Она реализует самые разнообразные варианты пересылки. Отметим особенности применения этой команды.
Для двунаправленной пересылки данных применяют команду xchg. Для этой операции можно, конечно, применить последовательность из нескольких команд MOV, но из-за того что операция обмена используется довольно часто, разработчики системы команд процессора посчитали нужным ввести отдельную команду обмена – XCHG. Естественно, что операнды должны иметь один тип. Не допускается (как и для всех команд ассемблера) напрямую обменивать между собой содержимое двух ячеек памяти. К примеру,
xchg ах,bх ;обменять содержимое регистров ах и bх
xchg ax,word ptr [si] ;обменять содержимое регистра ах
;и слова в памяти по адресу в [si]
Можно рекомендовать использовать оператор PTR во всех сомнительных относительно согласования размеров операндов случаях. Также этот оператор нужно применять, когда требуется принудительно поменять размерность операндов.
Работа с адресами и указателями. При написании программ на ассемблере производится интенсивная работа с адресами операндов, находящимися в памяти. Для поддержки такого рода операций есть специальная группа команд, в которую входят следующие команды.
lea <приемник>,<источник> – загрузка эффективного адреса;
lds <приемник>,<источник> – загрузка указателя в регистр сегмента данных ds;
les <приемник>,<источник> – загрузка указателя в регистр дополнительного сегмента данных es;
lgs <приемник>,<источник> – загрузка указателя в регистр дополнительного сегмента данных gs;
lfs <приемник>,<источник> – загрузка указателя в регистр дополнительного сегмента данных fs;
lss <приемник>,<источник> – загрузка указателя в регистр сегмента стека ss.


Не сдавайте скачаную работу преподавателю!
Данный конспект лекций Вы можете использовать для создания шпаргалок и подготовки к экзаменам.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем конспект самостоятельно:
! Как написать конспект Как правильно подойти к написанию чтобы быстро и информативно все зафиксировать.