Студопедия

КАТЕГОРИИ:


Архитектура-(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

<== предыдущая лекция | следующая лекция ==>
Команды сдвига двойной точности | Mov es,ax
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 434; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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