Flag={C0MPU73R}

어셈블리어(Assembly)에 대해 본문

사이버 가디언즈

어셈블리어(Assembly)에 대해

땡관 2018. 8. 22. 14:33

어셈블리어

- 어셈블리 언어는 기계어와 1:1 대응하는 언어

- 어셈블리 언어를 배우면 시스템을 이해하는데 도움이 된다.


C언어 vs 어셈블리어

C언어

- 소스코드의 크기가 크다

- 효율이 낮다

- 가독성이 좋다


어셈블리어

- 소스코드의 크기가 작다

- 효율이 높다

- 가독성이 나쁘다


에셈블리어 종류

Linux 32bit (가장 쉽고 오래됨)

- intel

- At&t

Linux 64bit

등등


레지스터 역할

EAX : 함수의 리턴 값 저장

ECX : 계산 값에 대해 저장 (For문의 i, j같은 역할)

ESP : 명령어 수행 시 스택의 위치 저장

EBP : 스택의 맨 위 주소를 가리킴

EIP : 다음 실행할 인스트럭션의 주소 가리킴


레지스터

RAX : 64비트용 레지스터

EAX : 32비트용 레지스터 / RAX의 하위 32비트

AE : EAX의 하위 16비트

AH : AX의 상위 8비트

AL : AX의 하위 8비트

등등


어셈블리 명령어 기초 (Intel 형식)

http://securityfactory.tistory.com/153