汇编语言 lea 是什么意思? 100
0AFC:0100 mov bx,0400
0AFC:0103 mov si,003c
0AFC:0106 lea bx,[bx+si+0f62]
0AFC:010A int 3
0AFC:010B
-g=100
AX=0000 BX=139E CX=0000 DX=0000 SP=FFEE BP=0000 SI=003C DI=0000
DS=0AFC ES=0AFC SS=0AFC CS=0AFC IP=010A NV UP EI PL NZ NA PO NC
0AFC:010A CC INT 3
lea bx,[bx+si+0f62]这一句话解释一下
我所知道的是将有效地址传给 bx 但是为什么结果中bx 的值和bx+si+0f62中的结果一样啊
希望解释一下 什么是有效地址 物理地址 段地址 偏移量 以及它们之间的关系?
bx和bx+si+0f62 相加的结果一样。
bx+si+0f62=139e lea bx,[bxsi+0f62]后bx是139e
测试后[bx+si+0f62]值是 1c74
bx+si+0f62值是 0f62 展开
LEA是微机8086/8088系列的一条指令,取自英语Load effective address——取有效地址,也就是取偏移地址。
LEA指令将存储器操作数mem的4位16进制偏移地址送到指定的寄存器。这里,源操作数必须是存储器操作数,目标操作数必须是16位通用寄存器。
因该寄存器常用来作为地址指针,故在此最好选用四个间址寄存器BX,BP,SI,DI之一。
扩展资料:
LEA指令常被用作运算求值,要比mov、add、sub等指令搭配快速。
LEA opera1, opera2的本来作用是取opera2的地址,然后把这个地址赋给opera1。
lea命令为加载有效地址(load dffective address) 和mov用法一样,指令并不是从制定的位置读入数据,而是将有效地址写入到目的操作数值中。
参考资料来源:百度百科-LEA指令
参考资料来源:百度百科-汇编语言
LEA指令的功能是将源操作数、即存储单元的有效地址(偏移地址)传送到目的操作数。
LEA有两个操作数:
1、左边是目的操作数,表示操作结果保存在此,该指令目的操作数只能是8个通用寄存器之一。
2、右边的是源操作数,该指令的源操作数只能是一个存储单元,表达存储单元有多种寻址方式。
示例:LEA BX,[BX+SI+0F54H]
[BX+SI+0F54H]采用相对基址变址的寻址方式表达存储单元,它表示的存储单元的有效地址是:BX内容加SI内容加0F54H,这个结果被传送到BX中。
扩展资料:
LEA指令常被用作运算求值,要比mov、add、sub等指令搭配快速。
LEA opera1, opera2的本来作用是取opera2的地址,然后把这个地址赋给opera1。
lea命令为加载有效地址(load dffective address) 和mov用法一样,指令并不是从制定的位置读入数据,而是将有效地址写入到目的操作数值中。
参考资料来源:
LEA指令的功能是将源操作数、即存储单元的有效地址(偏移地址)传送到目的操作数。
LEA有两个操作数。
左边是目的操作数,表示操作结果保存在此,该指令目的操作数只能是8个通用寄存器之一。
右边的是源操作数,该指令的源操作数只能是一个存储单元,表达存储单元有多种寻址方式。
示例:LEA BX,[BX+SI+0F54H]
[BX+SI+0F54H]采用相对基址变址的寻址方式表达存储单元,它表示的存储单元的有效地址是:BX内容加SI内容加0F54H。这个结果被传送到BX中。
LEA另一用途就是代替乘法运算,比如LEA EAX,[EAX*4+EAX]就要比用MUL去实现EAX*5来得快捷