ВУЗ:
Составители:
Рубрика:
16
A DB 10
B DB 10 DUP (?)
C DB 4 DUP (0)
D DW ?
.CODE
MOV @AX, @DATA
MOVDS,AX
MOV AX, OFFSET A
Команды пересылки данных
Эти команды осуществляют обмен данными и адресами между регистрами и ячейками памяти или
портами ввода-вывода.
К этой группе относятся следующие команды:
MOV <операнд-приемник>,<операнд-источник>
Существуют ограничения на использования данной команды:
• Нельзя осуществлять пересылку из одной области памяти в другую. Если возникает такая
необходимость, то нужно использовать в качестве промежуточного буфера любой
доступный в данный момент регистр общего назначения нельзя загрузить в сегментный
регистр значение непосредственно из памяти. .
• нельзя пересылать содержимое одного регистра в другой сегментный регистр. Это
объясняется тем, что в системе команд нет соответствующего кода операции. Выполнить
такую операцию можно через регистр общего назначения.
mov ax,ds
mov es,ax
• нельзя использовать сегментный регистр cs в качестве операнда-приемника. Это
объясняется тем, что в паре регистров cs:ip всегда содержится адрес команды,
которая должна выполняться следующей. Изменение данного регистра означает
фактически операцию перехода, а не команду пересылки.
Для организации работы со стеком используются следующие команды.
Стек – память организованная по принципу «первым пришел последним ушел». Чаще всего стек
используется при вызовах процедуры при использовании команды CALL. В этом случае адрес
возврата, который извлекается после выполнения процедуры.
Стек имеет следующую структуру. Адрес стека находится в указателе стека sp. Адрес, который
содержится в sp называется вершиной стека. Стек «растет» по направлению к младшим адресам
(к ячейке 0), т.е. первое слово помещенное в стек имеет наибольший адрес, следующее на 2 байта
ниже.
Если нам необходимо получить доступ к элементам не на вершине, а внутри стека, то в этом
случае необходимо использовать регистр ebp- это регистр указателя базы кадра стека, где можно
записать необходимый адрес
стека.
PUSH источник - запись значения источника в вершину стека. В этом случае если необходимо
сохранить необходимый адрес
POP приемник - запись значения из вершины стека по месту, указанному операндом
приемником. Значение при этом «снимается» с вершины стека.
PUSHA и PUSHAW– команда групповой записи в стек. По этой команде в стек последовательно
записываются регистры ax, cx, dx, bx, sp, bp, si, di. Разница этих двуух команд в разрядности
используемых регистров (16 или 32 разрядных регистров)
POPA, POPAW – групповое извлечение из стека, обратная предыдущим операция.
A DB 10 B DB 10 DUP (?) C DB 4 DUP (0) D DW ? .CODE MOV @AX, @DATA MOVDS,AX MOV AX, OFFSET A Команды пересылки данных Эти команды осуществляют обмен данными и адресами между регистрами и ячейками памяти или портами ввода-вывода. К этой группе относятся следующие команды: MOV <операнд-приемник>,<операнд-источник> Существуют ограничения на использования данной команды: • Нельзя осуществлять пересылку из одной области памяти в другую. Если возникает такая необходимость, то нужно использовать в качестве промежуточного буфера любой доступный в данный момент регистр общего назначения нельзя загрузить в сегментный регистр значение непосредственно из памяти. . • нельзя пересылать содержимое одного регистра в другой сегментный регистр. Это объясняется тем, что в системе команд нет соответствующего кода операции. Выполнить такую операцию можно через регистр общего назначения. mov ax,ds mov es,ax • нельзя использовать сегментный регистр cs в качестве операнда-приемника. Это объясняется тем, что в паре регистров cs:ip всегда содержится адрес команды, которая должна выполняться следующей. Изменение данного регистра означает фактически операцию перехода, а не команду пересылки. Для организации работы со стеком используются следующие команды. Стек – память организованная по принципу «первым пришел последним ушел». Чаще всего стек используется при вызовах процедуры при использовании команды CALL. В этом случае адрес возврата, который извлекается после выполнения процедуры. Стек имеет следующую структуру. Адрес стека находится в указателе стека sp. Адрес, который содержится в sp называется вершиной стека. Стек «растет» по направлению к младшим адресам (к ячейке 0), т.е. первое слово помещенное в стек имеет наибольший адрес, следующее на 2 байта ниже. Если нам необходимо получить доступ к элементам не на вершине, а внутри стека, то в этом случае необходимо использовать регистр ebp- это регистр указателя базы кадра стека, где можно записать необходимый адрес стека. PUSH источник - запись значения источника в вершину стека. В этом случае если необходимо сохранить необходимый адрес POP приемник - запись значения из вершины стека по месту, указанному операндом приемником. Значение при этом «снимается» с вершины стека. PUSHA и PUSHAW– команда групповой записи в стек. По этой команде в стек последовательно записываются регистры ax, cx, dx, bx, sp, bp, si, di. Разница этих двуух команд в разрядности используемых регистров (16 или 32 разрядных регистров) POPA, POPAW – групповое извлечение из стека, обратная предыдущим операция. 16
Страницы
- « первая
- ‹ предыдущая
- …
- 14
- 15
- 16
- 17
- 18
- …
- следующая ›
- последняя »