어셈블리어 기초 글이 너무 길어서 나눔


어셈블리어 자료형


범용 레지스터(General Purpose Register)

위 그림들은 기본적인 프로그램 실행 레지스터


범용 레지스터중 몇몇 레지스터는 특별한 용도를 갖는다.

EAX  =  Extended Accumulator Register

  • 사칙연산 명령어에서 작동으로 사용된다.

EBX  =  Extended Base Register

  • 메모리 주소를 저장하는 용도로 사용됨.

ECX  =  Extended Counter Register

  • CPU는 루프 카운터로 ECX를 자동으로 사용한다.

EDX  =  Extended Data Register

  • eax와 같이 사용됨

ESI  =  Extended Source Index   /   EDI  =  Extended Destination Index

  • 고속 메모리 전송 명령어에서 사용된다. 이 레지스터들은 확장 소스 인덱스와 확장 목적지 인덱스 레지스터라 한다.

ESP  =  Extended Stack Pointer

  • 스택에 있는 데이터의 주소를 지정한다. ESP는 보통의 계산과 데이터전송에는 거의 사용되지 않는다. 확장 스택 포인터라고 한다.

EBP  =  Extended Base Pointer

  • 고급언어에서 스택에 있는 함수 매개변수와 지역변수를 참조하기 위해서 사용된다.
  • 고급 수준의 프로그래밍 이외의 일반적인 계산과 테이터 전송에서 사용되지 않아야 한다. 이 레지스터는 종종 확장 프레임 포인터 레지스터라고 한다.

범용 레지스터는 계산과 데이터 전송에 주로 사용된다.


비트 단위로 표로 정리해서 보면 간단함.

E때면 16비트고 X가 H가되면 8비트(상위)  L이면 8비트(하위)

반응형

'Programming > C/C++/C#' 카테고리의 다른 글

[C#] string 예제  (0) 2016.09.25
C# enum 타입 foreach 예제  (0) 2016.08.04
asm - 어셈블리 까먹을 까봐 정리함.  (0) 2016.07.14
C++ - 프로퍼티 get set  (0) 2016.07.13
asm - 어셈블리어 기초  (1) 2016.04.09
C++ - 비트 출력 해보기  (1) 2016.03.09
C# - abstract 추상화  (0) 2016.01.26
C# - Exception - PInvokeStackImbalance  (3) 2016.01.20