CPU 범용 레지스터 (EAX,EBX,ECX,EDX,EBP,ESI,EDI,ESP)

- CPU 범용 레지스터란 범용적으로 사용되는(?) 레지스터 입니다. 모든 레지스터들은 각각 4byte(32bit)의 크기를 가진다고 하네요!


8개의 레지스터에서 상위 4개의 레지스터는 산술연산의 변수 값의 저장용도로, 하위 4개는 메모리 주소를 저장하는 포인터로 자주 사용된다고 합니다.

하지만 상황에따라서 레지스터의 용도가 다르게(?) 쓰일 수도 있습니다.


(* 앞의 E는 32bit 에서, 64bit는 R을 씀, RAX, RBX 이런식으로...)


* 요약ㅎㅎ

1) EAX : 산술 및 논리연산을 수행한 후에 함수의 반환값이 저장되는 용도 (쉽게 말해 함수의 리턴 값)

2) EBX : 메모리 주소를 저장하기 위한 용도

3) ECX : 반복문(for,while)에서 반복 카운트(loop count)로 사용 (루프 돌때마다 ECX 1씩감소)

4) EDX : EAX와 같이 쓰이고, 부호 확장 명령에 사용

5) ESI : 데이터를 조작 or 복사할 때 데이터의 주소가 저장됨

6) EDI : 데이터를 복사할 때 목적지 주소가 저장

7) ESP/EBP : ESP는 Stack의 끝 주소, EBP는 Stack의 첫 시작 주소를 의미함


그리고 각각의 레지스터는 32bit인데 16bit의 하위 호환을 위해 X로 나눠지고 X는 다시 H/L 구역으로 나눠짐 즉 EAX를 예로들면 32bit를 다 쓰고 싶으면 EAX를 사용하고 2바이트(16bit)만 쓰고 싶으면 EAX의 하위 비트 부분인 AX를 이용하면 되는 것, 1바이트만 쓰고싶으면 AH쓰면 되겠쥬? (알뜰하죠 ?ㅋ)



레지스터의 용도 정도만 간단하게 알고 넘어가야지~



'보안' 카테고리의 다른 글

Tomcat,JCE 취약점 ppt  (0) 2019.03.29
[보안] Tomcat 취약점  (0) 2019.03.26
[보안] 티스토리 블로그 취약점 문의  (0) 2019.03.25
[보안] 리버싱 입문기  (0) 2019.03.25
이번 주 해야할 것  (0) 2019.03.25

+ Recent posts