Переноса.
Биты, выдвигаемые с одного конца операнда, циклически вводятся в него через CF
с другого конца.
n максимальное = 31
*
--
--
--
--
--
--
--
Mov ax , 45 EAH; Данные в АХ.
Mov CL ,4; Количество бит сдвига (n)
в CL
STC; Занести в CF 1.
RCR ax , cl; В АХ 545ЕН. CF = 1
Mov Tab , 4 F 64 H; Данные в ячейку Tab.
RCR Tab , cl; В яч. Tab F64AH. CF=0
ROL
пр., счетчик
(n)
Сдвиг циклический влево.
Биты, выдвигаемые с одного конца операнда, вводятся в него с другого конца.
n максимальное = 31
*
--
--
--
--
--
--
--
Mov ax , 45 EAH; Данные в АХ.
Mov CL ,4; Кол-во бит сдвига в CL
ROL ax , cl; В АХ 5ЕA4Н.
Mov Tab , 4 F 64 H; Данные в ячейку Tab.
ROL Tab, cl ; В ячейке Tab F644H.
ROR
пр, счетчик
(n)
Сдвиг циклический вправо.
Биты, выдвигаемые с одного конца операнда, в циклически водятся в него с другого конца.
n максимальное =31
*
--
--
--
--
--
--
--
*
Mov ax , 45 EAH ; Данные в АХ.
Mov CL ,4; Кол-во бит сдвига в CL
ROR ax,cl ; В АХ A45ЕН.
Mov Tab , 4 F 64 H ; Данные в ячейку Tab.
ROR Tab, cl ; В ячейке Tab 44F6H.
Операции с битами и строками битов
BT база,
смещение
Проверка бита. Указанный в базе и смещении бит из источника пересылается в CF
CF:= бит источника.
--
--
--
--
--
--
--
--
*
Mov ax ,6652 h; Данные в АХ.
BT ax , 1; Первый бит данных (1) в CF.
Jb met 1; Передача управления в met 1.
BT tab ,31; 31-й бит данных tab в CF.
Jae met 2; Если CF=0, переход в met 2.
Продолжение таблицы 3.6
Мнемокод |
Описание команд | Флаги, пояснения, примеры | |||||||||||||||||||
OF | DF | IF | TF | SF | ZF | AF | PF | CF | |||||||||||||
BTS база, смещение |
Проверка и установка бита. Бит по адресу: база +смещение:= 1. BTS R/M , R/ im | -- | -- | -- | -- | -- | -- | -- | -- | * | |||||||||||
Выбирает бит и устанавливает в 1. Mov ax ,6652 h; Данные в АХ. BTS ax , 2; Устанавливает 2-й бит в 1. В АХ 6656Н, в CF занесется 0. | |||||||||||||||||||||
BTR база, смещение |
Проверка и сброс бита. Бит по адресу: база +смещение:= 0. BTR R/M , R/ im | -- | -- | -- | -- | -- | -- | -- | -- | * | |||||||||||
Выбирает бит и устанавливает в 0. Mov ax ,6652 h; Данные в АХ. BTR ax , 1; Устанавливает 1-й бит в 0. В АХ 6650Н, в CF занесется 1. | |||||||||||||||||||||
BTC база, cмещение |
Проверка и инверсия бита. Инвертировать бит по адресу: база +смещение. | -- | -- | -- | -- | -- | -- | -- | -- | * | |||||||||||
Mov ax ,6652 h; Данные в АХ. BT C ax , 1; Инверсия первого бита. Теперь в АХ 6650Н, в CF -1. | |||||||||||||||||||||
BSF пр.,ист. | Прямой поиск бита. Пр:= N первого единичного бита источника. | -- | -- | -- | -- | -- | * | -- | -- | -- | |||||||||||
Mov ax ,6650 h; Данные в АХ. BSF вх, ах; В ВХ заносится 4. Mov tab ,6400 h; Данные в ячейку tab. BSF вх, t а b; В ВХ заносится 10. | |||||||||||||||||||||
BSR пр.,ист. | Обратный поиск бита. Пр:= N первого Единичного бита источника при сканировании источника с младших разрядов | Mov ax ,6650 h; Данные в АХ. BSR вх, ах; В ВХ заносится 11. Mov tab ,6400 h; Данные в ячейку tab. BSR вх, t а b; В ВХ заносится 1. | |||||||||||||||||||
Команды обработки строк | |||||||||||||||||||||
Команды сравнения строк | |||||||||||||||||||||
REP REPE REPNE REPZ REPNZ | Повторять Повторять, пока равно. Повторять, пока не равно. Повторять, пока ноль. Повторять, пока не ноль. | Префиксы повторений для строковых команд. Количество повторений в регистре СХ или (ЕСХ). При каждом выполнении команды СХ или (ЕСХ) уменьшаются на 1. | |||||||||||||||||||
Продолжение таблицы 3.6
Мнемокод |
Описание команд | Флаги, пояснения, примеры | ||||||||||||||||
OF | DF | IF | TF | SF | ZF | AF | PF | CF | ||||||||||
* | -- | -- | -- | * | * | * | * | * | ||||||||||
CMPS пр.,ист. | Сравнить строки. Вычитает из источника приемник. DS:[(E)SI]- ES:[(E)DI] IF DF= 1, (E)DI:= (E)DI-1,(2),(4), (E)SI:= (E)SI- 1,(2),(4) | CLD; Установить флаг DF в 0. Mov cx ,100; Установить счетчик цикла на 100. Repe Cmps tab 1, tab 2; Сравнивать 100 элементов до нахождения несовпадающих. | ||||||||||||||||
CMPSВ |
Сравнить строки байтов. DS:[(E)SI]- ES:[(E)DI] IF DF= 0, то (E)DI:= (E)DI+1 (E)SI:= (E)SI +1 | * | -- | -- | -- | * | * | * | * | * | ||||||||
STD; Установить флаг DF в 1. Mov cx ,100; Установить счетчик цикла на 100. Repne Cmpsb tab 1, tab 2;Сравнивать 100 байтов до нахождения совпадающих. | ||||||||||||||||||
CMPSW
|
Сравнить строки слов.
[DS[E)SI]-[ES[E)DI] IF DF:= 0, то (E)DI:= (E)DI+ 2 (E)SI:= (E)SI+ 2 IF DF:= 1, то (E)DI:= (E)DI- 2 (E)SI:= (E)SI- 2
| * | -- | -- | -- | * | * | * | * | * | ||||||||
STD; Установить флаг DF в 1. Mov cx ,100; Установить счетчик цикла на 100. Repne Cmpsw tab 1, tab 2; Сравнивать 100 слов до нахождения совпадающих. Je m 1; При совпадении, передать управление в m1. | ||||||||||||||||||
CMPSD
|
Сравнить строки двойных слов.
DS:[(E)SI]- ES:[(E)DI] IF DF:= 0, то (E)DI:= (E)DI+ 4 (E)SI:= (E)SI+ 4 IF DF:= 1, то (E)DI:= (E)DI- 4 (E)SI:= (E)SI- 4
| * | -- | -- | -- | * | * | * | * | * | ||||||||
CLD; Установить флаг DF в 0. Mov cx ,100; Установить счетчик цикла на 100. Repne Cmpsd tab 1, tab 2;Сравнивать 100 двойных слов, до нахождения совпадающих. Je m 1; Передать управление в m1, при совпадении. | ||||||||||||||||||
Продолжение таблицы 3.6
Команды пересылки строк | |||||||||||||||||||
Мнемокод | Описание команд | Флаги, пояснения, примеры | |||||||||||||||||
OF | DF | IF | TF | SF | ZF | AF | PF | CF | |||||||||||
MOVS Пр.,ист.
|
Пересылать строковые данные Пр:= ист ES:[DI]:= DS: [SI] СХ:= СХ-1 | -- | -- | -- | -- | -- | -- | -- | -- | -- | |||||||||
CLD; Установить DF = 0. Lea SI , tabist; Адрес источника в SI, Lea DI , ES : tabpr; а приемника в DI. Mov CX ,100; Кол. элементов в СХ Rep Movs tabpr,tabist; Переслать 100 элементов. | |||||||||||||||||||
MOVSB |
Переслать строку байт. ES: [DI]:= DS: [SI] IF DF := 0, то DI := DI+ 1 SI := SI+ 1 IF DF:= 1, то DI := DI- 1 SI := SI- 1 | -- | -- | -- | -- | -- | -- | -- | -- | -- | |||||||||
CLD; Установить DF = 0. Lea SI , tabist;Адрес источника в SI, Lea DI , ES : tabpr; а приемника в DI. Mov CX ,100;Кол. элементов в СХ Rep Movs tabpr,tabist; Переслать 100 байт. | |||||||||||||||||||
MOVSW |
Пересылать строку слов. ES: [DI] := DS: [SI] IF DF:= 0, то DI := DI+ 2 SI := SI+ 2 IF DF:= 1, то DI := DI- 2 SI := SI- 2 | -- | -- | -- | -- | -- | -- | -- | -- | -- | |||||||||
CLD; Установить DF = 0. Lea SI , tabist; Адрес источника в SI, Lea DI , ES : tabpr; а приемника в DI. Mov CX ,100; Кол. элементов в СХ. Rep Movs tabpr,tabist; Переслать 100 слов. | |||||||||||||||||||
MOVSD | Дата: 2018-11-18, просмотров: 450. |