Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

МЕТОДИЧЕСКИЕ УКАЗАНИЯ. Листинг 1 демонстрирует пример применения команд BSR и BSF





Листинг 1 демонстрирует пример применения команд BSR и BSF. Введите код и исследуйте работу программы в отладчике (в частности, обратите внимание на то, как меняется содержимое регистра ВХ после выполнения команд BSF и BSR).

Листинг 1. Сканирование битов

modelsmall

stack 256

.data; сегментданных

.code; сегмент кода

main:; точка входа в программу

movax, @data

movds.ax

.486; это обязательно

xor ax, a x

moval, 02h

bsfbx.ax; bx=l

jz ml; переход, если al=00h

bsr bx.ax

ml:

mov ах, 4с00п; стандартный выход

int 21h

end main

Листинг 2.

Наглядный пример рассогласования последовательностей битов — преобразование неупакованного BCD-числа в упакованное BCD-число. Один из вариантов такого преобразования был рассмотрен нами ранее при обсуждении команды линейного сдвига SHL Попробуем выполнить подобное преобразование с использованием команд сдвига двойной точности (листинг 9.2). В общем случае длина числа может быть произвольной, но при этом нужно учитывать ограничения, которые накладываются используемыми ресурсами процессора. Ограничения связаны в основном с тем, что центральное место в преобразовании занимает регистр ЕАХ, поэтому, если преобразуемое число имеет размер более четырех байтов, то его придется делить на части. Но это уже чисто алгоритмическая задача, поэтому в нашем случае предполагается, что неупакованное BCD-число имеет длину 4 байта.

Листинг 2. Преобразование BCD-числа

modelsmall

stack 256

.data

len=4; длина неупакованного BCD-числа

unpck_BCD label dword

dig_BCD db 2, 4, 3, 6; неупакованное BCD-число 6342

pck_BCD dd 0; pck_BCD=00006342

.code

main:; точка входа в программу

movax, @data

mov ds, ax

xor ax, ax

mov cx.len

.386; этообязательно

moveax, unpck_BCD

ml:

shl eax, 4; убираем нулевую тетраду

shld pck_BCD, eax, 4; тетраду с цифрой заносим в поле pck_BCD

shl eax, 4; убираем тетраду с цифрой из еах

loop ml; цикл

exit:; pck_BCD=00006342

mov ax, 4c00h

int 21h

end main

Команды сдвига двойной точности SHLD и SHRD позволяют осуществлять с максимально возможной скоростью вставку битовой строки из регистра в произвольное место другой (большей) строки битов в памяти и извлечение в регистр битовой подстроки из некоторой строки битов в памяти. В результате этих операций смежные с подстрокой биты по ее обеим сторонам остаются неизменными.

СОДЕРЖАНИЕ РАБОТЫ

Набрать программы и проверить их работоспособность

ВОПРОСЫ ВЫХОДНОГО КОНТРОЛЯ:

1. Назовите команды сдвига.

2. Назовите логические команды.

ДОМАШНЕЕ ЗАДАНИЕ

Выучить команды сдвига и логические команды.


 

Практическаяработа №3







Дата добавления: 2014-11-10; просмотров: 774. Нарушение авторских прав; Мы поможем в написании вашей работы!




Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...


Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Образование соседних чисел Фрагмент: Программная задача: показать образование числа 4 и числа 3 друг из друга...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Краткая психологическая характеристика возрастных периодов.Первый критический период развития ребенка — период новорожденности Психоаналитики говорят, что это первая травма, которую переживает ребенок, и она настолько сильна, что вся последую­щая жизнь проходит под знаком этой травмы...

Сосудистый шов (ручной Карреля, механический шов). Операции при ранениях крупных сосудов 1912 г., Каррель – впервые предложил методику сосудистого шва. Сосудистый шов применяется для восстановления магистрального кровотока при лечении...

Трамадол (Маброн, Плазадол, Трамал, Трамалин) Групповая принадлежность · Наркотический анальгетик со смешанным механизмом действия, агонист опиоидных рецепторов...

Мелоксикам (Мовалис) Групповая принадлежность · Нестероидное противовоспалительное средство, преимущественно селективный обратимый ингибитор циклооксигеназы (ЦОГ-2)...

Studopedia.info - Студопедия - 2014-2025 год . (0.013 сек.) русская версия | украинская версия