русс | укр

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

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

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

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


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

Команда stos

stos адрес_приемника (STOrage String) — сохранить элемент из регистра-аккумулятора al/ax/eax в цепочке.

Команда имеет один операнд адрес_приемника, адресующий цепочку в дополнительном сегменте данных.

Работа команды заключается в том, что она пересылает элемент из аккумулятора (регистра eax/ax/al) в элемент цепочки по адресу, соответствующему содержимому пары регистров es:edi/di. При этом содержимое edi/di подвергаются инкременту или декременту (в зависимости от состояния флага df) на значение, равное размеру элемента цепочки.

Префикс повторения в этой команде может и не понадобиться — все зависит от логики программы. Например, если использовать префикс повторения rep, то можно применить команду для инициализации области памяти некоторым фиксированным значением.

В качестве примера рассмотрим листинг 5. Программа производит замену в строке всех символов “а” на другой символ. Символ для замены вводится с клавиатуры.

Листинг 5. Замена командой stos символа в строке на вводимый с клавиатуры;prg_11_5.asmMASMMODEL smallSTACK 256.data;сообщенияfnd db 0ah,0dh,'Символ найден','$'nochar db 0ah,0dh,'Символ не найден.','$'mes1 db 0ah,0dh,'Исходная строка:','$'string db 'Поиск символа в этой строке.',0ah,0dh,'$' ;строка для поискаmes2 db 0ah,0dh,'Введите символ, на который следует заменить найденный' db 0ah,0dh,'$'mes3 db 0ah,0dh,'Новая строка: ','$'.code assume ds:@data,es:@data привязка ds и es к сегменту данныхmain: ;точка входа в программу mov ax,@data ;загрузка сегментных регистров mov ds,ax mov es,ax ;настройка es на ds mov ah,09h lea dx,mes1 int 21h ;вывод сообщения mes1 lea dx,string int 21h ;вывод string mov al,'а' ;символ для поиска-`а`(кириллица) cld ;сброс флага df lea di,string ;загрузка в di смещения string mov cx,29 ;для префикса repne — длина строки;поиск в строке string до тех пор, пока;символ в al и очередной символ в строке;не равны: выход - при первом совпаденииcycl:repne scas string je found ;если элемент найден то переход на foundfailed: ;иначе, если не найден, то вывод сообщения nochar mov ah,09h lea dx,nochar int 21h jmp exit ;переход на выходfound: mov ah,09h lea dx,fnd int 21h ;вывод сообщения об обнаружении символа;корректируем di для получения значения;действительной позиции совпавшего элемента;в строке и регистре al dec dinew_char: ;блок замены символа mov ah,09h lea dx,mes2 int 21h ;вывод сообщения mes2;ввод символа с клавиатуры mov ah,01h int 21h ;в al — введённый символ stos string ;сохраним введённый символ ;(из al) в строке string в позиции старого символа mov ah,09h lea dx,mes3 int 21h ;вывод сообщения mes3 lea dx,string int 21h ;вывод сообщения string;переход на поиск следующего символа ‘а’ встроке inc di ;указатель в строке string на следующий, ;после совпавшего, символ jmp cycl ;на продолжение просмотра stringexit: ;выход mov ax,4c00h int 21hend main ;конец программы

Следующие две команды появились впервые в системе команд микропроцессора i386. Они позволяют организовать эффективную передачу данных между портами ввода-вывода и цепочками в памяти. Следует отметить, что эти две команды позволяют достичь скорости передачи данных со скоростью выше той, которую может обеспечить контроллер DMA (Direct Memory Access — прямой доступ к памяти). Контроллер DMA — это специальная микросхема, предназначенная для того, чтобы освободить микропроцессор от управления процессом ввода-вывода больших массивов данных между внешним устройством (диском) и памятью.

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


Вернуться в оглавление



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


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

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

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


 


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

 
 

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