- •Системное программное обеспечение
- •Расширение системы команд в процессоре 80286
- •Расширение системы команд в процессоре 80286
- •Расширение системы команд в процессоре 80286
- •Расширение системы команд в процессоре 80286
- •Расширение системы команд в процессоре 80286
- •Расширение системы команд в процессоре 80286
- •Расширение системы команд в процессоре 80286
- •Расширение системы команд в процессоре 80286
- •Расширение системы команд в процессоре 80286
- •Расширение системы команд в процессоре 80286
- •Расширение системы команд в процессоре 80286
- •Расширение системы команд в процессоре 80286
- •Расширение системы команд в процессоре 80286
- •Расширение системы команд в процессоре 80386
- •Расширение системы команд в процессоре 80386
- •Расширение системы команд в процессоре 80386
- •Расширение системы команд в процессоре 80386
- •Расширение системы команд в процессоре 80386
- •Расширение системы команд в процессоре 80386
- •Расширение системы команд в процессоре 80386
- •Расширение системы команд в процессоре 80386
- •Расширение системы команд в процессоре 80386
- •Расширение системы команд в процессоре 80386
- •Расширение системы команд в процессоре 80386
- •Расширение системы команд в процессоре 80386
- •Расширение системы команд в процессоре 80386
- •Расширение системы команд в процессоре 80386
- •Расширение системы команд в процессоре 80386
- •Расширение системы команд в процессоре 80386
Расширение системы команд в процессоре 80286
Расширение системы команд в процессоре 80286
Расширение системы команд в процессоре 80286
Пример.
; в сегменте данных |
|
|
str_10 |
db |
10 dup(0) |
adr_str |
dd |
str_10 |
lds |
si, |
adr_str |
mov |
dx, |
300h |
mov |
cx, |
10 |
rep |
outsb |
|
Эти команды не меняют флаги.
4. Модификация команд сдвига и циклического сдвига. Малозаметным улучшением в командах 80286 является
возможность устанавливать величины непосредственного сдвига и циклического сдвига, большие, чем на 1. Это означает, что команды 8086:
Расширение системы команд в процессоре 80286
mov |
cl, 4 |
shl |
ax, cl |
могут быть упрощены:
shl ах,4
Такое же изменение применимо ко всем командам сдвига и циклического сдвига процессора 8086. При необходимости можно по- прежнему указывать значение сдвига в cl.
Расширение системы команд в процессоре 80386
В процессоре 80386 введены новые команды, позволяющие работать с 32-разрядными данными. Их можно разделить на следующие группы:
1. Команды битового сканирования и проверки битов bsf dest, src
(Bit Scan Forward — битовое сканирование вперед) Используется для установки в 16- или 32-разрядный регистр
приемника номера позиции первого ненулевого бита в байте, слове или двойном слове источника. Флаг zf при этом равен 0. Источником может быть регистр или ячейка памяти. Сканирование проходит от младшего бита к старшему. Если не найдено ни одного единичного бита, флаг zf устанавливается в 1 и содержимое приемника не меняется.
Расширение системы команд в процессоре 80386
Расширение системы команд в процессоре 80386
mov bx, 00010110b |
|
|
|
bsf cx, bx |
; cx |
= |
1 |
bsr cx, bx |
; cx |
= |
4 |
bt dest, src
(Bit Test — проверка бита)
Копирует бит приемника, номер которого указан в источнике, в флаг переноса cf. Каждый из операндов может быть 16- или 32-разрядным регистром; второй операнд может задаваться непосредственным значением. Приемник может быть 16- или 32- разрядной ячейкой памяти, а источник непосредственным значением.
btс dest, src
(Bit Test and Complement — проверка бита с инверсией)
То же самое, что bt, но только бит приемника после копирования в флаг переноса cf меняет значение на противоположное.
Расширение системы команд в процессоре 80386
btr dest, src
(Bit Test and Reset — проверка бита с его сбросом в 0)
То же самое, что bt, но только бит приемника после копирования в флаг переноса cf сбрасывается в 0.
bts dest, src
(Bit Test and Set — проверка бита с его установкой в 1)
То же самое, что bt, но только бит приемника после копирования в флаг переноса cf устанавливается в 1.
mov |
dx,01010011b |
|
bt |
dx,4 |
;проверка состояния бита 4 и установка cf в 1 |
jc |
m1 |
;перейти на m1, если проверяемый бит равен 1 |
2. Команды конвертирования данных
В дополнение к cbw и cwd можно использовать:
Расширение системы команд в процессоре 80386
cdq
(Convert Double word to Quad word — преобразование двойного слова в учетверенное слово),
для того чтобы конвертировать 32-битовое двойное слово со знаком в eax в 64-битовое четверное слово со знаком в паре регистров edx:eax путем копирования значения старшего бита регистра eax на все биты регистра edx
и
cwde
(Convert Word to Double Word Extended — преобразование слова в двойное слово)
для конвертации слова со знаком в ax в двойное слово со знаком в расширенный аккумулятор еах путем копирования значения старшего бита регистра ax на все биты старшего слова регистра еах.
Эти команды не влияют на флаги.
Расширение системы команд в процессоре 80386
mov |
eax,delimoe |
|
cdq |
|
|
idiv |
delitel |
;частное в eax, остаток в edx |
movsx dest, src
(MOVe and Sign eXtension — пересылка со знаковым расширением) преобразует элемент со знаком меньшей размерности в эквивалентный ему элементы со знаком большей размерности путем распространения значения знакового разряда источника на свободные старшие разряды приемника.
movzx dest, src
(MOVe and Zero eXtension — пересылка с нулевым расширением) то же самое, что и movsx, но для чисел без знака. При этом двоичный нуль распространяется на свободные старшие разряды приемника.
Эти команды также не влияют на флаги.
