main
  right
imgsearch
menu_left menu_right
separate
shop_left
Книга
hr

shop_right
below
gap
navigate
 
bottom

Команды Ассемблера: Команды пересылки и обмена информацией

Команда пересылки MOV

Move operand to/from system registers - Пересылка операнда в/из системных регистров. Иными словами, команда выполняет присвоение.

Пример:

mov	eax,ebx
mov	eax,[a]
mov	al,[b]

Первая строка кода в регистр eax запишет значение регистра ebx. Два операнда, содержащиеся в команде mov должны иметь одинаковую длину. Если первый операнд - регистр общего назначения, то второй операнд может быть любым. Если же в качестве операнда используется сегментный регистр, то использование второго сегментного регистра запрещено, также, запрещено использование двух адресов памяти.

Команда обмена данными XCHG

Exchange

Команда XCHG меняет значения двух операндов местами.

Пример:

mov	eax,[a]
xchg	eax,[b]
mov	[a],eax

Этот обмен можно сделать через команду mov:

mov	eax,[a]
mov	ebx,[b]
mov	[a],ebx
mov	[b],eax

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

Команда загрузки адреса LEA

Load effective address

Пример:

lea	eax,[a]

Эта же операция может быть записана и с помощью команды mov:

mov	eax, offset a

Использование второго варианта предпочтительнее, поскольку он более эффективен.

Команды для работы со стеком

PUSH - помещает число в стек.

POP - извлекает число из стека.

Пример:

push	[a]
push	[b]
pop	[a]
pop	[b]

Выше описанный пример меняет местами значения a и b. Это достигается с помощью специфики стека - "Первый вошел - последний вышел". Сначала в стек помещается адрес переменной a, потом - b. Первое извлеченное данное (верхнее, то есть помещенное последним) записывается в a, а второе команда pop извлекает из стека в переменную b.

Автор:Евгений Катрич
<< назад  оглавление  вперед >>
tranpx
bottom_map  
bot-top
Copyright © 2004-2008 E-mail: [email protected]