Call
-
CALL, RET, 함수 호출Computer Science/컴퓨터 구조 2024. 4. 25. 13:13
어셈블리어 명령어 중 CALL, RET 정리하고 함수 호출 과정 정리.CALL 하나의 명령어지만 아래 작업을 내부적으로 수행현재 명령어 포인터(IP) 또는 프로그램 카운터(PC)의 다음 명령어 주소를 스택에 저장 (스택에 해당하는 메모리 주소에 값을 STORE)실행하려는 명령어 포인터(IP) 또는 프로그램 카운터(PC)로 점프 CALL 은 1바이트(opcode) + 명령어 주소 4바이트 (operand)로 구성. 명령어 주소는 오프셋을 의미한다. 즉 CALL로 실행하고자 하는 함수의 주소가 현재 명령어의 주소 + 오프셋으로 계산되어 점프한다. 점프하기 전에 현재 명령어의 다음 명령어의 주소를 스택에 PUSH 하는데, 이 다음 명령어의 주소는 현재 명령어의 주소 + CALL 명령어의 크기(보통 5바이..