코스웨어/13년 스마트컨트롤러
visual studio로 disassembly하기
알 수 없는 사용자
2013. 8. 21. 14:12
728x90
반응형
소스 코드 작성 후 디버깅 모드로 진입한 후
Debug > Windows > Disassembly 메뉴를 선택하면
자신이 작성한 소스코드를 어셈블리어로 번역한 코드를 볼 수 있다.
디스어셈블리 창을 띄운 모습
* 명령어 설명
mov 피연산자1, 피연산자2 -> 피연산자1에 피연산자2의 값을 읽어와서 저장함
예) mov dword prt [a], 64h -> 16진수 64를 4byte크기의(dword) 메모리 a에 값을 저장함
add 피연산자1, 피연산자2 -> 피연산자 1과 2를 더함.
add 명령어를 수행시 메모리끼리 값을 더할 수 없음.
반드시 메모리에서 값을 불러와서 덧셈한 후 다시 메모리로 넣어주는 절차를 거쳐야 한다.
a = b + a;
00412F57 mov eax,dword ptr [b]
00412F5A add eax,dword ptr [a]
00412F5D mov dword ptr [a],eax
위의 a = b + a;의 어셈블리 코드를 보면
메모리로부터 각 변수의 값을 레지스터 eax로 불러와서 연산을 마친 후 다시 메모리로 옮겨주는 작업을 하는것을 알 수 있다.
728x90