Skip to content
DarkKaiser의 블로그
DarkKaiser의 블로그
  • 개발 관련 자료(노션)
  • Raspberry Pi(노션)
  • WD My Cloud(노션)
  • GitHub
DarkKaiser의 블로그

기본 명령어

DarkKaiser, 2007년 6월 30일2023년 9월 2일

Push
sp 레지스터를 조작하는 명령어중의 하나이다. 스택에 데이터를 저장하는데 쓰인다.

ex) Push eax
스택에 Eax의 값을 스택에 저장한다.

ex) Push 20
즉석값인 20을 스택에 저장한다.

ex) Push 401F47
메모리 오프셋 401F47의 값을 스택에 저장한다.

Pop
이또한 sp 레지스터를 조작하는 명령어중 하나이다. 스택에서 데이터를 꺼내는데 쓰인다.

ex) Pop eax 
스택에 가장 상위에 있는 값을 꺼내애서 eax에 저장
주의점: Push 의 역순으로 값은 스택에서 Pop 된다.

Mov
메모리나 레지스터의 값을 옮길때?로 만들때 쓰인다.

ex:) Mov eax,ebx
ebx 레지스터의 값을 eax로 옮긴다[로 만든다].

ex) Mov eax,20
즉석값인 20을 eax레지스터 에 옮긴다[로 만든다].

ex) Mov eax,dword ptr[401F47]
메모리 오프셋 401F47 의 값을 eax에 옮긴다[로 만든다]

Lea
오퍼렌드1의 값을 오퍼렌드2의 값으로 만들어준다.

ex) Lea eax,ebx
eax레지스터의 값을 ebx의 값으로 만든다.

Inc
레지스터의 값을 1증가 시킨다.

ex) Inc eax 
Eax 레지스터의 값을 1증가 시킨다.

Dec
레지스터의 값을 1 감소 시킨다.

ex) Dec eax
Eax 레지스터의 값을 1 감소 시킨다.

Add
레지스터나 메모리의 값을 덧셈할때 쓰임.

ex) Add eax,ebx
Eax 레지스터의 값에 ebx 값을 더한다.

ex) Add eax,50
Eax 레지스터에 즉석값인 50을 더한다.

ex) Add eax,dword ptr[401F47]
Eax 레지스터에 메모리 오프셋 401F47의 값을 더한다.

Sub
레지스터나 메모리의 값을 뺄셈할때 쓰임.

ex) Sub eax,ebx
Eax 레지스터에서 ebx 레지스터의 값을 뺀다.

ex) Sub eax,50
Eax 레지스터에서 즉석값 50을 뺀다.

ex) Sub eax,dword ptr[401F47]
Eax 레지스터에서 메모리 오프셋 401F47의 값을 뺀다.

Nop
아무동작도 하지 않는다.

Call
프로시저를 호출할때 쓰인다.

ex) Call dword ptr[401F47]
메모리 오프셋 401F47을 콜한다.

Ret
콜한 지점으로 돌아간다.

Cmp
레지스터와 레지스터혹은 레지스터 값을 비교하기 위하여 쓰인다.

ex) Cmp eax,ebx
Eax 레지스터와 Ebx 레지스터의 값을 비교한다.

ex) Cmp eax,50
Eax 레지스터와 즉석값 50을 비교한다.

ex) Cmp eax,dword ptr[401F47]
Eax 레지스터와 메모리 오프셋 401F47의 값을 비교한다.

Jmp
특정한 메모리 오프셋으로 이동할때 쓰인다.

ex) Jmp dword ptr[401F47]
메모리 오프셋 401F47 로 점프한다.

Je
Cmp나 Test 의 결과가 같다면 점프

Jne
Cmp나 Text 의 결과가 같지 않다면 점프

Jz
왼쪽 인자의 값이 0 이라면 점프

Jnz
왼쪽 인자의 값이 0 이 아니라면 점프

Jl
왼쪽 인자의 값이 오른쪽 인자의 값보다 작으면 점프(부호있는)

Jnl
왼쪽 인자의 값이 오른쪽 인자의 값보다 작지 않으면(크거나 같으면) 점프 (부호있는)

Jb
왼쪽 인자의 값이 오른쪽 인자의 값보다 작으면 점프(부호없는)

Jnb
왼쪽 인자의 값이 오른쪽 인자의 값보다 작지 않으면(크거나 같으면) 점프 (부호없는)

Jg
왼쪽 인자의 값이 오른쪽 인자의 값보다 크면 점프

Jng
왼쪽 인자의 값이 오른쪽 인자의 값보다 크지 않으면 (작거나 같으면) 점프

Jle
왼쪽 인자의 값이 오른쪽 인자의 값보다 작거나 같으면점프 (부호있는)

Jge
왼쪽 인자의 값이 오른쪽 인자의 값보다 크거나 같으면 점프

어셈블러

글 내비게이션

Previous post
Next post

답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

최신 글

  • AssertJ 소개testCompile ‘org.assertj:assertj-core:3.6.2’ 2017년 9월 14일
  • 자주 사용되는 Lombok 어노테이션 2017년 9월 14일
  • 유니코드 #3 2017년 9월 14일
  • 유니코드 #2 2017년 9월 14일
  • 유니코드 #1 2017년 9월 14일

최신 댓글

    카테고리

    • 개인 자료 (1)
      • 일기 (1)
    • 주절주절 (7)
    • 프로그래밍 갤러리 (16)
    • 프로그래밍 언어 (186)
      • Java (29)
      • C/C++/VC++ (114)
      • C# (11)
      • Visual Basic (6)
      • 안드로이드 (9)
      • Objective-C (5)
      • JavaScript (4)
      • JSP/Servlet (2)
      • Python (4)
      • 어셈블러 (1)
    • 개발++ (44)
      • Book (11)
        • Joel On Software (10)
      • 프로젝트 관리 (6)
      • Maven (1)
      • 디버깅 (1)
      • DirectX (1)
      • Silverlight (1)
      • RESTful (1)
      • Hacking (1)
      • WDM (4)
      • VoIP (5)
      • 기타 (1)
    • 개발 도구 (15)
      • eclipse (14)
      • Sublime Text (1)
    • 네트워크 (7)
    • 설치 및 배포 (7)
      • InstallShield (2)
      • NSIS (4)
    • 버전 관리 (9)
      • Git (2)
      • CVS (2)
      • Subversion (5)
    • 데이터베이스 (7)
      • Oracle (3)
      • Sybase (2)
      • MS-SQL (2)
    • 단위테스트 (3)
      • JUnit (1)
      • NUnit (2)
    • 버그추적시스템 (2)
      • mantis (2)
    • 운영체제 (7)
      • Windows (5)
      • 리눅스 (2)
    • WAS (3)
      • WebLogic (3)
    • 디자인패턴 (1)
    • 디지털 이미지 프로세싱 (16)

    태그

    AutoExp.dat CppUnit CreateFile CVS Detours Generic ignore파일 Installer Isolation level LogCat OSI OSI 7 layer PRODUCTION_MODE request RunInstaller Runnable SafeInt session setPoperty startWebLogic.cmd STL synchronized TAB time_t VC Vector VS2005 날짜 디버깅 리치에디트컨트롤 매핑모드 문서화 주석 변환 사설 IP 성능 주석 트랜젝션 트리 프로젝트관리 프로파일러 픽셀 형변환 형식 확장자 히스토그램

    메타

    • 로그인
    • 엔트리 피드
    • 댓글 피드
    • WordPress.org
    ©2025 DarkKaiser의 블로그 | WordPress Theme by SuperbThemes