
- •36 Вопрос
- •15 Вопрос
- •9Вопрос
- •5 Вопрос
- •8 Вопрос
- •9 Вопрос
- •10Вопрос
- •14 Вопрос
- •15 Вопрос
- •16Вопрос
- •22 Вопрос
- •12 Вопрос
- •13 Вопрос
- •15 Вопрос
- •16 Вопрос
- •17 Вопрос
- •1 Вопрос
- •19 Вопрос
- •52 Вопрос
- •21 Вопрос
- •30 Вопрос
- •21 Вопрос
- •25 Вопрос
- •22 Вопрос
- •23 Вопрос
- •24 Вопрос
- •25 Вопрос
- •26 Вопрос
- •27 Вопрос
- •32 Вопрос
- •29 Вопрос
- •30 Вопрос
- •35 Вопрос
- •37 Вопрос
- •34 Вопрос
- •35 Вопрос
- •40 Вопрос
- •37 Вопрос
- •46 Вопрос
- •50Вопрос
- •42Вопрос
- •43 Вопрос
- •44 Вопрос
- •44 Вопрос
- •42 Вопрос
- •54 Вопрос
25 Вопрос
LEA
(Load Effective Address)
Загрузка эффективного адреса
Схема команды: |
lea приемник,источник |
Назначение: получение эффективного адреса (смещения) источника.
Синтаксис Алгоритм работы: алгоритм работы команды зависит от действующего режима адресации (use16 или use32):
если use16, то в регистр приемник загружается 16-битное значение смещения операнда источник;
если use32, то в регистр приемник загружается 32-битное значение смещения операнда источник.
Применение: Данная команда является альтернативой оператору ассемблера offset. В отличие от offset команда lea допускает индексацию операнда, что позволяет более гибко организовать адресацию операндов.
;загрузить в регистр bx адрес пятого элемента массива mas .data mas db 10 dup (0) .code ... mov di,4 lea bx,mas[di] ;или lea bx,mas[4] ;или lea bx,mas+4
|
22 Вопрос
PUSH
(PUSH operand onto stack)
Размещение операнда в стеке
Схема команды: |
push источник |
Назначение: размещение содержимого операнда источник в стеке.
Синтаксис Алгоритм работы:
уменьшить значение указателя стека esp/sp на 4/2 (в зависимости от значения атрибута размера адреса — use16 или use32);
записать источник в вершину стека (адресуемую парой ss:esp/sp).
Применение: Команда push используется совместно с командой pop для записи значений в стек и извлечения их из стека. Размер записываемых значений — слово или двойное слово. Также в стек можно записывать непосредственные значения. Заметьте, что в отличие от команды pop в стек можно включать значение сегментного регистра cs. Другой интересный момент связан с регистром sp. Команда push esp/sp записывает в стек значение esp/sp по состоянию до выдачи этой команды. В микропроцессоре i8086 по этой команде записывалось скорректированное значение sp. При записи в стек 8-битных значений для них все равно выделяется слово или двойное слово (в зависимости от use16 или use32).
my_proc proc near
push ax
push bx
;тело процедуры, в которой изменяется содержимое
;регистров ax и bx
...
pop bx
pop ax
ret
endp
POP
(POP operand from the stack)
Извлечение операнда из стека
Схема команды: |
pop приемник |
Назначение: извлечение слова или двойного слова из стека.
Синтаксис Алгоритм работы: Алгоритм работы команды зависит от установленного атрибута размера адреса — use16 или use32:
загрузить в приемник содержимое вершины стека (адресуется парой ss:esp/sp);
увеличить содержимое esp/sp на 4 (2 байта) для use32 (соответственно для use16).
Применение: Команда применяется для восстановления содержимого вершины стека в регистр, ячейку памяти или сегментный регистр. Заметим, что недопустимо восстановление значения в сегментный регистр cs.
my_proc proc near
push ax
push bx
;тело процедуры, в которой изменяется содержимое
;регистров ax и bx
...
pop bx
pop ax
ret
endp