Иллюстрированный самоучитель по Assembler


MP Безусловный переход - часть 3


LDS Загрузка указателя с использованием регистра DS


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

Ids reg, mem

эквивалентна следующей группе команд:

mov reg,word ptr mem

mov DS,word ptr mem+2

В качестве первого операнда команды Ids указывается регистр общего назначения; в качестве второго - ячейка памяти с двухсловным содержимым. Указатель, содержащийся в этой ячейке, может быть адресом как процедуры, так и поля данных. Команда не воздействует на флаги процессора.

Пример 1


; В полях данных:

addr dd myproc ;Двухсловный адрес процедуры

;myproc

;В программном сегменте:

Ids SI,addr ;DS:SI -> myproc

Пример 2


; В полях данных:

mem dw 25 ;Ячейка памяти с

; произвольным содержимым

addr dd myproc ;Двухсловный адрес этой

;ячейки

;В программном сегменте:

mov BX,offset addr ;ВХ=адрес ячейки addr

Ids DX, [BX] ;DХ=смещение ячейки mem,

;DS=сегментный адрес ячейки

;mem

Пример 3


; В полях данных:

dptr dd procl ;Полный адрес процедуры

; р г о с 1

dd proc2 ;Полный адрес процедуры

;ргос2

dd ргосЗ ;Полный адрес процедуры

; р г о с 3

;В программном сегменте:

mov SI, 8 ; Смещение к адресу ргосЗ

Ids DI,dptr[SI] ;DS:DI ® ргосЗ

Допустимо использование 32-разрядного регистра-приемника и 32-битового смещения в памяти, а также дополнительных режимов адресации 32-разрядных процессоров. В защищенном режиме вместо сегментного адреса сегмента выступает его селектор.

LEA Загрузка исполнительного адреса


Команда lea загружает в регистр, указанный в команде в качестве первого операнда, относительный адрес второго операнда (не значение операнда!). В качестве первого операнда следует указывать регистр общего назначения (не сегментный), в качестве второго - ячейку памяти. Команда

lea reg,mem




Начало  Назад  Вперед