Assembly

    2013.08.23_ASM_Debug 모드 및 이론설명

    To Debug Information 사용방법Compile 과 Link 를 할때. /Zi 와 /debug 를 붙이면 Debug Mode 가 가능하다. NASM 안에 debugger 실행 파일이 있을것이다. 이를 실행하면 이 화면이 나온다. 여기서 Open Executable 을 누르면 실행파일을 열 수 있다.실행파일을 열면 Command 창에서 로딩 View 에서 보고싶은 Value 들을 클릭하면 창이 생성되고, 메모리 같은 경우에는 따로 옵션을 주어줄 수 있다. 아래와 같이 ! 디버그진행은 위에 탭창에 Step Into(F11 or F8) 을 이용하여 진행상황을 볼 수 있다. 위는 &number1 ( number1 의 주소 ) 의 메모리와 레지스터를 켜둔 상태이다. 오른쪽, 레지스터 변화는 글자색이 빨..

    2013.08.21_Visual Studio 10.0 을 이용한 Disassembly

    소스 코드 작성 후 디버깅 모드로 진입한 후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] 00412..

    2013.08.14_ASM_테스트

    ASM 테스트 코드 .386 ;// 386 이상의 기계어를 사용하겠음 .MODEL FLAT ;// MEMORY MODEL > 메모리형태 평평한 형태 ExitProcess PROTO NEAR32 stdcall, dxExitCode:DWORD ;// ExitProcess DWORD(4byte), 타입 , 32bit, stdcall 표준함수 INCLUDE io.h ;// 인클루드 cr EQU 0dh ;// 캐리지리턴 , Equal, 16진수 : 0dh Lf EQU 0ah ;// 라인피드 의 아스키코드 .STACK 4096 .DATA number1 DWORD ? ;// 4byte : DWORD , ? : 쓰레기값 number2 DWORD ? prompt1 BYTE "Enter first number : ", 0..