Memory Drive

반응형
example>
WinExec("sndvol32.exe /rec", SW_SHOW);
반응형

반응형
  1. #include "stdio.h"
  2. // EAX, EBX, ECX, EDX          : 32 bit
  3. // AX, BX, CX, DX                 : 16 bit
  4. // AH, AL, BH, BL, CH, CL, DH, DL :  8 bit
  5. void main()
  6. {
  7.        int addvar, pointvar1=5, pointvar2;
  8.        int *p=&pointvar1;
  9.        int cur = 1;
  10.        int test1 = 1, test2 = 10;
  11.        printf("The Size of (int)=%d Byte\n", sizeof(int));
  12.        printf("So, %d Bit\n\n", sizeof(int)*8);
  13.        __asm // 더하기 예제
  14.        {
  15.                MOV EAX, 10             // EAX = 10
  16.                MOV EBX, 20             // EBX = 20
  17.                ADD EAX, EBX           // EAX += EBX
  18.                MOV addvar, EAX       // addvar = EAX
  19.        }
  20.        printf("ADD Test Result=%d\n", addvar);
  21.        __asm // 빼기 예제
  22.        {
  23.                MOV EAX, 10           // EAX = 10
  24.                MOV EBX, 20           // EBX = 20
  25.                SUB EAX, EBX         // EAX += EBX
  26.                MOV addvar, EAX     // addvar = EAX
  27.        }
  28.        printf("SUB Test Result=%d\n", addvar);
  29.        __asm  // 포인터 사용 예제
  30.        {
  31.                MOV EAX, 10           // EAX = 10
  32.                MOV EBX, p             // EBX = p 
  33.                ADD EAX, [EBX]      // EAX += *EBX  -> [EAX]는 EAX의 주소가 가르키는 값 
  34.                MOV pointvar2, EAX  // pointvar2 = EAX         
  35.        }
  36.        printf("Pointer Test Result=%d\n", pointvar2);
  37.   __asm  // 비교분기 예제
  38.   {
  39.           CMP cur, 1    // if(cur==1)
  40.           JE go1          // goto go1
  41.          
  42.           CMP cur, 2    // if(cur==2)
  43.           JE go2          // goto go2
  44. go1:
  45.           MOV EAX, cur    // EAX = cur
  46.           ADD EAX, 100    // EAX += 100
  47.           MOV cur, EAX    // cur = EAX
  48. go2:
  49.           MOV EAX, cur    // EAX = cur
  50.           ADD EAX, 200    // EAX += 200
  51.           MOV cur, EAX    // cur = EAX
  52.   }
  53.   printf("Compare Test Result=%d\n", cur);
  54.   __asm // 증가 예제
  55.   {
  56.           MOV EAX, test1         // EAX = test1
  57.           INC EAX                   // EAX++
  58.           MOV test2, EAX         // test2 = EAX
  59.   }
  60.   printf("test1=%d, Increased test1=%d\n", test1, test2);
  61.   __asm // 감소 예제
  62.   {
  63.           MOV EAX, test1         // EAX = test1
  64.           DEC EAX                  // EAX-- 
  65.           MOV test2, EAX         // test2 = EAX
  66.   }
  67.   printf("test1=%d, decreased test1=%d\n", test1, test2);
  68.   __asm // 치환 예제
  69.   {
  70.           MOV EAX, test1      // EAX = test1
  71.           MOV EBX, test2      // EBX = test2
  72.           XCHG EAX, EBX     // swap EAX, EBX
  73.           MOV test1, EAX      // test1 = EAX
  74.           MOV test2, EBX      // test2 = EBX
  75.   }
  76.   printf("After XCHG : test1=%d, test2=%d\n", test1, test2);
  77. }

출력결과
The Size of (int)=4 Byte
So, 32 Bit
ADD Test Result=30
SUB Test Result=-10
Pointer Test Result=15
Compare Test Result=301
test1=1, Increased test1=2
test1=1, decreased test1=0
After XCHG : test1=0, test2=1
반응형

'Computer_IT > C++' 카테고리의 다른 글

[C] printf Type Field Characters  (0) 2006.09.26
[C] Long Type의 Data형을 10진수에서 2진수로..  (0) 2006.09.12
[VC] MMX support 여부  (0) 2006.08.14
Example Program: A Simple Query  (0) 2006.08.07
Const Member변수 초기화 특성  (0) 2006.04.24

반응형

Visual C++ 단축키 모음

