프로그래밍(Programming)/어셈블리어(asm)
_asm{ lea 와 mov 에서 [] 의 의미의 차이 }
3DMP
2017. 3. 1. 05:49
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | _asm { mov ebx, [ebp - 4h] mov dword ptr[ebp - 4h], 10 mov eax, [ebp - 4] mov ecx, ebp //lea 에서 [] 은 한번 더 거처가는게 아니고 그냥 그 안에 있는 것들의 연산 결과 값이며 + 연산등을 쓸 수가 있다 //lea eax, ecx //lea 는 [] 이 와야만 한다 , 그냥 쓰면 이건 없는 명령어 lea eax, [ecx + 4] //[]를 쓰면 이 안에 사칙 연산을 쓸 수가 있게 되고 연산된 결과를 복사한다 //mov edx, ecx + 4 //[] 없이 + 연산자 사용 하지 못함 mov edx, ecx mov edx, [ecx] //mov 일때 [] 는 배열 기호 [] 처럼 동작함, ecx 값을 주소로하여 ecx 주소번지에 대한 값을 가져온다 mov edx, [ecx+4] //mov 일때 [] 는 배열 기호 [] 처럼 동작함, ecx 값을 주소로하여 ecx 주소번지에 대한 값을 가져온다 lea eax, dword ptr[ebp - 4] mov edx, dword ptr[ebp - 4] } | cs |
반응형