русс | укр

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

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

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

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


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

STOS/STOSB/STOSW/STOSD - Сохранение строковых данных


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


-----------------------------------------------------------------|Код Команда Число Описание ||операции тактовых || циклов || ||AA STOS m8 5 Сохранение AL в байте || ES:[(E)DI], обновление (E)DI ||AB STOS m16 5 Сохранение AX в слове || ES:[(E)DI], обновление (E)DI ||AB STOS m32 5 Сохранение EAX в двойном слове || ES:[(E)DI], обновление (E)DI ||AA STOSB 5 Сохранение AL в байте || ES:[(E)DI], обновление (E)DI ||AB STOSW 5 Сохранение AX в слове || ES:[(E)DI], обновление (E)DI ||AB STOD 5 Сохранение EAX в двойном слове || ES:[(E)DI], обновление (E)DI |----------------------------------------------------------------- Работа команды IF AddressSize = 16THEN использование ES:DI в качестве DestRegELSE (* AddressSize = 32 *) использование ES:EDI в качестве DestReg;FI;IF байтовый тип командыTHEN (ES:DestReg) <- AL; IF DF = 0 THEN DestReg <- DestReg + 1; ELSE DestReg <- DestReg - 1; FI;ELSE IF OperandSize = 16 THEN (ES:DestReg) <- AX; IF DF = 0 THEN DestReg <- DestReg + 2; ELSE DestReg <- DestReg - 2; FI; ELSE (* OperandSize = 32 *) (ES:DestReg) <- EAX; IF DF = 0 THEN DestReg <- DestReg + 4; ELSE DestReg <- DestReg - 4; FI; FI;FI; ОписаниеКоманда STOS пересылает содержимое регистра AL, AX или EAX в байт илислово памяти, заданное регистром назначения относительно сегмента ES.Регистром назначения является регистр DI для атрибута размера адреса 16битов, или EDI для атрибута размера адреса 32 бита.Операнд назначения должен адресоваться из регистра ES; переопределениесегмента не допускается.Адрес назначения определяется содержимым регистра назначения, а не явнозаданным операндом команды STOS. Этот операнд используется только дляудостоверения адресуемости сегмента ES и определения типа данных. Передвыполнением команды STOS следует загрузить в регистр DI или EDI правильноезначение индекса.После того, как пересылка выполнена, регистр DI автоматически обновляется.Если флаг направления равен 0 (была выполнена команда CLD), происходитинкремент регистра назначения; если флаг направления равен 1 (былавыполнена команда STD), происходит декремент регистра назначения. Присохранении байтов инкремент или декремент равен 1; при сохранении словинкремент или декремент равен 2; при сохранении двойных слов инкремент илидекремент равен 4. Команды STOSB, STOSW и STOSD являются синонимами команды STOS, работающимис байтом, словом и двойным словом, соответственно, не требующимиоперандов. Их проще программировать, но они не обеспечивают проверки типаили сегмента.Команде STOS может предшествовать префикс REPE или REPNE для заполненияблока из CX или ECX байтов, слов или двойных слов. Подробности см. вописании команды REP. Изменяемые флагиОтсутствуют Исключения защищенного режима#GP(0), если назначением является сегмент, недоступный для записи; #GP(0)в случае недопустимого исполнительного адреса операнда памяти в сегментахCS, DS, ES, FS или GS; #SS(0) в случае недопустимого адреса в сегменте SS;#PF(код сбоя) в случае страничного сбоя; #AC для невыравненной ссылки кпамяти при текущем уровне привилегированности, равном 3. Исключения режима реальных адресовПрерывание 13, если какая-либо часть операнда лежит вне пространстваисполнительных адресов от 0 до 0FFFFH. Исключения виртуального режима 8086Те же исключения, что и для режима реальных адресов: #PF (код сбоя) длястраничных сбоев. #AC для невыравненной ссылки к памяти при текущем уровнепривилегированности, равном 3.


<== предыдущая лекция | следующая лекция ==>
SMSW - Сохранение слова состояния машины | SUB - Целочисленное вычитание


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


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

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

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


 


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

 
 

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

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