일반 Editor 에서…
Ctrl + Space : 인텔리센스 출력
Ctrl + F5 : 빌드 후 프로그램 실행
F5 : Debugging 모드로 작동
F9 : Break Point
Ctrl + F2 : 북마크
F2 : 북마크로 이동
F10 : Debugging 모드로 작동하되 엔트리 포인트부터 시작
Ctrl + F10 : Debugging 모드로 작동하되 커서의 위치까지
Alt + F8 : 들여쓰기 정리
Ctrl + Shite + Space : 현재 가르키고 있는 함수의 매개변수 보기
Alt + B -> E : Clean
Alt + B -> R : Rebuild All
Ctrl + E : 현재 괄호랑 맞는 괄호를 찾아준다.
Alt + F7 : Project Setting
Ctrl + H : 바꿈
Ctrl + F : 찾기
Alt + E -> I : 여러파일에서 찾기
Ctrl + W : 클래스 위자드 (MFC 코딩시에만 사용)
Alt + 2 : output 윈도우
Alt + 0 : Workspace 윈도우

Debug 모드 작동중
F10 : Step Over (다음줄로)
F11 : Step Into (함수 안으로 들어감)
F5 : 다음 BreakPoint 까지 작동
Alt + 7 : Call Stack 윈도우
Alt + 3 : Watch 윈도우
Shift + F11 : 현재 루틴에서 빠져나온다.
Shift + F5 : 강제로 디버깅 모드 종료

===================================================================================

Ctrl + Tab Edit하고 있는 Child Window 간의 이동
Ctrl + F4 현재 Edit하고 있는 Child Window를 닫기
Ctrl + I >> 문자열 입력 점진적으로 문자열 찾기 (Incremental Search)
Ctrl + F3 현재 커서에 있는 문자열 찾기 (블록 지정 안 해도 됨)
F3 찾은 문자열에 대한 다음 문자열로 이동 (Next Search)
Ctrl + H 문자열 찾아 바꾸기 (Replace)
Ctrl + Left/Right Arrow 단어 단위로 이동
Ctrl + Delete 또는 Backspace 단어 단위로 삭제
Ctrl + F2 현재 라인에 북마크 지정/해제
F2 지정된 다음 북마크로 이동
Ctrl + Shift + F2 지정된 모든 북마크를 해제
F9 현재 라인에 Breakpoint를 지정/해제
Ctrl + Shift + F9 현재 Edit하고 있는 소스파일에 지정된 모든 Breakpoint 해제
Ctrl + ] 또는 E {괄호의 짝을 찾아줌 ({에 커서를 놓고 눌러야 함}
Ctrl + J, K #ifdef 와 #endif의 짝을 찾아줌
Ctrl + L 한 라인을 클립보드로 잘라내기 (Cut)
Ctrl + Shift + L 한 라인을 삭제
Alt + Mouse로 블록 설정 세로로 블록 설정하기 (마우스로)
Ctrl + Shift + F8 세로로 블록 설정하기 (키보드로), 취소할 때는 Esc키를 눌러야 함
블록 설정 >> Tab 선택된 블록의 문자열을 일괄적으로 들여쓰기(Tab) 적용
블록 설정 >> Shift + Tab 선택된 블록의 문자열을 일괄적으로 내어쓰기 적용
Alt + F8 >> Tab 또는 Shift + Tab 들여쓰기 자동 조정 (Tab:들여쓰기, Shift + Tab : 내어쓰기)
Ctrl + T 현재 커서에 있는 변수/함수에 대한 Type이 Tooltip 힌트 창에 나타남
Ctrl + Alt + T 멤버 변수/함수 목록에 대한 팝업 창이 나타남
Ctrl + Shift + T 공백/콤마/파이프/괄호 등을 기준으로 좌우 문자열을 Swap시킴
Ctrl + Shift + 8 문단기호 표시/감추기 : Tab은 ^, Space는 .으로 표시
Ctrl + D 툴바의 찾기 Editbox로 이동
Ctrl + Up/Down Arrow 커서는 고정시키고 화면만 스크롤 시키기

반응형

'Computer_IT > C++' 카테고리의 다른 글

Const Member변수 초기화 특성  (0) 2006.04.24
LinkedList 자료  (0) 2006.04.06
Console - 바둑소스  (0) 2006.02.22
Console Codepage 설정.  (0) 2006.02.15
[펌] Visual C++ Console - 사격게임  (0) 2006.02.15