Lectures / 08
.pdfОрганизация ЭВМ и систем
Лекция 8
Команды пересылки. Работа со стеком. Прерывания DOS
Команда пересылки mov
mov приемник, источник
Примеры:
mov ax, bx mov dl, al mov si, dx mov sp, bp mov dh, cl mov ax, ax
Преобразование данных в командах
mov ax,[bx] inc [bx] mov [bx],0
mov ax,word ptr[bx] inc byte ptr[bx]
mov word ptr[bx],0
FLP dw 0
…………..
mov byte ptr (FLP+1),0ffh
Команда обмена xchg
xchg оп1, оп2
xchg ax,bx
xchg ax, word ptr [si]
Команда загрузки эффективного адреса
lea reg, mem
Эквивалентно
LEA SI, Mesg MOV SI, OFFSET Mesg
Команды загрузки указателей
lds reg, mem les reg, mem lgs reg, mem lfs reg, mem lss reg, mem
lds ax,var1 |
mov ax,word ptr var1 |
|
mov DS,word ptr var1+2 |
Пример: загрузить в es:di указатель строки s1 s1 db 'Hello$'
s1_ad dd s1 …..
les di,s1_ad
|
|
|
Стек |
|
Дно стека |
Старшие адреса |
|||
|
100 |
|||
|
||||
(начальное |
|
|
|
FE |
|
|
|
||
значение SP) |
|
|
|
|
|
|
|
FC |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
FA |
|
|
|
|
|
|
|
|
|
F8 |
|
|
|
|
Вершина стека (текущее
значение SP)
Рост |
|
|
|
|
02 |
|
|||
стека |
|
|||
|
|
|
|
|
00 |
|
|||
PUSH - запись |
|
|||
|
||||
|
|
|
|
|
Младшие адреса |
|
|||
|
|
POP - чтение
Уменьшение стека
SP
SS
Команды записи и чтения стека
Загрузка в стек (запись)
push источник
1)sp ← sp-2
2)[ss:sp] ← 16-битный источник
Выгрузка из стека (чтение)
pop приемник
1) 16-битный приемник ← [ss:sp]
2) sp ← sp+2
Запись и чтение регистра флагов
pushf
popf
Запись и чтение регистров общего
назначения
pusha
Запись в стек ax, cx, dx, bx, sp, bp, si, di
popa
Извлечение из стека di,si,bp,sp,bx,dx,cx,ax