lea

lea

LEA是微機8086/8088系列的一條指令,取自英語Load effective address——取有效地址,也就是取偏移地址。在微機8086/8088中有20位物理地址,由16位段基址向左偏移4位再與偏移地址之和得到。地址傳送指令之一。

指令格式,舉例,

指令格式

如下:
LEA reg16,mem
LEA指令將存儲器運算元mem的4位16進制偏移地址送到指定的暫存器。這裡,源運算元必須是存儲器運算元,目標運算元必須是16位通用暫存器。因該暫存器常用來作為地址指針,故在此最好選用四個間址暫存器BX,BP,SI,DI之一。
LEA 取有效地址指令 (Load Effective Address )
指令格式:LEA 目的,源
指令功能:取源運算元地址的偏移量,並把它傳送到目的運算元所在的單元。如:
LEA BX ,BUFFER
LEA AX,[BX][DI](j基址加變址定址)
LEA DX,DATA [BX][SI](相對基址加變址定址)
LEA 指令要求源運算元必須是存儲單元,而且目的運算元必須是一個除段暫存器之外的16位或32位暫存器。當目的運算元是16位通用暫存器時,那么只裝入有效地址的低16位。使用時要注意它與MOV指令的區別,MOV指令傳送的一般是源運算元中的內容而不是地址。

舉例

例1 假設:SI=1000H , DS=5000H, (1000H)=1234H
執行指令 LEA BX , [SI]後,BX=1000H
執行指令 MOV BX , [SI]後,BX=1234H
有時,LEA指令也可用取偏移地址的MOV指令替代。
例2 下面兩條指令就是等價的,他們都取TABLE的偏移地址,然後送到BX中,即
LEA BX,TABLE
MOV BX,OFFSET TABLE
但有些時候,必須使用LEA指令來完成某些功能,不能用MOV指令來實現,必須使用下面指令:
LEA BX, 6[DI]
解釋:某數組含20個元素,每個元素占一個位元組,序號為0~19。設DI指向數組開頭處,如果把序號為6的元素的偏移地址送到BX中
工程上的LEA是抗震時的錨固長度

相關詞條

熱門詞條

聯絡我們