소스 코드 작성 후 디버깅 모드로 진입한 후
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로 불러와서 연산을 마친 후 다시 메모리로 옮겨주는 작업을 하는것을 알 수 있다.
'Assembly' 카테고리의 다른 글
2013.08.27_EFLAGS레지스터의구조 (0) | 2013.08.27 |
---|---|
2013.08.27_ASM_APPENDIX 활용하기 and 4장 Basic Instruction (0) | 2013.08.27 |
2013.08.26_ASM_Constant, Instruction Operand(s) 해석 (0) | 2013.08.27 |
2013.08.23_ASM_Debug 모드 및 이론설명 (0) | 2013.08.23 |
2013.08.14_ASM_테스트 (0) | 2013.08.14 |