성엽이
KKIMSSI
성엽이
전체 방문자
오늘
어제
  • 분류 전체보기 (454)
    • :) (2)
    • C프로그래밍이론 (9)
    • C++프로그래밍 (64)
      • STL (1)
    • C# (2)
    • Visual studio 10.0 (9)
    • AT91SAM7S256 (21)
    • 논리회로 (14)
    • AVR2560 (11)
    • TCPIP (16)
    • NetWork (4)
      • Ubuntu Linux (2)
    • Assembly (21)
    • UNIX 프로그래밍 (6)
    • RFID 분석 (1)
    • Win32 API (7)
    • Cortex-M3 (4)
    • Unity (91)
    • Flutter (9)
    • OwnProject (11)
      • It's mine (5)
      • 마인드스톰 실습 (1)
      • 보고서 자료 (2)
      • RPi B+ (2)
    • ETC (25)
      • 상식 (3)
    • MFC (40)
    • PostgeSQL (18)
    • 영상제어 (6)
      • VFW_영상처리 (1)
    • Python (0)
    • Java (30)
      • SpringBoot (2)
      • Javascript (1)
      • JSP (13)
      • Spring (8)
    • Oracle (4)
      • SQL (3)
    • HTML (6)
      • Thymeleaf (1)
      • CSS (1)
      • Bootstrap (3)
    • IDE (1)
      • VS Code (1)
    • Android (2)
    • Privacy Policy (0)
    • MYSQL (2)
      • MariaDB (2)
    • AWS (5)
    • 개인공부 (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
  • 관리자
  • 글쓰기

공지사항

인기 글

태그

  • 문자열 나누기
  • Boot Code 분석
  • MFC
  • WINAPI
  • ARM Reverse Engineering

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
성엽이

KKIMSSI

Assembly

2013.08.21_Visual Studio 10.0 을 이용한 Disassembly

2013. 8. 22. 14:51

소스 코드 작성 후 디버깅 모드로 진입한 후

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로 불러와서 연산을 마친 후 다시 메모리로 옮겨주는 작업을 하는것을 알 수 있다.



2013.08.21.asm


저작자표시 (새창열림)

'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
    'Assembly' 카테고리의 다른 글
    • 2013.08.27_ASM_APPENDIX 활용하기 and 4장 Basic Instruction
    • 2013.08.26_ASM_Constant, Instruction Operand(s) 해석
    • 2013.08.23_ASM_Debug 모드 및 이론설명
    • 2013.08.14_ASM_테스트
    성엽이
    성엽이

    티스토리툴바