어셈블리어 기초 글이 너무 길어서 나눔
어셈블리어 자료형
범용 레지스터(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 |