Basic program execution register
가 가장 중요Control registers
, Memory management registers
, Debug registers
등에 대해 추가 공부 필요Basic program execution registers
는 다시 4개의 그룹으로 나뉨💬 참고
- EAX: (0~31) 32비트
- AX: (0~15) EAX의 하위 16비트
- AH: (8~15) AX의 하위 8비트
- AL: (0~7) AX의 하위 8비트
각 레지스터의 이름1 (상수/변수 값 저장 용도)
EAX
: Accumulation for operands and results data (함수 리턴 값 저장)EBX
: Pointer to data in the DS segmentECX
: Counter for string and loop operations (루프 돌 때마다 1씩 감소)EDX
: I/O pointer각 레지스터의 이름2(메모리 주소 저장 용도)
EBP
: Pointer to data on the stack (in the SS segment) -> 함수 호출 시 그 순간의 ESP 저장 후 함수 리턴 시 다시 ESP에 값 전달ESI
: source pointerfor string operationsEDI
: destination pointer for string operationsESP
: Stack pointer (in the SS segment)Segment Descriptor Table(SDT)
의 index 저장CS
: Code SegmentSS
: Stack SemgentDS
: Data SegmentES
: Extra(Data) SegmentFS
: Data SegmentGS
: Data SegmentEFLAGS
(32비트, 4바이트 크기)Zero Flag(ZF)
Overflow Flag(OF)
Carry Flag(CF)
EIP
: Instruction pointer