→ Пошук по сайту       Увійти / Зареєструватися

Команди асемблера для Intel: 386+ LEAVE, LES, LFS, LGS, LSS

386+ LEAVE Вихід з процедури високого рівня

Команда leave виконує дії, протилежні діям останньої команди enter. Вона логічно знищує створений командою enter стековий кадр зі всіма локальними змінними, що містяться в нім, і готує стек до виконання команди irct, що завершує перехід в зухвалу процедуру. Команда leave не має параметрів. Докладніший опис і приклад див. в описі команди enter.

 

LES Завантаження покажчика з використанням регістра ES


Команда les прочитує з пам'яті за вказаною адресою подвійне слово (32 битий), що містить покажчик (повна адреса деякого осередку), і завантажує молодшу половину покажчика (тобто відносна адреса) у вказаний в команді регістр, а старшу половину покажчика (тобто сегментна адреса) в регістр ES. Таким чином, команда

les reg,mem

еквівалентна наступній групі команд:

mov reg,word ptr mem

 mov Es,word ptr mem+2 

Як перший операнд команди les указується регістр загального призначення; як другий - елемент пам'яті з двухсловним вмістом. Покажчик, що міститься в цьому осередку, може бути адресою як процедури, так і поля даних. Команда не впливає на прапори процесора.

Приклад 1

;У полях даних:
addr dd myproc ;Двухсловный адреса процедури
;myproc
;В програмному сегменті:
les Si,addr ;ES:SI ® myproc

Приклад 2

;У полях даних:
mem dw 25 ;Ячейка пам'яті з
;довільним вмістом
addr dd myproc ;Двухсловный адреса цього осередку
;У програмному сегменті:
mov Bx,offset addr ;ВХ=адрес осередки addr
.
les DX [BX] ; Dх=смещеніє осередку mem
;Еs=сегментний адреса осередку mem

Приклад 3

;У полях даних:
dptr dd procl ;Полный адреса процедури prod
dd proc2 ;Полный адреса процедури ргос2
dd ргосз ;Полный адреса процедури ргосз
;У програмному сегменті:
mov SI, 8 ;Смещение до адреси ргосз
les Di,dptr[SI];ES:DI -> ргосз

Допустиме використання 32-розрядного регістра-приймача і 32-бітового зсуву в пам'яті, а також додаткових режимів адресації 32-розрядних процесорів. У захищеному режимі замість сегментної адреси сегменту виступає його селектор.


LFS Завантаження покажчика з використанням регістра FS

LGS Завантаження покажчика з використанням регістра FS

LSS Завантаження покажчика з використанням регістра FS


Команди прочитують з пам'яті повний покажчик, що складається з селектора і 16-бітового або 32-бітового зсуву, і завантажують молодшу половину покажчика (тобто відносна адреса) у вказаний в команді регістр загального призначення, а старшу половину покажчика (тобто селектор) в сегментний регістр, вказаний в мнемоніці команди.

Як перший операнд всіх перерахованих команд указується 16- або 32-розрядний регістр загального призначення; як другий - елемент пам'яті з 32- або 48-бітовим вмістом. Команда не впливає на прапори процесора.
Приклади див. в описі команд Ids і les.

загрузка...
Сторінки, близькі за змістом