русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

MOVS/MOVSB/MOVSW/MOVSD - Пересылка данных из строки в строку


Дата добавления: 2015-06-12; просмотров: 700; Нарушение авторских прав


-----------------------------------------------------------------|Код Команда Число Описание ||операции тактовых || циклов || ||A4 MOVS m8,m8 7 Пересылка байта || [(E)SI] в ES:[(E)DI] ||A5 MOVS m16,m16 7 Пересылка слова || [(E)SI] в ES:[(E)DI] ||A5 MOVS m32,m32 7 Пересылка двойного слова || [(E)SI] в ES:[(E)DI] ||A4 MOVSB 7 Пересылка байта || DS:[(E)SI] в ES:[(E)DI] ||A5 MOVSW 7 Пересылка слова || DS:[(E)SI] в ES:[(E)DI] ||A5 MOVSD 7 Пересылка двойного слова || DS:[(E)SI] в ES:[(E)DI] |----------------------------------------------------------------- Работа команды IF (команда = MOVSD) OR (команда имеет операнды -двойные слова)THEN OperandSize <- 32;ELSE OperandSize <- 16;IF AddressSize = 16THEN использовать SI как индекс-источника и DI как индекс-назначения;ELSE (* AddressSize = 32 *) использовать ESI как индекс-источника и EDI как индекс-назначения;FI;IF байтовый тип командыTHEN [индекс-назначения] <- [индекс-источника];(* Назначение байта *) IF DF = 0 THEN IncDec <- 1 ELSE IncDec <- -1; FI;ELSE IF OperandSize = 16 THEN [индекс-назначения] <- [индекс-источника];(*Назначение слова*) IF DF = 0 THEN IncDec <- 2 ELSE IncDec <- -2; FI; ELSE [индекс-назначения] <- [индекс-источника];(*Назначение двойного слова*) IF DF = 0 THEN IncDec <- 4 ELSE IncDec <- -4; FI; FI;FI;индекс-источника <- индекс-источника + IncDec;индекс-назначения <- индекс-назначения + IncDec; Описание Команда MOVS копирует байт или слово из [(E)SI] в байт или словов ES:[(E)DI]. Операнд назначения должен адресоваться из регистраES: переопределение сегмента для операнда назначения невозможно.Переопределение сегмента может быть использовано дляоперанда-источника (исходного операнда): по умолчаниюпринимается регистр DS. Адрес операндов источника и назначения определяется исключительносодержимым регистров (E)SI и (E)DI. Перед выполнением команды MOVS выдолжны загрузить в регистры (E)SI и (E)DI правильные значения. КомандыMOVS, MOVSW и MOVSD являются синонимами команды MOVS для работы с байтами,словами и двойными словами, соответственно.После пересылки данных происходит автоматическое продвижение регистров(E)SI и (E)DI. Если флаг DF равен 0 (была выполнена команда CLD), товыполняется инкремент регистров; если же флаг DF равен 1 (была выполненакоманда STD), то выполняется декремент регистров. Регистрыинкрементируются или декрементируются на единицу, если выполняласьпересылка байта, на 2, если выполнялась пересылка слова, и на 4 - двойногослова.Команде MOVS может предшествовать префикс REP для пересылки сразу CXбайтов или слов. Подробности об этом см. в описании префикса REP. Изменяемые флагиОтсутствуютИсключения защищенного режима #GP(0), если назначением является сегмент, недоступный для записи; #GP(0)в случае недопустимого исполнительного адреса операнда памяти в сегментахCS, DS, ES, FS или GS; #SS(0) в случае недопустимого адреса в сегменте SS;#PF(код сбоя) в случае страничного сбоя; #AC для невыравненной ссылки кпамяти при текущем уровне привилегированности, равном 3. Исключения режима реальных адресовПрерывание 13, если какая-либо часть операнда лежит вне пространстваисполнительных адресов от 0 до 0FFFFH. Исключения виртуального режима 8086Те же исключения, что и для режима реальных адресов: #PF (код сбоя) длястраничных сбоев. #AC для невыравненной ссылки к памяти при текущем уровнепривилегированности, равном 3.


<== предыдущая лекция | следующая лекция ==>
MOV - Пересылка данных в специальные регистры и из них | MOVSX - Пересылка с расширением знаком


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.023 сек.