Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lectures / 10-11

.pdf
Скачиваний:
45
Добавлен:
16.04.2013
Размер:
164.26 Кб
Скачать

Пример сложения упакованных BCD-

чисел в сопроцессоре

.data

 

 

b

dt

71 ; упакованное число 71

c

dt

54 ; упакованное число 54

sum dt

?

.code

fbld b ; загрузить в стек BCD-число из ячейки b fbld c ; загрузить в стек BCD-число из ячейки c fadd ; сложить два числа из стека

fstp sum ; сохр. результат в sum как BCD-число

...

Команды для коррекции BCD-результата

Команды логического преобразования

данных

Логические

 

 

 

Обработки бит

 

and

 

 

 

 

 

 

 

 

Сканирования бит

 

or

 

 

 

bsf

 

xor

 

 

 

bsr

 

not

 

 

 

 

 

 

 

 

Проверки и

 

test

 

 

модификации бит

 

 

 

 

bt

 

 

 

 

 

 

 

 

 

 

btc

 

 

 

 

 

btr

 

 

 

 

 

bts

 

Сдвига

Обычного

sar shr sal shld shl shrd

Циклического

rcl rol rcr ror

Логические команды

and оп1, оп2 or оп1, оп2 xor оп1, оп2 not оп1 test оп1, оп2

Команды обработки бит

Сканирование бит

bsf

оп1, оп2

Bit Scanning Forward

bsr

оп1, оп2

Bit Scanning Reverse

 

 

 

 

 

Проверка и модификация бит

bt

оп, смещение_бита

Bit Test

bts

оп, смещение_бита

Bit Test and Set

btr

оп, смещение_бита

Bit Test and Reset

btc

оп, смещ_бита Bit Test and Complement

 

 

 

 

Линейный сдвиг

shl dest, count влево

shr dest, count вправо

Линейный сдвиг: Пример

Преобразовать неупакованное BCD-число из слова bcd_dig в упакованное BCD-число в регистре al

 

bcd_digdw

0905h ; неупак. число 95

 

mov

ax, bcd_dig

shl

ah, 4

add

al, ah ; al=95h

Арифметический сдвиг

sal dest, count влево

sar dest, count вправо

Циклический сдвиг

rol dest, count влево

ror dest, count вправо

Циклический сдвиг через бит переноса

rcl dest, count влево

rcr dest, count вправо

Соседние файлы в папке Lectures