求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

Lea檢視原始碼討論檢視歷史

事實揭露 揭密真相
前往: 導覽搜尋
  Lea

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

簡介

lea指令用於把源操作數的地址偏移量傳送目的操作數。源操作數一定要是一個存貯器操作數,而召的操作數可以是任何的16位的通用寄存器,包括指針寄存器/變址寄存器。lea指令允許源操作數被下標標出,但是不允許使用帶有OFFSET操作符的MOV指令。另外,後面的操作一定要使用被定義的段中的變量偏移量。然而,如果這組僅僅能夠通過最後的ASSUME偽指令操作存取的話,lea指令將把它當作一組偏移量LEA指令將存儲器操作數mem的4位16進制偏移地址送到指定的寄存器。這裡,源操作數必須是存儲器操作數,目標操作數必須是16位通用寄存器。因該寄存器常用來作為地址指針,故在此最好選用四個間址寄存器BX,BP,SI,DI之一。

評價

LEA 指令要求源操作數必須是存儲單元,而且目的操作數必須是一個除段寄存器之外的16位或32位寄存器。當目的操作數是16位通用寄存器時,那麼只裝入有效地址的低16位。使用時要注意它與MOV指令的區別,MOV指令傳送的一般是源操作數中的內容而不是地址LEA指令和MOV指令一樣是移動數據,但是與MOV不同的是,它移動的是「[ ]」裡面的內容,例如:LEA EAX,[ECX]中,執行這條指令相當於MOV EAX,ECX。而MOV EAX,[ECX]是把「[ ]」裡面的數據當成是內存地址編號,取地址裡面的內容。[1]

參考文獻

  1. Lea搜狗