КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Lea dx, dest
Rep movs dest, source Mov es, ax Mov ds, ax Code Data Команды пересылки строк Команды обработки строк Xlatb Mov ah, 1h Mov dx, offset mes Tab db 48 dup (0), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Xlatb Команды преобразования данных Извлечение битовой строки Вставка битовой строки Примеры работы с битовыми полями Move eax, pole2 Mov cl,16 .386 Code Pole2 dd 45ff6711h Pole1 dd 521187f5h Data ……. shld pole1,eax,cl;pole1=87f545ff shl pole2,cl;pole2=67110000 ………..
Вставить в поле определенное число бит, начиная с некоторой позиции. В примере выполняется вставка 16 бит, начиная с 8 разряда.
Фрагмент программы. .data pole1 dd 22000022h; вместо нулей, начиная с 8 разряда pole2 dd 55550000h; вставить 5555 из pole2
.code ……. mov eax,pole2 ror pole1,8; pole1=22220000 shr pole1,16; pole1=00002222 shld pole1,eax,16; pole1=2222 5555 rol pole1,8 pole1=22 5555 22 …………
Задача: извлечь из битовой строки 16 бит, начиная с позиции 8.
Пример фрагмента программы
.data str dd 22555522h
.code ………. rol str,8;str=55552222 mov ebx,str;ebx=55552222 shld eax,ebx,16;eax=0000 5555 ror str,8;str=22555522 Применяются для ввода с клавиатуры цифровых данных. xlat <адрес таблицы> или Действие команды заключается в том, что она замещает значение в регистре AL байтом из таблицы, адрес которого указан операндом. Адрес байта в таблице, который будет производить замещение содержимого AL, определяется операндом [BX+AL ]. Перед выполнением команды замещения адрес строки (таблицы) должен быть загружен в регистр BX, а регистр AL – относительный адрес байта в строке. Операнд Адрес таблицы не является обязательным. Рассмотрим пример программы, которая вместо кода ASCII числа, вводимого с клавиатуры компьютера, загружает в регистр AL само число. Код ASCII определяет место символа в таблице кодов. Он автоматически загружается в регистр AL при вводе числа с клавиатуры.
Фрагмент таблицы кодов ASCII
mes db “Введите число с клавиатуры”,$ lea bx, tab; в bx загружается адрес таблицы mov ah, 9h; вывод на экран сообщения int 21h xor ax, ax; очистка регистра ax int 21h;ожидание вода с клавиатуры movs <адрес приемника>, <адрес источника> movsb – пересылка байт movsw – пересылка слов movsd – пересылка двойных слов Первая команда осуществляет копирование байт, слов, двойных слов в зависимости от атрибутов идентификаторов. Число пересылаемых элементов должно быть загружено в регистр cx или ecx. Адрес источника должен быть загружен в пару DS:SI, а приемника – в регистры ES:DI. Пример:
source db “строка” dest db 6 dup (“ “) assume ds:@data, es:@data main: mov ax, @data cld; индексация адресов в сторону увеличения lea si, source; в si – адрес источника информации lea di, dest; в di – адрес приемника mov cx, 6; переслать из источника в приемник 6 байт mov ah, 09h;вывод на экран int 21h mov ax, 4с00h; возврат в среду DOS int 21h
Дата добавления: 2014-01-04; Просмотров: 434; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |