Lea EAX,[EBX+10]的作用

本文详细解析了汇编语言中LEA指令的工作原理,特别是当使用类似LeaEAX,[EBX+10]这样的指令时如何正确理解其作用。文章澄清了LEA指令将计算后的地址而非内容本身加载到目标寄存器的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Lea是返回偏移地址,对于 Lea EAX,s1 这样很好解释,就是返回变量s1的偏移地址

Lea EAX,[EBX+10]就比较复杂了

[EBX+10]表示EBX+10后作为地址,此地址指向位置的值,取的是EBX+10地址内的内容。

那Lea究竟是把这个内容作为地址存入EAX,还是把这个内容的地址赋给EAX呢?如果是后者,那不是跟MOV EAX,EBX+10的效果一样了?

实际的效果应该是后者,Mov EAX,EBX+10是非法的语句,汇编不允许操作数有2个寄存器和立即数存在。

 Lea EAX,[EBX+10]的作用就是把EBX+10作为地址存入EAX。

转载于:https://www.cnblogs.com/okwary/archive/2008/12/21/1359510.html

00D1FCCA | 8B1A | MOV EBX,DWORD PTR DS:[EDX] | 8 00D1FCCC | 3BDA | CMP EBX,EDX | 00D1FCCE | 8DB7 7C280000 | LEA ESI,DWORD PTR DS:[EDI+0x287C] | esi:&"`拔", [edi+287C]:L"怀"" 00D1FCD4 | 75 06 | JNE game.D1FCDC | 00D1FCD6 | FF15 742B1801 | CALL DWORD PTR DS:[0x1182B74] | 00D1FCDC | 8B43 08 | MOV EAX,DWORD PTR DS:[EBX+0x8] | 7 00D1FCDF | 8BCE | MOV ECX,ESI | ecx:&"`拔", esi:&"`拔" 00D1FCE1 | 8987 88280000 | MOV DWORD PTR DS:[EDI+0x2888],EAX | 6 00D1FCE7 | C787 8C280000 00000000 | MOV DWORD PTR DS:[EDI+0x288C],0x0 | 00D1FCF1 | E8 7AF0FFFF | CALL game.D1ED70 | 00D1FCF6 | 83BF 84280000 00 | CMP DWORD PTR DS:[EDI+0x2884],0x0 | 00D1FCFD | 0F84 E7000000 | JE game.D1FDEA | 00D1FD03 | 8B8F 80280000 | MOV ECX,DWORD PTR DS:[EDI+0x2880] | ecx:&"`拔" 00D1FD09 | 8B31 | MOV ESI,DWORD PTR DS:[ECX] | esi:&"`拔", [ecx]:"`拔"" 00D1FD0B | 3BF1 | CMP ESI,ECX | esi:&"`拔", ecx:&"`拔" 00D1FD0D | 8D9F 7C280000 | LEA EBX,DWORD PTR DS:[EDI+0x287C] | [edi+287C]:L"怀" 00D1FD13 | 75 06 | JNE game.D1FD1B | 00D1FD15 | FF15 742B1801 | CALL DWORD PTR DS:[0x1182B74] | 00D1FD1B | 8B76 08 | MOV ESI,DWORD PTR DS:[ESI+0x8] | esi:&"`拔" 00D1FD1E | 8B46 04 | MOV EAX,DWORD PTR DS:[ESI+0x4] | 00D1FD21 | 85C0 | TEST EAX,EAX | 00D1FD23 | 75 04 | JNE game.D1FD29 | 00D1FD25 | 33D2 | XOR EDX,EDX | 00D1FD27 | EB 05 | JMP game.D1FD2E | 00D1FD29 | 8B56 08 | MOV EDX,DWORD PTR DS:[ESI+0x8] | 00D1FD2C | 2BD0 | SUB EDX,EAX | 00D1FD2E | 8B87 88280000 | MOV EAX,DWORD PTR DS:[EDI+0x2888] | 00D1FD34 | 8B48 04 | MOV ECX,DWORD PTR DS:[EAX+0x4] | ecx:&"`拔" 00D1FD37 | 85C9 | TEST ECX,ECX | ecx:&"`拔" 00D1FD39 | 75 04 | JNE game.D1FD3F | 00D1FD3B | 33C0 | XOR EAX,EAX | 00D1FD3D | EB 05 | JMP game.D1FD44 | 00D1FD3F | 8B40 08 | MOV EAX,DWORD PTR DS:[EAX+0x8] | 00D1FD42 | 2BC1 | SUB EAX,ECX | ecx:&"`拔" 00D1FD44 | 03C2 | ADD EAX,EDX | 00D1FD46 | 3D 00040000 | CMP EAX,0x400 | 00D1FD4B | 0F83 99000000 | JAE game.D1FDEA | 00D1FD51 | 8B53 04 | MOV EDX,DWORD PTR DS:[EBX+0x4] | [ebx+04]:DispatchMessageW+4AA 00D1FD54 | 8B02 | MOV EAX,DWORD PTR DS:[EDX] | 00D1FD56 | 50 | PUSH EAX | 00D1FD57 | 53 | PUSH EBX | 00D1FD58 | 8D45 E4 | LEA EAX,DWORD PTR SS:[EBP-0x1C] | 00D1FD5B | 50 | PUSH EAX | 00D1FD5C | 8BCB | MOV ECX,EBX | ecx:&"`拔" 00D1FD5E | E8 5DEFFFFF | CALL game.D1ECC0 | 00D1FD63 | 8B46 08 | MOV EAX,DWORD PTR DS:[ESI+0x8] | 00D1FD66 | 3946 04 | CMP DWORD PTR DS:[ESI+0x4],EAX | 00D1FD69 | 8945 FC | MOV DWORD PTR SS:[EBP-0x4],EAX | [ebp-04]:WindowFromPoint+FC0 00D1FD6C | 76 06 | JBE game.D1FD74 | 00D1FD6E | FF15 742B1801 | CALL DWORD PTR DS:[0x1182B74] | 00D1FD74 | 8B46 04 | MOV EAX,DWORD PTR DS:[ESI+0x4] | 00D1FD77 | 3B46 08 | CMP EAX,DWORD PTR DS:[ESI+0x8] | 00D1FD7A | 8945 F8 | MOV DWORD PTR SS:[EBP-0x8],EAX | 00D1FD7D | 76 06 | JBE game.D1FD85 | 00D1FD7F | FF15 742B1801 | CALL DWORD PTR DS:[0x1182B74] | 00D1FD85 | 8B9F 88280000 | MOV EBX,DWORD PTR DS:[EDI+0x2888] | 00D1FD8B | 8B43 08 | MOV EAX,DWORD PTR DS:[EBX+0x8] | 00D1FD8E | 3943 04 | CMP DWORD PTR DS:[EBX+0x4],EAX | [ebx+04]:DispatchMessageW+4AA 00D1FD91 | 8945 08 | MOV DWORD PTR SS:[EBP+0x8],EAX | 00D1FD94 | 76 09 | JBE game.D1FD9F | 00D1FD96 | FF15 742B1801 | CALL DWORD PTR DS:[0x1182B74] | 00D1FD9C | 8B45 08 | MOV EAX,DWORD PTR SS:[EBP+0x8] | 00D1FD9F | 8B4D 08 | MOV ECX,DWORD PTR SS:[EBP+0x8] | 00D1FDA2 | 8B55 FC | MOV EDX,DWORD PTR SS:[EBP-0x4] | [ebp-04]:WindowFromPoint+FC0 00D1FDA5 | 51 | PUSH ECX | ecx:&"`拔" 00D1FDA6 | 8B4D F8 | MOV ECX,DWORD PTR SS:[EBP-0x8] | 00D1FDA9 | 52 | PUSH EDX | 00D1FDAA | 56 | PUSH ESI | esi:&"`拔" 00D1FDAB | 51 | PUSH ECX | ecx:&"`拔" 00D1FDAC | 8B8F 88280000 | MOV ECX,DWORD PTR DS:[EDI+0x2888] | ecx:&"`拔" 00D1FDB2 | 56 | PUSH ESI | esi:&"`拔" 00D1FDB3 | 50 | PUSH EAX | 00D1FDB4 | 53 | PUSH EBX | 00D1FDB5 | E8 26FCFFFF | CALL game.D1F9E0 | 00D1FDBA | 8B46 04 | MOV EAX,DWORD PTR DS:[ESI+0x4] | 00D1FDBD | 33DB | XOR EBX,EBX | 00D1FDBF | 3BC3 | CMP EAX,EBX | 00D1FDC1 | 74 09 | JE game.D1FDCC | 00D1FDC3 | 50 | PUSH EAX | 00D1FDC4 | E8 A7BE6FFF | CALL game.41BC70 | 00D1FDC9 | 83C4 04 | ADD ESP,0x4 | 00D1FDCC | 56 | PUSH ESI | esi:&"`拔" 00D1FDCD | 895E 04 | MOV DWORD PTR DS:[ESI+0x4],EBX | 00D1FDD0 | 895E 08 | MOV DWORD PTR DS:[ESI+0x8],EBX | 00D1FDD3 | 895E 0C | MOV DWORD PTR DS:[ESI+0xC],EBX | 00D1FDD6 | E8 95BE6FFF | CALL game.41BC70 | 00D1FDDB | 83C4 04 | ADD ESP,0x4 | 00D1FDDE | 399F 84280000 | CMP DWORD PTR DS:[EDI+0x2884],EBX | 00D1FDE4 | 0F85 19FFFFFF | JNE game.D1FD03 | 00D1FDEA | 8B9F 88280000 | MOV EBX,DWORD PTR DS:[EDI+0x2888] | 5 00D1FDF0 | 8B73 04 | MOV ESI,DWORD PTR DS:[EBX+0x4] | 4 00D1FDF3 | 3B73 08 | CMP ESI,DWORD PTR DS:[EBX+0x8] | esi:&"`拔" 00D1FDF6 | 76 09 | JBE game.D1FE01 | 00D1FDF8 | FF15 742B1801 | CALL DWORD PTR DS:[0x1182B74] | 00D1FDFE | 3B73 08 | CMP ESI,DWORD PTR DS:[EBX+0x8] | esi:&"`拔" 00D1FE01 | 72 06 | JB game.D1FE09 | 00D1FE03 | FF15 742B1801 | CALL DWORD PTR DS:[0x1182B74] | 00D1FE09 | 8B97 8C280000 | MOV EDX,DWORD PTR DS:[EDI+0x288C] | 00D1FE0F | 8D0432 | LEA EAX,DWORD PTR DS:[EDX+ESI] | 3 (edx=0) 00D1FE12 | 8945 F0 | MOV DWORD PTR SS:[EBP-0x10],EAX | 2 00D1FE15 | 8B87 88280000 | MOV EAX,DWORD PTR DS:[EDI+0x2888] | 00D1FE1B | 8B48 04 | MOV ECX,DWORD PTR DS:[EAX+0x4] | ecx:&"`拔" 00D1FE1E | 33DB | XOR EBX,EBX | 00D1FE20 | 3BCB | CMP ECX,EBX | ecx:&"`拔" 00D1FE22 | 75 04 | JNE game.D1FE28 | 00D1FE24 | 33C0 | XOR EAX,EAX | 00D1FE26 | EB 05 | JMP game.D1FE2D | 00D1FE28 | 8B40 08 | MOV EAX,DWORD PTR DS:[EAX+0x8] | 00D1FE2B | 2BC1 | SUB EAX,ECX | ecx:&"`拔" 00D1FE2D | 53 | PUSH EBX | 00D1FE2E | 53 | PUSH EBX | 00D1FE2F | 53 | PUSH EBX | 00D1FE30 | 8D4D F4 | LEA ECX,DWORD PTR SS:[EBP-0xC] | 00D1FE33 | 51 | PUSH ECX | ecx:&"`拔" 00D1FE34 | 2BC2 | SUB EAX,EDX | 00D1FE36 | 6A 01 | PUSH 0x1 | 00D1FE38 | 8D55 EC | LEA EDX,DWORD PTR SS:[EBP-0x14] | 1 00D1FE3B | 8945 EC | MOV DWORD PTR SS:[EBP-0x14],EAX | 00D1FE3E | 8B47 38 | MOV EAX,DWORD PTR DS:[EDI+0x38] | 00D1FE41 | 52 | PUSH EDX | 数据包 00D1FE42 | 50 | PUSH EAX | 00D1FE43 | FF15 98B60A01 | CALL DWORD PTR DS:[<WSASend>] |我追edx参数发现,写的公式错误,你看看怎么错了 edx =[[[edx]+8]+4]
最新发布
08-02
00D1FCC4 | 8B97 80280000 | MOV EDX,DWORD PTR DS:[EDI+0x2880] | edi+2880:L"istView32" 00D1FCCA | 8B1A | MOV EBX,DWORD PTR DS:[EDX] | 8 00D1FCCC | 3BDA | CMP EBX,EDX | 00D1FCCE | 8DB7 7C280000 | LEA ESI,DWORD PTR DS:[EDI+0x287C] | edi+287C:L"sListView32" 00D1FCD4 | 75 06 | JNE game.D1FCDC | 00D1FCD6 | FF15 742B1801 | CALL DWORD PTR DS:[0x1182B74] | 00D1FCDC | 8B43 08 | MOV EAX,DWORD PTR DS:[EBX+0x8] | 7 00D1FCDF | 8BCE | MOV ECX,ESI | 00D1FCE1 | 8987 88280000 | MOV DWORD PTR DS:[EDI+0x2888],EAX | 6 00D1FCE7 | C787 8C280000 00000000 | MOV DWORD PTR DS:[EDI+0x288C],0x0 | edi+288C:L"w32" 00D1FCF1 | E8 7AF0FFFF | CALL game.D1ED70 | 00D1FCF6 | 83BF 84280000 00 | CMP DWORD PTR DS:[EDI+0x2884],0x0 | edi+2884:L"tView32" 00D1FCFD | 0F84 E7000000 | JE game.D1FDEA | 00D1FD03 | 8B8F 80280000 | MOV ECX,DWORD PTR DS:[EDI+0x2880] | edi+2880:L"istView32" 00D1FD09 | 8B31 | MOV ESI,DWORD PTR DS:[ECX] | 00D1FD0B | 3BF1 | CMP ESI,ECX | 00D1FD0D | 8D9F 7C280000 | LEA EBX,DWORD PTR DS:[EDI+0x287C] | edi+287C:L"sListView32" 00D1FD13 | 75 06 | JNE game.D1FD1B | 00D1FD15 | FF15 742B1801 | CALL DWORD PTR DS:[0x1182B74] | 00D1FD1B | 8B76 08 | MOV ESI,DWORD PTR DS:[ESI+0x8] | 00D1FD1E | 8B46 04 | MOV EAX,DWORD PTR DS:[ESI+0x4] | [esi+04]:"Actx " 00D1FD21 | 85C0 | TEST EAX,EAX | 00D1FD23 | 75 04 | JNE game.D1FD29 | 00D1FD25 | 33D2 | XOR EDX,EDX | 00D1FD27 | EB 05 | JMP game.D1FD2E | 00D1FD29 | 8B56 08 | MOV EDX,DWORD PTR DS:[ESI+0x8] | 00D1FD2C | 2BD0 | SUB EDX,EAX | 00D1FD2E | 8B87 88280000 | MOV EAX,DWORD PTR DS:[EDI+0x2888] | edi+2888:L"iew32" 00D1FD34 | 8B48 04 | MOV ECX,DWORD PTR DS:[EAX+0x4] | 00D1FD37 | 85C9 | TEST ECX,ECX | 00D1FD39 | 75 04 | JNE game.D1FD3F | 00D1FD3B | 33C0 | XOR EAX,EAX | 00D1FD3D | EB 05 | JMP game.D1FD44 | 00D1FD3F | 8B40 08 | MOV EAX,DWORD PTR DS:[EAX+0x8] | 00D1FD42 | 2BC1 | SUB EAX,ECX | 00D1FD44 | 03C2 | ADD EAX,EDX | 00D1FD46 | 3D 00040000 | CMP EAX,0x400 | 00D1FD4B | 0F83 99000000 | JAE game.D1FDEA | 00D1FD51 | 8B53 04 | MOV EDX,DWORD PTR DS:[EBX+0x4] | 00D1FD54 | 8B02 | MOV EAX,DWORD PTR DS:[EDX] | 00D1FD56 | 50 | PUSH EAX | 00D1FD57 | 53 | PUSH EBX | 00D1FD58 | 8D45 E4 | LEA EAX,DWORD PTR SS:[EBP-0x1C] | 00D1FD5B | 50 | PUSH EAX | 00D1FD5C | 8BCB | MOV ECX,EBX | 00D1FD5E | E8 5DEFFFFF | CALL game.D1ECC0 | 00D1FD63 | 8B46 08 | MOV EAX,DWORD PTR DS:[ESI+0x8] | 00D1FD66 | 3946 04 | CMP DWORD PTR DS:[ESI+0x4],EAX | [esi+04]:"Actx " 00D1FD69 | 8945 FC | MOV DWORD PTR SS:[EBP-0x4],EAX | 00D1FD6C | 76 06 | JBE game.D1FD74 | 00D1FD6E | FF15 742B1801 | CALL DWORD PTR DS:[0x1182B74] | 00D1FD74 | 8B46 04 | MOV EAX,DWORD PTR DS:[ESI+0x4] | [esi+04]:"Actx " 00D1FD77 | 3B46 08 | CMP EAX,DWORD PTR DS:[ESI+0x8] | 00D1FD7A | 8945 F8 | MOV DWORD PTR SS:[EBP-0x8],EAX | 00D1FD7D | 76 06 | JBE game.D1FD85 | 00D1FD7F | FF15 742B1801 | CALL DWORD PTR DS:[0x1182B74] | 00D1FD85 | 8B9F 88280000 | MOV EBX,DWORD PTR DS:[EDI+0x2888] | edi+2888:L"iew32" 00D1FD8B | 8B43 08 | MOV EAX,DWORD PTR DS:[EBX+0x8] | 00D1FD8E | 3943 04 | CMP DWORD PTR DS:[EBX+0x4],EAX | 00D1FD91 | 8945 08 | MOV DWORD PTR SS:[EBP+0x8],EAX | 00D1FD94 | 76 09 | JBE game.D1FD9F | 00D1FD96 | FF15 742B1801 | CALL DWORD PTR DS:[0x1182B74] | 00D1FD9C | 8B45 08 | MOV EAX,DWORD PTR SS:[EBP+0x8] | 00D1FD9F | 8B4D 08 | MOV ECX,DWORD PTR SS:[EBP+0x8] | 00D1FDA2 | 8B55 FC | MOV EDX,DWORD PTR SS:[EBP-0x4] | 00D1FDA5 | 51 | PUSH ECX | 00D1FDA6 | 8B4D F8 | MOV ECX,DWORD PTR SS:[EBP-0x8] | 00D1FDA9 | 52 | PUSH EDX | 00D1FDAA | 56 | PUSH ESI | 00D1FDAB | 51 | PUSH ECX | 00D1FDAC | 8B8F 88280000 | MOV ECX,DWORD PTR DS:[EDI+0x2888] | edi+2888:L"iew32" 00D1FDB2 | 56 | PUSH ESI | 00D1FDB3 | 50 | PUSH EAX | 00D1FDB4 | 53 | PUSH EBX | 00D1FDB5 | E8 26FCFFFF | CALL game.D1F9E0 | 00D1FDBA | 8B46 04 | MOV EAX,DWORD PTR DS:[ESI+0x4] | [esi+04]:"Actx " 00D1FDBD | 33DB | XOR EBX,EBX | 00D1FDBF | 3BC3 | CMP EAX,EBX | 00D1FDC1 | 74 09 | JE game.D1FDCC | 00D1FDC3 | 50 | PUSH EAX | 00D1FDC4 | E8 A7BE6FFF | CALL game.41BC70 | 00D1FDC9 | 83C4 04 | ADD ESP,0x4 | 00D1FDCC | 56 | PUSH ESI | 00D1FDCD | 895E 04 | MOV DWORD PTR DS:[ESI+0x4],EBX | [esi+04]:"Actx " 00D1FDD0 | 895E 08 | MOV DWORD PTR DS:[ESI+0x8],EBX | 00D1FDD3 | 895E 0C | MOV DWORD PTR DS:[ESI+0xC],EBX | 00D1FDD6 | E8 95BE6FFF | CALL game.41BC70 | 00D1FDDB | 83C4 04 | ADD ESP,0x4 | 00D1FDDE | 399F 84280000 | CMP DWORD PTR DS:[EDI+0x2884],EBX | edi+2884:L"tView32" 00D1FDE4 | 0F85 19FFFFFF | JNE game.D1FD03 | 00D1FDEA | 8B9F 88280000 | MOV EBX,DWORD PTR DS:[EDI+0x2888] | 5 00D1FDF0 | 8B73 04 | MOV ESI,DWORD PTR DS:[EBX+0x4] | 4 00D1FDF3 | 3B73 08 | CMP ESI,DWORD PTR DS:[EBX+0x8] | 00D1FDF6 | 76 09 | JBE game.D1FE01 | 00D1FDF8 | FF15 742B1801 | CALL DWORD PTR DS:[0x1182B74] | 00D1FDFE | 3B73 08 | CMP ESI,DWORD PTR DS:[EBX+0x8] | 00D1FE01 | 72 06 | JB game.D1FE09 | 00D1FE03 | FF15 742B1801 | CALL DWORD PTR DS:[0x1182B74] | 00D1FE09 | 8B97 8C280000 | MOV EDX,DWORD PTR DS:[EDI+0x288C] | edi+288C:L"w32" 00D1FE0F | 8D0432 | LEA EAX,DWORD PTR DS:[EDX+ESI] | 3 (edx=0) 00D1FE12 | 8945 F0 | MOV DWORD PTR SS:[EBP-0x10],EAX | 2 00D1FE15 | 8B87 88280000 | MOV EAX,DWORD PTR DS:[EDI+0x2888] | edi+2888:L"iew32" 00D1FE1B | 8B48 04 | MOV ECX,DWORD PTR DS:[EAX+0x4] | 00D1FE1E | 33DB | XOR EBX,EBX | 00D1FE20 | 3BCB | CMP ECX,EBX | 00D1FE22 | 75 04 | JNE game.D1FE28 | 00D1FE24 | 33C0 | XOR EAX,EAX | 00D1FE26 | EB 05 | JMP game.D1FE2D | 00D1FE28 | 8B40 08 | MOV EAX,DWORD PTR DS:[EAX+0x8] | 00D1FE2B | 2BC1 | SUB EAX,ECX | 00D1FE2D | 53 | PUSH EBX | 00D1FE2E | 53 | PUSH EBX | 00D1FE2F | 53 | PUSH EBX | 00D1FE30 | 8D4D F4 | LEA ECX,DWORD PTR SS:[EBP-0xC] | 00D1FE33 | 51 | PUSH ECX | 00D1FE34 | 2BC2 | SUB EAX,EDX | 00D1FE36 | 6A 01 | PUSH 0x1 | 00D1FE38 | 8D55 EC | LEA EDX,DWORD PTR SS:[EBP-0x14] | 1 00D1FE3B | 8945 EC | MOV DWORD PTR SS:[EBP-0x14],EAX | 00D1FE3E | 8B47 38 | MOV EAX,DWORD PTR DS:[EDI+0x38] | [edi+38]:"2繹嬪]幂刭镭h" 00D1FE41 | 52 | PUSH EDX | 数据包 00D1FE42 | 50 | PUSH EAX | 00D1FE43 | FF15 98B60A01 | CALL DWORD PTR DS:[<WSASend>] |如果追EDX这个参数的来源,那么请写出来
08-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值